Skip to content

Тусынавыхи - Telegram бот сбора тус из VK

Notifications You must be signed in to change notification settings

amputator84/partyfind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тусынавыхи

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

About

Тусынавыхи - Telegram бот сбора тус из VK

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages