{"id":25155140,"url":"https://github.com/dub1401/avitopricebot","last_synced_at":"2025-04-03T11:17:09.157Z","repository":{"id":204763974,"uuid":"711433068","full_name":"DUB1401/AvitoPriceBot","owner":"DUB1401","description":"Бот Telegram для сайта Авито, помогающий администрировать стоимость краткосрочно арендуемых помещений.","archived":false,"fork":false,"pushed_at":"2023-12-27T21:23:53.000Z","size":208,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T00:39:58.978Z","etag":null,"topics":["avito","bot","price","scheduler","systemd","telegram"],"latest_commit_sha":null,"homepage":"https://www.avito.ru","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DUB1401.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-10-29T08:57:31.000Z","updated_at":"2023-11-03T21:55:06.000Z","dependencies_parsed_at":"2023-11-11T17:24:28.833Z","dependency_job_id":"29796da2-1704-4df2-a588-a1594d837c64","html_url":"https://github.com/DUB1401/AvitoPriceBot","commit_stats":null,"previous_names":["dub1401/avitopricebot"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FAvitoPriceBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FAvitoPriceBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FAvitoPriceBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUB1401%2FAvitoPriceBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DUB1401","download_url":"https://codeload.github.com/DUB1401/AvitoPriceBot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246989754,"owners_count":20865331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avito","bot","price","scheduler","systemd","telegram"],"created_at":"2025-02-09T00:40:14.304Z","updated_at":"2025-04-03T11:17:09.142Z","avatar_url":"https://github.com/DUB1401.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Avito Prcie Bot\n**Avito Prcie Bot** – это бот [Telegram](https://telegram.org/) для сайта [Авито](https://www.avito.ru/), помогающий администрировать стоимость краткосрочно арендуемых помещений.\n\n## Порядок установки и использования\n1. Загрузить последний релиз. Распаковать.\n2. Установить Python версии не старше 3.10.\n3. В среду исполнения установить следующие пакеты: [dublib](https://github.com/DUB1401/dublib), [pyTelegramBotAPI](https://github.com/eternnoir/pyTelegramBotAPI?ysclid=loq3f2bmuz181940716), [APScheduler](https://github.com/agronholm/apscheduler).\n```\npip install git+https://github.com/DUB1401/dublib\npip install pyTelegramBotAPI\npip install APScheduler\n```\nЛибо установить сразу все пакеты при помощи следующей команды, выполненной из директории скрипта.\n```\npip install -r requirements.txt\n```\n4. Настроить используемого бота путём добавления в него списка команд из файла _Commands.txt_.\n5. Настроить скрипт путём редактирования _Settings.json_.\n6. Открыть директорию со скриптом в терминале. Можно использовать метод `cd` и прописать путь к папке, либо запустить терминал из проводника.\n7. Указать для выполнения главный файл скрипта `main.py`, перейти в Telegram, отправить в чат с ботом команду `/start` и следовать дальнейшим инструкциям.\n8. Для автоматического запуска службы рекомендуется провести инициализацию скрипта через [systemd](https://github.com/systemd/systemd) (пример [здесь](https://github.com/DUB1401/AvitoPriceBot/tree/main/systemd)) на Linux или путём добавления его в автозагрузку на Windows.\n\n# Основные команды\nПод основными командами понимаются конструкции, которые сам бот Telegram интерпретирует как команды. Они всегда начинаются с символа косой черты.\n___\n```\n/flats\n```\nВыводит список заданных идентификаторов объявлений.\n___\n```\n/help\n```\nВыводит описание доступных команд.\n___\n```\n/jobs\n```\nВыводит список установленных работ.\n___\n```\n/list\n```\nВыводит список подключённых профилей Авито.\n___\n```\n/register\n```\nЗапускает процедуру добавления нового профиля Авито.\n___\n```\n/start\n```\nИнициализирует работу бота и запускает процесс авторизации.\n___\n```\n/tasks\n```\nВыводит список запланированных задач.\n\n# Функциональные команды\nПод функциональными командами понимаются сообщения боту Telegram, имеющие особый синтаксис и порядок аргументов. Данные команды нечувствительны к регистру, все аргументы являются обязательными.\n___\n```\ncalendar [ACCOUNT*] [ITEM_ID*] [PRICE*] [EXTRA_PRICE*] [DAYS*]\n```\nИзменяет свойства ренты для выбранных дней недели текущего месяца.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля, использующегося для выполнения операции.\n\t* Аргумент – строка, не содержащая пробелов.\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat`.\n* **PRICE** – стоимость ренты или дельта для вычисления оной.\n\t* Аргумент – целое положительное число либо целое положительное число со знаками `+` или `-` для вычисления новой стоимости в зависимости базовой.\n* **EXTRA_PRICE** – дополнительная стоимость за одного гостя.\n\t* Аргумент – целое не отрицательное число.\n* **DAYS** – список сокращённых названий дней недели или символ `*`.\n\t* Аргумент – строка без пробелов, содержащая сокращённые наименования дней недели через запятую (_пн, вт, ср, чт, пт, сб, вс_), или символ `*`, указывающий на то, что необходимо произвести действия для всех дней текущего месяца.\n___\n```\ndayprice [ACCOUNT*] [ITEM_ID*] [PRICE*] [EXTRA_PRICE*] [DATE*]\n```\nИзменяет свойства ренты для определённой даты.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля, использующегося для выполнения операции.\n\t* Аргумент – строка, не содержащая пробелов.\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat`.\n* **PRICE** – стоимость ренты или дельта для вычисления оной.\n\t* Аргумент – целое положительное число либо целое положительное число со знаками `+` или `-` для вычисления новой стоимости в зависимости базовой.\n* **EXTRA_PRICE** – дополнительная стоимость за одного гостя.\n\t* Аргумент – целое не отрицательное число.\n* **DATE** – дата, для которой изменяются свойства.\n\t* Аргумент – строка, описывающая дату в формате _DD.MM.YYYY_.\n___\n```\ndelflat [FLAT_NAME*]\n```\nУдаляет идентификатор объявления.\n\n**Описание позиций:**\n* **FLAT_NAME** – идентификатор объявления.\n\t* Аргумент – строка, не содержащая пробелов.\n___\n```\ndeljob [JOB_ID*]\n```\nУдаляет работу.\n\n**Описание позиций:**\n* **JOB_ID** – идентификаторы работ.\n\t* Аргумент – целое положительное число (можно указать несколько ID через запятую).\n___\n```\ndeltask [TASK_ID*]\n```\nУдаляет задачу.\n\n**Описание позиций:**\n* **TASK_ID** – идентификатор задачи.\n\t* Аргумент – целое положительное число.\n___\n```\nnewflat [ITEM_ID*] [FLAT_NAME*]\n```\nСоздаёт идентификатор объявления, который можно использовать в командах вместо ID.\n\n**Описание позиций:**\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat`.\n* **FLAT_NAME** – идентификатор объявления.\n\t* Аргумент – строка, не содержащая пробелов.\n___\n```\nnewjob [ACCOUNT*] [ITEMS_ID*] [PRICE*] [EXTRA_PRICE*] [HOUR*]\n```\nСоздаёт работу, модифицирующую свойства ренты в случае отстутвия брони до указанного времени.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля, использующегося для выполнения операции.\n\t* Аргумент – строка, не содержащая пробелов.\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat` (можно указать несколько объявлений через запятую).\n* **PRICE** – стоимость ренты или дельта для вычисления оной.\n\t* Аргумент – целое положительное число либо целое положительное число со знаками `+` или `-` для вычисления новой стоимости в зависимости базовой.\n* **EXTRA_PRICE** – дополнительная стоимость за одного гостя.\n\t* Аргумент – целое не отрицательное число.\n* **HOUR** – час, в который запускается работа.\n\t* Аргумент – целое число из диапазона [0; 23].\n___\n```\nnewtask [ACCOUNT*] [ITEM_ID*] [PRICE*] [DAY*] [HOUR*] [MINUTE*]\n```\nСоздаёт задачу с отложенным или регулярным выполнением, изменяющую базовую стоимость ренты.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля, использующегося для выполнения операции.\n\t* Аргумент – строка, не содержащая пробелов.\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat`.\n* **PRICE** – стоимость ренты или дельта для вычисления оной.\n\t* Аргумент – целое положительное число либо целое положительное число со знаками `+` или `-` для вычисления новой стоимости в зависимости базовой.\n* **DAY** – день или дата, в которую запускается задача.\n\t* Аргумент – либо строка, описывающая дату в формате _DD.MM.YYYY_ (одноразовая задача), либо сокращённое наименование дня недели (_пн, вт, ср, чт, пт, сб, вс_).\n* **HOUR** – час, в который запускается задача.\n\t* Аргумент – целое число из диапазона [0; 23].\n* **MINUTE** – минута, в которую запускается задача.\n\t* Аргумент – целое число из диапазона [0; 59].\n___\n```\nprice [ACCOUNT*] [ITEM_ID*] [PRICE*]\n```\nМоментально задаёт новую базовую стоимость.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля, использующегося для выполнения операции.\n\t* Аргумент – строка, не содержащая пробелов.\n* **ITEM_ID** – ID объявления (можно получить из URL) или строковый идентификатор.\n\t* Аргумент – целое положительное число или строка, не содержащая пробелов и установленная при помощи основной команды `newflat` (можно указать несколько объявлений через запятую).\n* **PRICE** – стоимость ренты или дельта для вычисления оной.\n\t* Аргумент – целое положительное число либо целое положительное число со знаками `+` или `-` для вычисления новой стоимости в зависимости базовой.\n___\n```\nrename [OLD_ACCOUNT*] [NEW_ACCOUNT*]\n```\nИзменяет идентификатор профиля. Не путать с номером профиля!\n\n**Описание позиций:**\n* **OLD_ACCOUNT** – текущий идентификатор профиля.\n\t* Аргумент – строка, не содержащая пробелов.\n* **NEW_ACCOUNT** – новый идентификатор профиля.\n\t* Аргумент – строка, не содержащая пробелов.\n___\n```\nreport [CHAT_ID*]\n```\nЗадаёт ID чата для рассылки отчётов о выполнении отложенных задач.\n\n**Описание позиций:**\n* **CHAT_ID** – идентификатор чата. Можно узнать при помощи [Chat ID Bot](https://t.me/chat_id_echo_bot).\n\t* Аргумент – отрицательное целое число или ноль (отключает рассылку).\n___\n```\nunregister [ACCOUNT*]\n```\nУдаляет профиль, а также связанные с ним задачи и работы.\n\n**Описание позиций:**\n* **ACCOUNT** – идентификатор профиля.\n\t* Аргумент – строка, не содержащая пробелов.\n\n# Settings.json\n```JSON\n\"token\": \"\"\n```\nСюда необходимо занести токен бота Telegram (можно получить у [BotFather](https://t.me/BotFather)).\n___\n```JSON\n\"bot-password\": \"1234\"\n```\nПароль для доступа к боту.\n___\n```JSON\n\"report-target\": null\n```\nУказывает ID группы или канала для отправки отчётов о выполнении отложенных задач.\n___\n```JSON\n\"timezone\": \"Europe/Moscow\"\n```\nУказывает часовой пояс для планировщика задач.\n___\n```JSON\n\"use-supervisor\": true\n```\nЕсли включено, то для каждого добавленного профиля Авито будет создан поток-надзиратель, следящий за стабильным обновлением токенов доступа. Повышает стабильность работы скрипта, но незначительно увеличивает нагрузку на сервер.\n___\n```JSON\n\"recycling-id\": true\n```\nПереключает режим генерации ID новых задач. Если отключить, ID будут постоянно увеличиваться, игнорируя освободившиеся номера.\n___\n```JSON\n\"delay\": 1\n```\nЗадаёт интервал в секундах между последовательными запросами к API Авито.\n\n_Copyright © DUB1401. 2023._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdub1401%2Favitopricebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdub1401%2Favitopricebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdub1401%2Favitopricebot/lists"}