Skip to content

Бот Telegram для сайта Авито, помогающий администрировать стоимость краткосрочно арендуемых помещений.

License

Notifications You must be signed in to change notification settings

DUB1401/AvitoPriceBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avito Prcie Bot

Avito Prcie Bot – это бот Telegram для сайта Авито, помогающий администрировать стоимость краткосрочно арендуемых помещений.

Порядок установки и использования

  1. Загрузить последний релиз. Распаковать.
  2. Установить Python версии не старше 3.10.
  3. В среду исполнения установить следующие пакеты: dublib, pyTelegramBotAPI, APScheduler.
pip install git+https://github.com/DUB1401/dublib
pip install pyTelegramBotAPI
pip install APScheduler

Либо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.

pip install -r requirements.txt
  1. Настроить используемого бота путём добавления в него списка команд из файла Commands.txt.
  2. Настроить скрипт путём редактирования Settings.json.
  3. Открыть директорию со скриптом в терминале. Можно использовать метод cd и прописать путь к папке, либо запустить терминал из проводника.
  4. Указать для выполнения главный файл скрипта main.py, перейти в Telegram, отправить в чат с ботом команду /start и следовать дальнейшим инструкциям.
  5. Для автоматического запуска службы рекомендуется провести инициализацию скрипта через 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 – идентификатор профиля.
    • Аргумент – строка, не содержащая пробелов.

Settings.json

"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.

About

Бот Telegram для сайта Авито, помогающий администрировать стоимость краткосрочно арендуемых помещений.

Topics

Resources

License

Stars

Watchers

Forks

Languages