Avito Prcie Bot – это бот Telegram для сайта Авито, помогающий администрировать стоимость краткосрочно арендуемых помещений.
- Загрузить последний релиз. Распаковать.
- Установить Python версии не старше 3.10.
- В среду исполнения установить следующие пакеты: dublib, pyTelegramBotAPI, APScheduler.
pip install git+https://github.com/DUB1401/dublib
pip install pyTelegramBotAPI
pip install APScheduler
Либо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.
pip install -r requirements.txt
- Настроить используемого бота путём добавления в него списка команд из файла Commands.txt.
- Настроить скрипт путём редактирования Settings.json.
- Открыть директорию со скриптом в терминале. Можно использовать метод
cd
и прописать путь к папке, либо запустить терминал из проводника. - Указать для выполнения главный файл скрипта
main.py
, перейти в Telegram, отправить в чат с ботом команду/start
и следовать дальнейшим инструкциям. - Для автоматического запуска службы рекомендуется провести инициализацию скрипта через systemd (пример здесь) на Linux или путём добавления его в автозагрузку на Windows.
Под основными командами понимаются конструкции, которые сам бот Telegram интерпретирует как команды. Они всегда начинаются с символа косой черты.
/flats
Выводит список заданных идентификаторов объявлений.
/help
Выводит описание доступных команд.
/jobs
Выводит список установленных работ.
/list
Выводит список подключённых профилей Авито.
/register
Запускает процедуру добавления нового профиля Авито.
/start
Инициализирует работу бота и запускает процесс авторизации.
/tasks
Выводит список запланированных задач.
Под функциональными командами понимаются сообщения боту Telegram, имеющие особый синтаксис и порядок аргументов. Данные команды нечувствительны к регистру, все аргументы являются обязательными.
calendar [ACCOUNT*] [ITEM_ID*] [PRICE*] [EXTRA_PRICE*] [DAYS*]
Изменяет свойства ренты для выбранных дней недели текущего месяца.
Описание позиций:
- ACCOUNT – идентификатор профиля, использующегося для выполнения операции.
- Аргумент – строка, не содержащая пробелов.
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- PRICE – стоимость ренты или дельта для вычисления оной.
- Аргумент – целое положительное число либо целое положительное число со знаками
+
или-
для вычисления новой стоимости в зависимости базовой.
- Аргумент – целое положительное число либо целое положительное число со знаками
- EXTRA_PRICE – дополнительная стоимость за одного гостя.
- Аргумент – целое не отрицательное число.
- DAYS – список сокращённых названий дней недели или символ
*
.- Аргумент – строка без пробелов, содержащая сокращённые наименования дней недели через запятую (пн, вт, ср, чт, пт, сб, вс), или символ
*
, указывающий на то, что необходимо произвести действия для всех дней текущего месяца.
- Аргумент – строка без пробелов, содержащая сокращённые наименования дней недели через запятую (пн, вт, ср, чт, пт, сб, вс), или символ
dayprice [ACCOUNT*] [ITEM_ID*] [PRICE*] [EXTRA_PRICE*] [DATE*]
Изменяет свойства ренты для определённой даты.
Описание позиций:
- ACCOUNT – идентификатор профиля, использующегося для выполнения операции.
- Аргумент – строка, не содержащая пробелов.
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- PRICE – стоимость ренты или дельта для вычисления оной.
- Аргумент – целое положительное число либо целое положительное число со знаками
+
или-
для вычисления новой стоимости в зависимости базовой.
- Аргумент – целое положительное число либо целое положительное число со знаками
- EXTRA_PRICE – дополнительная стоимость за одного гостя.
- Аргумент – целое не отрицательное число.
- DATE – дата, для которой изменяются свойства.
- Аргумент – строка, описывающая дату в формате DD.MM.YYYY.
delflat [FLAT_NAME*]
Удаляет идентификатор объявления.
Описание позиций:
- FLAT_NAME – идентификатор объявления.
- Аргумент – строка, не содержащая пробелов.
deljob [JOB_ID*]
Удаляет работу.
Описание позиций:
- JOB_ID – идентификаторы работ.
- Аргумент – целое положительное число (можно указать несколько ID через запятую).
deltask [TASK_ID*]
Удаляет задачу.
Описание позиций:
- TASK_ID – идентификатор задачи.
- Аргумент – целое положительное число.
newflat [ITEM_ID*] [FLAT_NAME*]
Создаёт идентификатор объявления, который можно использовать в командах вместо ID.
Описание позиций:
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- FLAT_NAME – идентификатор объявления.
- Аргумент – строка, не содержащая пробелов.
newjob [ACCOUNT*] [ITEMS_ID*] [PRICE*] [EXTRA_PRICE*] [HOUR*]
Создаёт работу, модифицирующую свойства ренты в случае отстутвия брони до указанного времени.
Описание позиций:
- ACCOUNT – идентификатор профиля, использующегося для выполнения операции.
- Аргумент – строка, не содержащая пробелов.
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
(можно указать несколько объявлений через запятую).
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- PRICE – стоимость ренты или дельта для вычисления оной.
- Аргумент – целое положительное число либо целое положительное число со знаками
+
или-
для вычисления новой стоимости в зависимости базовой.
- Аргумент – целое положительное число либо целое положительное число со знаками
- EXTRA_PRICE – дополнительная стоимость за одного гостя.
- Аргумент – целое не отрицательное число.
- HOUR – час, в который запускается работа.
- Аргумент – целое число из диапазона [0; 23].
newtask [ACCOUNT*] [ITEM_ID*] [PRICE*] [DAY*] [HOUR*] [MINUTE*]
Создаёт задачу с отложенным или регулярным выполнением, изменяющую базовую стоимость ренты.
Описание позиций:
- ACCOUNT – идентификатор профиля, использующегося для выполнения операции.
- Аргумент – строка, не содержащая пробелов.
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- PRICE – стоимость ренты или дельта для вычисления оной.
- Аргумент – целое положительное число либо целое положительное число со знаками
+
или-
для вычисления новой стоимости в зависимости базовой.
- Аргумент – целое положительное число либо целое положительное число со знаками
- DAY – день или дата, в которую запускается задача.
- Аргумент – либо строка, описывающая дату в формате DD.MM.YYYY (одноразовая задача), либо сокращённое наименование дня недели (пн, вт, ср, чт, пт, сб, вс).
- HOUR – час, в который запускается задача.
- Аргумент – целое число из диапазона [0; 23].
- MINUTE – минута, в которую запускается задача.
- Аргумент – целое число из диапазона [0; 59].
price [ACCOUNT*] [ITEM_ID*] [PRICE*]
Моментально задаёт новую базовую стоимость.
Описание позиций:
- ACCOUNT – идентификатор профиля, использующегося для выполнения операции.
- Аргумент – строка, не содержащая пробелов.
- ITEM_ID – ID объявления (можно получить из URL) или строковый идентификатор.
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
newflat
(можно указать несколько объявлений через запятую).
- Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды
- PRICE – стоимость ренты или дельта для вычисления оной.
- Аргумент – целое положительное число либо целое положительное число со знаками
+
или-
для вычисления новой стоимости в зависимости базовой.
- Аргумент – целое положительное число либо целое положительное число со знаками
rename [OLD_ACCOUNT*] [NEW_ACCOUNT*]
Изменяет идентификатор профиля. Не путать с номером профиля!
Описание позиций:
- OLD_ACCOUNT – текущий идентификатор профиля.
- Аргумент – строка, не содержащая пробелов.
- NEW_ACCOUNT – новый идентификатор профиля.
- Аргумент – строка, не содержащая пробелов.
report [CHAT_ID*]
Задаёт ID чата для рассылки отчётов о выполнении отложенных задач.
Описание позиций:
- CHAT_ID – идентификатор чата. Можно узнать при помощи Chat ID Bot.
- Аргумент – отрицательное целое число или ноль (отключает рассылку).
unregister [ACCOUNT*]
Удаляет профиль, а также связанные с ним задачи и работы.
Описание позиций:
- ACCOUNT – идентификатор профиля.
- Аргумент – строка, не содержащая пробелов.
"token": ""
Сюда необходимо занести токен бота Telegram (можно получить у BotFather).
"bot-password": "1234"
Пароль для доступа к боту.
"report-target": null
Указывает ID группы или канала для отправки отчётов о выполнении отложенных задач.
"timezone": "Europe/Moscow"
Указывает часовой пояс для планировщика задач.
"use-supervisor": true
Если включено, то для каждого добавленного профиля Авито будет создан поток-надзиратель, следящий за стабильным обновлением токенов доступа. Повышает стабильность работы скрипта, но незначительно увеличивает нагрузку на сервер.
"recycling-id": true
Переключает режим генерации ID новых задач. Если отключить, ID будут постоянно увеличиваться, игнорируя освободившиеся номера.
"delay": 1
Задаёт интервал в секундах между последовательными запросами к API Авито.
Copyright © DUB1401. 2023.