Прошлое, настоящее и будущее поиска торрентов в Telegram
Почти ровно полгода назад я поделился своим Telegram-ботом для поиска торрентов, который не просит у вас никаких телефонов и SMS, а просто работает, как и полагается роботу (@rutracker_org_test_bot - название так и осталось, хотя там уже не только по рутрекеру поиск).
Неожиданно оказалось, что существует не так мало людей, которым эта идея была по нраву, и я продолжил развивать проект. Сначала были опасения, что будут блокировки в течение нескольких месяцев, но вот уже мы отмечаем 6 месяцев 🎉 🚀 непрерывной публичной работы. В этом посте помимо прочего расскажу, что появилось за последнее время, и какие планы имеются.
Эволюция за полгода
Сначала бот умел искать только на rutracker.org и только примитивным сопоставлением названий раздач и запроса. Теперь он ищет более чем среди 8 млн. раздач на 8 трекерах, используя самые разные стратегии поиска и ранжирования.
Разнообразные добавить фичи\исправить баги — всего не перечесть, но первая опубликованная версия не имела отображения размера раздач в выдаче!
Расползание проекта на несколько дата-центров в разных странах, распределённая работа всего этого добра.
Но всё это за месяцы, а не за несколько дней, как пишут уважаемые akket.com. Да, нас тоже изнасиловали журналисты:
Да-да, всё именно так и было 🤡. Буквально за несколько дней, используя функционирующий сервер рутрекера (специально только для нас в эти дни).
Вот ещё пример:
Тут без комментариев.
А вот ещё один человек написал инструкцию по нашему боту, и её даже какие-то буржуи (скорее всего, роботизированные) перевели и забрали себе. Может уже пора делать различные локализации, переключения языка и т.д.?
Пользователи не могли влиять на способ ранжирования выдачи. Теперь могут, да ещё как! И даже могут выбирать, за какой период искать, на каком трекере или их комбинации, в каких категориях, и прочее.
Вначале бот насчитывал всего 5 команд. Теперь никто не знает точно, сколько же у него различного рода свистелок и перделок, их количество измеряется десятками. Впрочем, часть из них служит для навигации по документации и описанию других 🔄 команд.
Раньше: ручное обновление индекса, когда припрёт. Теперь: автоматическое непрерывное обновление.
O настоящем. Что недавно появилось в боте?
🧲 Online статус пиров раздачи
Теперь на странице с полученной magnet-ссылкой будет возможность проверить на нашем сервере доступность данного торрента прямо сейчас прямо по DHT (откуда вы всё равно и будете качать раздачу):
Не более чем через минуту-другую вам должно придти сообщение от бота с числом участников раздачи. Бывает, что найти не удаётся за короткое время, и поэтому возможны ошибки. По возможности бот вас уведомит при любом исходе поиска.
NB: На непопулярных раздачах с малым количеством пиров (1-2) ситуация, когда найти не удалось за минуту найти пиров — не редкость. При этом пиры могут найтись, если подождать подольше, но мы пока позволить себе этого не можем.
💾 Дополнительная информация о раздачах
Если вы нашли раздачу, которую уже кто-то смотрел в боте и/или поставил хорошую оценку, об этом будет написано в сообщении с magnet-ссылкой.
🔍 Поиск по свежим торрентам
Был добавлен поиск среди раздач, которые либо недавно добавили, либо недавно изменили. Для этого перед запросом нужно использовать команду /news (или её модификацию, подробнее в справке бота). По-умолчанию, если её так и написать, новым будет считаться всё, что было добавлено в базу за последние 2 дня.
Можно написать её иначе, указав точное количество дней, за которые будем искать. Например, /news7 будет искать за последнюю неделю. Пример:
Обратите внимание, что сначала пишется команда, потом сразу запрос. Если отправить просто команду без запроса, то бот напишет сообщение об ошибке.
📈Топы
Добавлены топы раздач, посмотреть все варианты можно с помощью /top_list
Например, запросив топ раздач по скачиваниям за последнюю неделю (/top_weekly), мы получим такое:
Это такая же страница выдачи, как и при обычном поиске, только ещё указано, сколько пользователей и сколько раз скачали (за неделю) с помощью бота данную раздачу.
Также можно посмотреть, что вообще сейчас модно искать. Например, /top_queryweek скажет, какие запросы (не раздачи!) оказались самыми популярными среди пользователей бота за последнюю неделю:
Фактически здесь будет топ-100, потому что в отличие от всех остальных поисковых запросов такие ограничены вглубь. Здесь также указывается, какой процент был успешен (success rate): видно, что не сразу появились (народ уже хотел, но ещё не выложили, может быть) результаты для подземелья и драконы: честь среди воров (#4). Можно сразу же посмотреть результаты поиска (искать).
🪲Исправления багов
Исправлены все сортировки: теперь они работают глобально, а не только на странице выдачи. Раньше страницы формировались независимо от выбранного критерия сортировки, а по определенной внутренней мере релевантности, а сортировка применялась уже постранично. Так было сделано из-за особенностей реализации хранения данных. Теперь всё работает так, как вы ожидаете: сортировка по убыванию размера раздач, например, выдаст на первой странице все самые "тяжелые" релевантные раздачи.
Улучшен поиск: ранее могли отсутствовать результаты из-за некорректной обработки входных данных. Также, теперь в случае отсутствия совпадений вам могут быть предложены результаты с нечетким совпадением (при этом вы будете предупреждены об этом вверху и внизу сообщения с выдачей):
Hint: недокументированая команда (и так их полно!) /last_query производит поиск по вашему последнему запросу обычного поиска.
🔧 Новые настройки
Теперь можно посмотреть свои настройки (как сортируются результаты, формат вывода и прочее) в /my_settings:
Хорошо иметь возможность что-то дополнительно настроить, чем не иметь. В боте есть возможность подписаться на разного рода обновления раздач, о чем будет сказано ниже, на уведомления, связанные с работой бота (если вы конечно подписывались на всё это через /allow_notifies). Наверное, было бы удобно, если бы эти все уведомления приходили не в любое, а в заранее определенное вами время. Для этого добавлена опция /set_timezone. Там вы сможете выбрать довольно гибко 8-часовой интервал, когда вы хотели бы получать любые уведомления, на которые подпишитесь. В том числе и на
⚡️Обновления раздач по произвольному запросу
Тестируем функцию /sub, которая претерпела существенные изменения (по сравнению с тем, что описано тут). Теперь можно подписаться на произвольный запрос (напишите его после команды /sub):
На одного пользователя пока лимит на 5 запросов (подписок). В боте есть подробная справка /subs_help:
Управлять подписками можно через /my_sub:
Предполагается, что таким образом вы можете получать оповещения, когда в базах раздач появится что-то новое, подходящее под ваш запрос. Всех заинтересованных приглашаю попробовать!
А ещё у нас недавно GitLab так неудачно обновился, что почти потерялись все репозитории с кодом (так как заодно оказалось, что бекапы неполные и восстановиться из них нормально нельзя). Хорошо, что были локальные копии, из которые вручную всё восстановилось. Так что будьте аккуратнее: проверяйте, что вы можете восстановиться из бекапов!
Ну вот, вы дочитали (или промотали) почти до самого конца!
Будущее
Есть несколько идей, которые можно реализовать, и для того, чтобы выбрать наиболее востребованную, предлагаю принять участие в секретном голосовании специально для пикабу по адресу /vote_pikabu в боте. Там аж 8 новых фичей, которые можно реализовать. Какие из них будут сделаны первыми, решаете вы! Проводить будем неделю, с 8 по 14 мая включительно. После этого за неделю будет сделано то, что вы выберете. Если победят сразу несколько вариантов (чего нельзя полностью исключать), они все будут реализованы. Чтобы посмотреть варианты и проголосовать, напишите
/vote_pikabu
в боте. Помимо того, что вы там увидите, планируется расширить базу торрентов другими известными трекерами, и непрерывно улучшать качество поиска.
P.S.: Есть и вопросы без ответов:
А что вы об этом думаете?
ИТ-проекты пикабушников
205 постов2.9K подписчиков
Правила сообщества
0. Запрещены посты вне тематики сообщества
1. Уважайте труд людей, пишите только конструктивную критику,
2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц