Почти ровно полгода назад я поделился своим Telegram-ботом для поиска торрентов, который не просит у вас никаких телефонов и SMS, а просто работает, как и полагается роботу (@rutracker_org_test_bot - название так и осталось, хотя там уже не только по рутрекеру поиск).
Неожиданно оказалось, что существует не так мало людей, которым эта идея была по нраву, и я продолжил развивать проект. Сначала были опасения, что будут блокировки в течение нескольких месяцев, но вот уже мы отмечаем 6 месяцев 🎉 🚀 непрерывной публичной работы. В этом посте помимо прочего расскажу, что появилось за последнее время, и какие планы имеются.
Сначала бот умел искать только на rutracker.org и только примитивным сопоставлением названий раздач и запроса. Теперь он ищет более чем среди 8 млн. раздач на 8 трекерах, используя самые разные стратегии поиска и ранжирования.
Разнообразные добавить фичиисправить баги — всего не перечесть, но первая опубликованная версия не имела отображения размера раздач в выдаче!
Расползание проекта на несколько дата-центров в разных странах, распределённая работа всего этого добра.
Но всё это за месяцы, а не за несколько дней, как пишут уважаемые akket.com. Да, нас тоже изнасиловали журналисты:
Да-да, всё именно так и было 🤡. Буквально за несколько дней, используя функционирующий сервер рутрекера (специально только для нас в эти дни).
Вот ещё пример:
Тут без комментариев.
А вот ещё один человек написал инструкцию по нашему боту, и её даже какие-то буржуи (скорее всего, роботизированные) перевели и забрали себе. Может уже пора делать различные локализации, переключения языка и т.д.?
Пользователи не могли влиять на способ ранжирования выдачи. Теперь могут, да ещё как! И даже могут выбирать, за какой период искать, на каком трекере или их комбинации, в каких категориях, и прочее.
Вначале бот насчитывал всего 5 команд. Теперь никто не знает точно, сколько же у него различного рода свистелок и перделок, их количество измеряется десятками. Впрочем, часть из них служит для навигации по документации и описанию других 🔄 команд.
Раньше: ручное обновление индекса, когда припрёт. Теперь: автоматическое непрерывное обновление.
Теперь на странице с полученной 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
в боте. Помимо того, что вы там увидите, планируется расширить базу торрентов другими известными трекерами, и непрерывно улучшать качество поиска.
А что вы об этом думаете?