Перейти к содержанию

Рейтинги, отзывы и тарифы

Этот рецепт закрывает два близких сценария личного кабинета: контроль рейтинга и отзывов, а также чтение текущего тарифа аккаунта.

Рейтинговый профиль

rating_profile().get() возвращает агрегированную информацию по рейтингу.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    rating = avito.rating_profile().get()

print(rating.is_enabled)
print(rating.score)
print(rating.reviews_count)

Список отзывов

Отзывы читаются через review().list(). Для перехода по страницам используйте ReviewsQuery.

from avito import AvitoClient
from avito.ratings.models import ReviewsQuery

with AvitoClient.from_env() as avito:
    reviews = avito.review().list(query=ReviewsQuery(page=1))

print(reviews.items[0].review_id)
print(reviews.items[0].text)
print(reviews.items[0].can_answer)

Ответ на отзыв

Для создания ответа нужен числовой review_id и текст. Для повторяемых write-вызовов передавайте idempotency_key.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    answer = avito.review_answer().create(
        review_id=123,
        text="Спасибо за отзыв",
        idempotency_key="review-answer-example-1",
    )

print(answer.answer_id)
print(answer.created_at)

Удаление ответа

answer_id можно передать в фабрику review_answer() или явно в метод delete().

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    deleted = avito.review_answer("456").delete(
        idempotency_key="review-delete-example-1",
    )

print(deleted.success)

Текущий тариф

tariff().get_tariff_info() возвращает текущий и запланированный тарифные контракты.

from avito import AvitoClient

with AvitoClient.from_env() as avito:
    tariff = avito.tariff().get_tariff_info()

print(tariff.current.level if tariff.current else None)
print(tariff.current.packages_count if tariff.current else None)
print(tariff.scheduled.level if tariff.scheduled else None)

Полный контракт смотрите в reference по ratings и reference по tariffs.