Тусынавыхи
Telegram бот поиска тус России в ВК
Данные выводятся в формате: Город / День / Дата / Ссылка на ВК
Можно смотреть тусы текущей недели, а также все предстоящие тусы за все года.
Работает частичный ввод города (допустим "Казан" найдёт город "Казань").
Описание файлов:
- bot.py - сам бот, написанный на python 3.11.0, aiogram 2.25.1
- events.csv - файл, куда будут сохраняться города СФО из config.cities. Нужен для быстрого поиска. Аналог локальной БД, но не на много городов.
- stat.csv - статистика посещения бота
- config.py - конфигурационные данные для бота
Перед запуском бота установить необходимые зависимости через pip install.
Запускать можно, как обычно (при заполненном config.py):
python bot.py
/get_post - скрытая функция для админа (id которого хранится в config.me), которая собирает с файла events.csv тусы СФО на текущий день. Из сбора исключаются города config.big_cities
/get_all - глобальный поиск тус для заполнения events.csv. Собирается по config.arr_word и config.cities. В каждом городе ищется совпадение буквы в названии тусы. Простой поиск по пробелу не всегда отрабатывает, а также поиск по конкретным словам. Возможно в дальшейшем от некоторых букв избавлюсь, чтоб скорость возросла, но на данный момент это оптимальный поиск, учитывающий все вхождения, кроме спецсимволов.
Функция get_events использует api.vk.com/method/groups.search и ограничение в количество 999 - это ограничение API VK. Offset не сработает, поэтому мы ограничены в 999 тус одного города. При этом мы на данном этапе не знаем, какие из тус с типом event, а какие group. Приходится применять второй цикл api.vk.com/method/groups.getById/?group_ids= по найденным ID групп (ограничение в 500 ID на один запрос). Далее идёт группировка и сортировка и остаются только нужные нам тусы определённого города.
Везде ставлю паузы time.sleep, так как VK не любит DDoS.
https://dev.vk.com/ru/reference - API VK
https://docs.aiogram.dev/en - aiogram
https://t.me/mishgenai - подписка на картинки вместо доната
https://vk.com/tusinavixi - паблик для тус
https://clck.ru/3KMog8 - гуглотаблица, дублируемая из events.csv
