Создание Telegram бота на PHP #3: примеры отправки сообщений с кнопками в Telegram
В новом уроке мы с вами рассмотрим отправку базовых запросов в Telegram. Я покажу вам как отправлять простые текстовые сообщения в Telegram, как отправлять кнопки и дополнительные клавиатуры.
Всю информацию по параметрам запросов мы будем брать из официальной документации Telegram.
Полный список всех записей курса находится на сайте или в публикациях на Хабр.
Все ответы от Telegram приходят в виде JSON строки. Для удобного отображения массива ответа в браузере, советую вам установить специальное расширение для браузера, которое называется JSON Viewer.
Отправка простых сообщений
Для отправки простых текстовых сообщений, нам необходимо воспользоваться методом sendMessage.
Ранее я показывал вам, как отправлять запросы с передачей параметров в URL, теперь для удобства я буду использовать запись параметров в массиве и с помощью функции http_build_query мы будем формировать строку с GET параметрами.
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "text" => "Новое сообщение из формы", "parse_mode" => "html" ); $ch = curl_init("https://api.telegram.org/bot". $token ."/sendMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Каждый запрос будет иметь переменную с записанным токеном, массив с параметрами запроса, код для создания запроса через Curl и вывод или запись полученной информации.
Отправка ответа на сообщение
Для отправки ответа на ранее созданное сообщения, вам необходимо в новом запросе sendMessage отправить дополнительный параметр reply_to_message_id, передав в него id сообщения, которое вы хотите прикрепить.
Полный запрос будет выглядеть так…
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "text" => "Новое сообщение из формы", "parse_mode" => "html", "reply_to_message_id" => 7 ); $ch = curl_init("https://api.telegram.org/bot". $token ."/sendMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Удаление сообщений из чата
Для удаления сообщений, вам нужно воспользоваться методом deleteMessage и знать id сообщения которое вы хотите удалить.
Пример кода для удаления сообщений выглядит так:
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "message_id" => 32456, ); $ch = curl_init("https://api.telegram.org/bot". $token ."/deleteMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Отправка кнопок в чат
На данный момент, существует 3 вида кнопок в чате, в Telegram.
- Кнопки которые прикреплены к сообщению (inline_keyboard).
- Кнопки которые располагаются под строкой ввода сообщения, они называются клавиатурой (keyboard).
- Кнопки меню команд, которые чаще всего располагаются слева от строки ввода сообщения.
Для начала давайте рассмотрим как нам добавить кнопки которые будут прикреплены к сообщению.
Для отправки таких кнопок, нам нужно воспользоваться методом sendMessage и передать ему в качестве параметра reply_markup — массив со свойствами клавиатуры.
Данный массив выглядит следующим образом…
. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ) ), )), .
Разберём всё по порядку.
Первое важное правило — reply_markup принимает json, поэтому для создания кнопок, вам нужно конвертировать массив в JSON с помощью функции json_encode.
В массиве с параметрами кнопок, есть особые параметры. Эти параметры, так же, указаны в документации.
- С помощью параметра text вы можете передать текст кнопки.
- параметр url указывает ссылку, если вам нужно сделать кнопку для перехода на внешний ресурс.
- параметр callback_data указывает строку которая будет возвращена после нажатия на кнопку. Данную строку используют как команду.
Массив для кнопок имеет сложную многоуровневую систему. Первый уровень отвечает за общую запись параметров, второй уровень отвечает за ряд кнопок, третий уровень отвечает за параметры кнопки.
Таким образом, для создания 2 кнопок в одном ряду, мы будем использовать следующий код

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ) ), )), .
Для создания 2 рядов по 2 кнопки используйте код .

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ), array( array( 'text' => 'Button 3', 'callback_data' => 'test_3', ), array( 'text' => 'Button 4', 'callback_data' => 'test_4', ), ) ), )), .
И для создания одной кнопки в первом ряду и 2 — во втором, используйте следующий код.

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ), array( array( 'text' => 'Button 3', 'callback_data' => 'test_3', ), array( 'text' => 'Button 4', 'callback_data' => 'test_4', ), ) ), )), .
Надеюсь, я смог объяснить данную тему доступно, если у вас будут вопросы, пишите их в нашем Telegram канале.
Отправка клавиатуры в чат
Аналогичные параметры имеет и массив для отправки клавиатуры в чат. Для создания клавиатуры пропишем следующий код.
. 'reply_markup' => json_encode(array( 'keyboard' => array( array( array( 'text' => 'Тестовая кнопка 1', 'url' => 'YOUR BUTTON URL', ), array( 'text' => 'Тестовая кнопка 2', 'url' => 'YOUR BUTTON URL', ), ) ), 'one_time_keyboard' => TRUE, 'resize_keyboard' => TRUE, )), .
Структура массивом для кнопок та же, но только есть отличие в названиях и количестве параметров.
Ключ inline_keyboard заменяется на keyboard.
А так же для клавиатуры добавляются 2 дополнительных параметра:
- one_time_keyboard — скрыть клавиатуру, как только она была использована. Клавиатура по-прежнему будет доступна, но клиенты будут автоматически отображать обычную, буквенную клавиатуру в чате — пользователь может нажать специальную кнопку в поле ввода, чтобы снова увидеть пользовательскую клавиатуру. Значение по умолчанию равно false.
- resize_keyboard — изменяет размер клавиатуры по вертикали для оптимальной подгонки (например, уменьшить клавиатуру, если есть только два ряда кнопок). По умолчанию установлено значение false, и в этом случае пользовательская клавиатура всегда имеет ту же высоту, что и стандартная клавиатура приложения.
- В новом уроке мы с вами разобрали самый популярный метод для работы с Телеграм ботами — sendMessage. Данный метод позволяет отправлять текстовые сообщения с привязанными кнопками и клавиатурами.
- Научились удалять сообщения
- Разобрали какие бывают типы кнопок и научились создавать массивы для гибкой структуры вывода дополнительных клавиатур и кнопок.
В следующем уроке, я вам покажу как отправлять файлы и изображения в чат.
Добавление тысяч клипов в плейлист YouTube с канала Telegram
С приобретением телевизора с функцией просмотра YouTube и с подпиской на множество каналов Telegram, где ежедневно выкладываются клипы захотелось убрать лишние движения между мобильным телефоном и телевизором для просмотра очередного свежего контента.

- Дано: Один или несколько контент-мейкерских каналов Telegram с ежедневным выкладыванием новейших клипов.
- Задача: Создать плейлист на своём YouTube со всеми этими клипами и автоматический отлов новых.
- Инструменты: Google Apps Script (GAS), YouTube API
Экспорт истории канала Telegram
Ищем подходящий канал Telegram, который выкладывает посты с клипами YouTube (для примера возьмём @fresh_farsh).
В правом верхнем углу три точки — «Экспорт истории канала«.

Для списка ссылок нам нужен только текст, так что снимаем все галочки и ставим максимальный период выгрузки, то есть «с первого сообщения до текущей даты«.

Выгружается папка «ChatExport«, внутри несколько пронумерованных файлов messages(2,3,4. ).html, количество файлов зависит от количества контента канала.

Парсинг канала в в Google таблицы
Нам нужно сделать список ссылок YouTube для добавления в Google таблицу. Я выбрал этот сайт.
В верхнюю строку вводим регулярное выражение:
">(https:\/\/www.youtube.com\/.*?)|">(https:\/\/youtu.be\/.*?)
Ниже вставляем текст из всех messages(2,3,4).html подряд. В правой панели виден результат.
Жмём кнопку выгрузки результата.

Отжимаем «Include full match in exported data«, чтоб не выгружались лишние совпадения. Выбираем CSV, выгружаем.

Создаём Google таблицу.
Копируем в неё CSV, убираем лишние строки, приводим все ссылки к виду youtu.be

Создание канала с плейлистом, API YouTube
Справа сверху жмём на иконку аккаунта — «Создать канал«.

Придумываем имя, запоминаем ID канала из адресной строки:
https://www.youtube.com/playlist?list=
Теперь нам нужно включить YouTube API.
Создаём проект одним из способов:
- Переходим по ссылке, далее выбираем «API и сервисы — Панель управления — Создать проект«
- Перейдя сразу по ссылке.
Далее жмём «Включить API и сервисы«, ищем «YouTube Data API v3» — Включить.
Итак, API включен.
Возвращаемся к Google таблице.
«Инструменты — редактор скриптов«.

Вставляем код, где в idCHannel вставляем ID нашего канала, «Файл — Сохранить» (CTRL+S).

Исходник
idCHannel = 'PLZqUj_5dkPHaAYSECFNOKqnsr2JypZnoo' // ID канала // Функция добавления клипов из Google таблицы в плейлист YouTube function fromSheetToYouTube() < // Берём активный лист таблицы var ss = SpreadsheetApp.getActiveSpreadsheet() var s = ss.getSheets()[0] // Считываем все значения ячеек в массив var data = s.getDataRange().getValues() // Цикл по вячейкам. for (var d=1; d> >, "snippet") // Ставим галочку в столбце B напротив тех, которые успешно отправились s.getRange("B"+parseInt(d+1)).setValue('') // Пауза между отправками для исключения асинхрона Utilities.sleep(1000) // Пауза в 15 секунд после каждых 50 запросов if (d%50 == 0) Utilities.sleep(15000) > catch (e) < console.error(e); >> >
Теперь надо подключить API к нашему скрипту.
«Ресурсы — Дополнительные функции Google — YouTube Data API — Вкл«.


Теперь мы готовы запустить скрипт.
В выпадающем меню «Выбрать функцию» выбираем «fromSheetToYouTube«.
Жмём слева треугольник «Выполнить«.
Если всё в порядке и нет красных ошибок, горит «Running function fromSheetToYouTube. «, значит наш скрипт выполняется.
Клипы добавляются, можно параллельно проверить плейлист.
Добавление идёт со скоростью 1 клип в секунду плюс пауза каждые 50 клипов (по умолчанию 15 секунд)
После выполнения можно посмотреть лог ошибок в меню «Вид — Журналы» либо по нажатию «CTRL+ENTER», там же есть ссылка на просмотр всех ошибок запуска скрипта, называемая „панель инструментов Apps Script“
Если мы видим ошибку „The request cannot be completed because you have exceeded your quota“, это означает, что мы превысили ежедневную квоту на операции с API.
Способы экспорта клипов. Квоты.
В YouTube есть ограничения действий с API, называемые квотами.
Описание квот YouTube тут.
Остаток квот можно посмотреть тут по графикам (лучше выставлять сразу промежуток времени самый маленький для наглядности).
Что нам нужно знать из описания про квоты:
Projects that enable the YouTube Data API have a default quota allocation of 10 thousand units per day
10000 квот в день.
A write operation has a cost of approximately 50 units
Одна операция записи имеет стоимость 50 квот.
Если посчитать по калькулятору квот, то одна операция добавления видео в плейлист playlistItems-insert у нас выйдет чуть больше 50 квот если включён snippet.
Итого получаем 10000/53 примерно 188 клипов.
Если к клипу по каким-либо причинам нет доступа или автор удалил его, то запрос пройдёт впустую, потратив одну квоту на чтение.
То есть с учётом процента „недоступных/удалённых» видео мы можем отправить примерно 180 клипов за один день.
Давайте рассмотрим все варианты загрузки клипов от самого медленного к самому эффективному
-
Вручную
Это легко, но медленно.
Заходим в плейлист — “Добавление видео — URL», вставляем нашу ссылку, жмём «Добавить видео«.
Когда в «Общем» кончаются квоты, переходим в «Тест1«, создаём всё тоже самое, что в «Общем«, новый канал и плейлист (пусть все плейлисты будут одноимёнными с аккаунтами).
Отрабатываем скрипт fromSheetToYouTube с новыми клипами (которых ещё нет в «Общем«), добавив их в плейлист «Тест1«.
Далее заходим в плейлист «Общий» — «Настройки плейлиста — Расширенные настройки — Соавторы«.


Ставим галочку «Приглашенные пользователи могут добавлять видео в этот плейлист» и копируем ссылку.

Открываем под пользователем «Тест1» и в правом верхнем углу жмём «Продолжить«.
Теперь у пользователя «Тест1» появилась возможность добавить видео из своего плейлиста в плейлист «Общий«.
Жмём «Добавить все в …«

Ставим галочку напротив «Общий«.

Появляется «Добавлено в плейлист Общий«.
Наши видео успешно скопированы.
Посчитаем: с 5-6 аккаунтов мы можем ежедневно парсить около 1000 клипов.
Используйте общее хранилище аккаунтов, чтоб не запутаться, а для входа под несколькими аккаунтами одновременно с одного браузера можно воспользоваться контейнеризацией.
- Начальная настройка занимает определённое время.
- Если у вас нет нескольких аккаунтов Google под рукой, создание с одного IP приводит к сообщению от Google о просьбе подтвердить номер телефона.

Мои усердные попытки совместить VPN и НЕ белый IP привели к успешному созданию всего трёх новых аккаунтов (пришлось вспоминать старые).
Так что копаем в сторону белых IP+VPN либо регистрации с разных устройств.
На крайний случай закупаем несколько симок, в любом случае, аккаунты в будущем пригодятся.
При желании и большом количестве аккаунтов парсинг нескольких тысяч клипов может занять всего один день.
- Обращение к Google через Письмо (Бесплатно. Форма запроса на английском).
- Платно через создание платного аккаунта.
У YouTube есть функционал автогенерации ссылки на плейлист, нужно только вставить через запятую уникальные ID видео из ссылок (не больше 50 штук).
Пример: https://www.youtube.com/watch_videos?video_ids=
Откроется плейлист с уникальным, автоматически сгенерированным, неизменным ID.
Атрибут disable_polymer нужен для появления возможности выгрузки созданного плейлиста в свои.
Жмём в правом верхнем углу три точки, «Добавить все в …» и выбираем свой плейлист (пункт 3 — «Общий»).

Минусы: скорость и ограничение в 50 ссылок, а также придётся писать парсер либо вручную генерировать ссылки и подставлять их в конечный вариант.
- Плейлист может генерироваться без аккаунта.
- Нет ограничений на добавление! То есть при должной усидчивости можно вручную все клипы добавить по 50 за раз.
Создание бота Telegram и привязка его к GAS через вебхук
Если это наш канал или мы связались с админом канала, откуда парсили клипы и он согласился сотрудничать, можно написать небольшого бота, отслеживающего новые клипы канала и добавляющего их в наш YouTube плейлист.
Делаем бота по инструкции, придумываем название. После создания бота нам нужен токен вида 123456789:ABCD…
Заходим в нашу Google таблицу в редактор скриптов.
Можно использовать тот же проект, где находится наш предыдущий скрипт fromSheetToYouTube.
Вставляем функцию doPost, она будет ловить на вход сообщения от бота, парсить ссылки регуляркой и добавлять в наш YouTube плейлист.
Исходники
// Отлов сообщений от бота Telegram function doPost(e) < // Парсим входные параметры в JSON var inp = JSON.parse(e.postData.contents) // Вытягиваем текст сообщения. Если пост канала, то channel_post, иначе это сообщение в бота message if (typeof inp.channel_post === 'undefined')< var inpTxt = inp.message.text >else < var inpTxt = inp.channel_post.text >// Ищем регуляркой ссылку var y = /(? > >, "snippet") > catch (e) < console.error(e); >>
Добавили, сохранили, надо опубликовать, чтоб получить ссылку доступа.
Жмём „Опубликовать — Развернуть как веб-приложение…“
Выпадающие меню выбираем, как на скрине.

Далее нам нужно содержимое всей ссылки https://script.google.com/macros/s…
Как только у нас есть токен бота и ссылка на наше приложение, мы можем их связать через webhook.
Сразу напишу, что сброс вебхука (отвязка бота от приложения) производится так: https://api.telegram.org/bot/setWebHook
Выведется
Как обойти блокировки
На ряде провайдеров всё, что связано с работой Telegram через браузер блокируется. Соответственно вызов https://api.telegram.org/ нам выведет „Не удается получить доступ к сайту“.
Тут нам поможет VPN, я использовал для Google Chrome расширение Hotspot Shield Free VPN Proxy — Unlimited VPN
Итак, наш бот связан с скриптом и если что-то написать в бота, функция doPost это поймает и обработает.
Входная структура JSON сообщений тут.
Некоторым в принципе хватит и такой функциональности — подписываемся на множество каналов, парсим все в один плейлист, а потом пересылаем со всех каналов новые посты в бота и знаем, что они моментально добавятся в наш плейлист.
Автоматизация
Чтобы автоматизировать процесс, добавляем бота в канал админом, предварительно прочитав про политики приватности тут.
Теперь при новом посте в канале в наш скрипт будет приходить
JSON.parse(e.postData.contents).channel_post.text
e — входной параметр.
При отправке с бота, соответственно
JSON.parse(e.postData.contents).message.text
На ваше усмотрение можно прикрутить проверку существования клипов, повторы, логи в ячейки и т.д., пользуясь мануалом.
Помним, что GAS отрабатываются при первом запуске не сразу, а примерно через 10-30 секунд, так что ваше первое сообщение боту придёт не сразу.
Заключение
Итак, мы изучили несколько способов добавления клипов.
Вдобавок у нас имеется Telegram бот, привязанный к каналу, способный отлавливать сообщения как из канала, так и адресованные ему, парсить их в GAS и добавлять в плейлист YouTube.
Задача решена.
Источники
Описание всех методов работы с ботами Telegram тут.
Справочник о API YouTube тут
Все команды Google Apps Script тут
- youtube api
- google script
- telegram bot
- Регулярные выражения
- API
- Google API
Как настроить автопостинг в Телеграме

Если планируете развивать и продвигать свой Telegram-канал, автоматизируйте публикацию постов – так вы сэкономите время и не оставите подписчиков надолго без нового контента. Рассказываем, как настроить отправку отложенных сообщений с телефона или компьютера, а также разбираем топ сервисов и ботов для автоматического размещения постов в чатах и каналах.
Зачем нужен автопостинг в Telegram
Автопостинг в Telegram нужен для того, чтобы вовремя опубликовать заранее подготовленный контент. По многим причинам владелец канала может не соблюсти график публикаций. В частности, это характерно для постов, которые появляются в вечернее нерабочее время и в выходные дни. Во избежание долгих перерывов рекомендуем использовать опцию автоматического постинга.
Как создать отложенное сообщение

Автопостинг работает по тому же принципу, что и отложенная отправка сообщений в личных чатах.
Чтобы установить время отправления с телефона, создайте сообщение в ТГ и на пару секунд зажмите кнопку отправки. В открывшемся окне вы увидите вариант «Отправить позже» – кликните по нему и выставьте нужные дату и время. Для отправления файлов этот алгоритм тоже подойдет (пример на скриншоте выше). В версии Telegram для компьютера все обстоит аналогичным образом, только сначала кликните правой кнопкой мыши на значок отправки. Отложенное сообщение будет храниться в чате. Если вы решите отредактировать содержимое или условия отправки, кликните на значок, напоминающий календарь (или часы) рядом со строкой для ввода сообщения, и откроется весь список отложенных. Далее нажмите на нужное вам сообщение и удерживайте, пока на экране не появится меню с возможными действиями. Выберите необходимое – например, «Отправить сейчас», «Изменить время», «Изменить» (редактировать сообщение), «Удалить». Когда придет время публикации отложенного сообщения, вам придет соответствующее уведомление. Используйте еще один автоматизированный инструмент для коммуникации с пользователями – виджеты Calltouch. С их помощью вы оптимизируете работу контакт-центра – сделаете ее беспрерывной (благодаря сбору заявок в нерабочее время), что положительно скажется на уровне лояльности клиентов. Быстрый обратный звонок, прозвон лидов из соцсетей, «умная заявка» для посетителей сайта, которые не любят звонить и другие опции с удобной аналитикой работают бесплатно – оплата производится только за минуты разговора.
Виджеты Calltouch
Увеличьте конверсию сайта на 30%
Как настроить постинг из YouTube, «ВКонтакте» и других соцсетей
Чтобы настроить автоматическую публикацию (авторепостинг) для ТГ-канала из социальных сетей, создайте бота с помощью @botfather. Задайте в чате с ним команду «/newbot», а затем в новом – «/autoposting». Из предложенного списка выберите, откуда репостить сообщения: из ВК, YouTube или другого источника. Далее отправьте боту ссылку на ваш аккаунт в соцсети – именно оттуда будет производиться автопостинг в ваш ТГ-канал. В завершение добавьте нового бота в администраторы своего канала/группы.
Боты для автопостинга
Есть готовые боты для настройки автопостинга. Рассмотрим наиболее популярные.
ControllerBot

Помимо автопостинга, бот работает с реакциями и сбором статистики. Чтобы создать сообщение с автоматической публикацией, запустите работу ControllerBot: Далее следуйте алгоритму:
- Добавьте свой канал.
- Введите содержание поста.
- Кликните «Далее» и «Отложить».
- Введите дату и время, которые подходят для публикации.
Чтобы посмотреть или удалить созданные отложенные посты, отправьте команду «/manage».
Подробнее о работе с ControllerBot читайте в Справке.
Manybot
Запустите чат с Manybot, установите язык и введите соответствующую команду:

Для настройки автопостинга выполните следующие действия:
- Создайте своего бота с помощью соответствующей команды.
- В меню выберите «Настроить автопостинг».
- Отметьте источник постинга.
- Отправьте ссылку на источник (аккаунт).
- Подключите до 11 лент, например: 2 из паблика VK, 2 из YouTube-канала и остальные из других доступных источников.
Все инструкции к настройкам вы сможете открыть по команде «/tutorials».
re_postBot
Бот предоставляет платные возможности для автопостинга/авторепостинга из соцсетей на один или несколько ТГ-каналов. re_postBot хорошо работает с ВК – возможно зарепостить даже музыку или опрос.

Для этого выполните следующие шаги:
- Добавьте @re_postBot к администраторам вашего канала.
- Создайте собственного бота с помощью @BotFather.
- Добавьте своего бота в личный кабинет @re_postBot (в разделе «Мои ТГ-боты»).
- Укажите бота в списке администраторов канала.
- Добавьте ваш канал в ЛК @re_postBot (в разделе «Мои каналы»).
- Выберите пункт «Мои каналы» и добавьте новую ВК-рассылку.
- В разделе «Мои App-VK» добавьте приложение ВК.
Если вы все сделали правильно (четко придерживались инструкций от самого бота), то на ТГ-канал добавятся 10 последних сообщений из группы ВК. В дальнейшем автопостинг будет происходить по факту появления публикаций на стене сообщества ВКонтакте.
Автоматизируйте сбор данных со всех маркетинговых площадок, которые вы выбрали для продвижения бизнеса. Сэкономьте время на рутинных задачах с помощью сквозной аналитики Calltouch. Система подготовит отчеты на удобных дашбордах, и вы сможете быстро оценить эффективность всех рекламных каналов.
Сквозная аналитика
Оценивайте эффективность всех рекламных кампаний в одном окне от клика до ROI
Вкладывайте в ту рекламу, которая приводит клиентов
FleepBot
Подходит для отложенного постинга и поможет с созданием бота для бизнеса.
Для настройки автопостинга создайте бот в @BotFather, затем пришлите его токен в чат с FleepBot. Далее просто придерживайтесь предлагаемых инструкций. Все действия по автоматизации публикаций можно настроить в разделе «Контент-план».
Если возникли затруднения, запустите чат с @FleepSupportBot – там вы найдете полезные подсказки по многим вопросам.

Notepost
Этот бот работает по принципу предыдущих. Сначала требуется создать нового бота в @BotFather и добавить его в настройки канала. По ходу настроек Notepost будет предлагать краткие инструкции – четко их придерживайтесь.
Если сомневаетесь в правильности своих действий, задайте боту команду «/help», чтобы получить дополнительные подсказки по работе.

Сторонние сервисы
Они обладают большим количеством функций, но часто предполагают оплату за использование. Наиболее популярные:
- SMMplanner. Предусматривает все необходимое для публикации постов – включает больше двадцати настроек. Например, с помощью сервиса можно установить геометки, хештеги, создать опросы, добавить стикеры. Бесплатный пробный период длится 7 дней, далее требуется ежемесячная оплата – 450 рублей.
- SmmBox. Помимо автопостинга осуществляет поиск контента по заданной тематике. Есть возможность командной работы. Функции сервиса доступны для бесплатного использования всего 3 дня, далее – от 150 рублей в месяц, в зависимости от тарифа. Самый дорогой – от 1500 рублей (предусматривает до 500 страниц для постинга, допускает работу команды до 10 участников, хранит посты до 28 дней – подходит для крупных организаций).
- Channely. Предлагает множество функций за 199 рублей в месяц за канал. При этом бесплатный пробный период длится целых 3 недели.
- Postmypost. Сервис поддерживает работу с одиннадцатью соцсетями, мессенджерами и платформами (такими, как Pinterest). Тарифы – от 450 рублей, а тестовый период – неделя.
- RePublic. Предлагает инструменты для автоматизированного ведения групп в «Одноклассниках», VK и Telegram. Тарифы – от 99 до 2000 рублей в месяц. Есть возможность подобрать индивидуальный. Предусмотрены 3 дня тестового периода.
Коротко о главном
- Автопостинг в Telegram упрощает ведение канала – обеспечивает регулярную публикацию постов в нерабочее время.
- При выполнении настроек ориентируйтесь на контент-план, в котором заранее распланируйте даты и время выхода постов.
- Вы можете синхронизировать постинг на разных площадках. Например, в VK, Telegram и «Одноклассниках».
- Программу для отложенных постов в Телеграме можно настроить индивидуально – используйте дополнительные опции для оформления и оптимизации постов (хештеги, стикеры, опросы).
- Если вы хотите отсрочить отправку всего нескольких сообщений (или одного) – просто используйте встроенную опцию ТГ «Отправить позже».

Маркетинг
Читайте также:
Повышение качества фото: подборка приложений, которые помогут это сделать
Повышение качества фото: подборка приложений, которые помогут это сделать
Бот Телеграм для скачивания видео с ютуб — целыми плейлистами
Недавно написал пост о создании нового бота Telegram для скачивания видео с YouTube.
Бот о котором идет речь: t.me/SaveYouTubeBot
В прошлом посте упомянул, что, в Телеграмме есть удобный плеер для прослушивания аудио-файлов. С его помощью можно сохранять mp3 файлы и слушать их в фоновом режиме. Также можно скачивать эти файлы и слушать музыку без интеренета.
Так вот, бот обновлен и теперь можно:
> найти или создать плейлист на YouTube с музыкой, которая вам нравится,
> отправить ссылку на этот плейлист боту
> бот скачает все аудиофайлы из этого плейлиста и отправит вам.
Попробуйте
и пишите, что еще хотели бы чтобы этот бот умел

4 года назад
youtube-dl всех этих ваших ботов заруливает.
раскрыть ветку
4 года назад
Я как-то нашел уже бот на пикабу для скачивания с ютуба. Через какое-то время начал сыпать рекламой. Отключил уведомления. Потом вообще стал для работы требовать, чтобы я подписался на какие-то левые паблики типа Apple
4 года назад
Исходным кодом не поделишься? А то слышал что прикрывают таких ботов
4 года назад
А этот раБОТяга может аудиопоток хотя бы в 320 тянуть? А то сшакаленную музыку больно слушать
4 года назад
А чем этот бот отличается от Ummy ? Я через эту прогу года 3 назад скачал весь ютуб в том числе и плейлистами и отдельно аудио
раскрыть ветку
Похожие посты
12 дней назад
Ссылки на телеги
Я понял: если в постах можно давать ссылку на свой телеграм канал, то в обзорах фильмов нужно давать МАГНЕТ ссылки на торренты!
18 дней назад

Качаем торренты с помощью Telegram без регистраций и SMS год спустя
Год назад я предложил пикабу своё решение вопроса «Что делать, если я не могу попасть на rutracker.org, а качнуть чего-то конкретного хочется?», а именно — Telegram-бот, с помощью которого можно быстро попробовать найти раздачи торрентов, используя минимум усилий.
C тех пор прошел ровно год. В этом посте я собрал всё самое важное из жизни проекта, случившееся за это время. Например, первое и не очень удачное имя бота rutracker_org_test_bot в один момент было заблокировано по просьбе ассоциации российских книжных издательств, и теперь бот можно найти по имени @torrents_index_bot.
N.B.: Ответы на наиболее часто задаваемые вопросы о проекте я оформил здесь в FAQ.
Итак, что же ещё, помимо имени, изменилось за год?
1. Не только рутрекер
Первоначально бот был создан для поиска торрентов с рутрекера (он же бывший torrents.ru ), но в дальнейшем были добавлены (в хронологическом порядке) раздачи с таких трекеров, как
- booktracker_org,
- rutor_info,
- eztv_re,
- nnmclub_to,
- tracker2_postman_i2p,
- thepyratebay_org,
- rustorka_com (зеркала),
- tapochek_net,
- kinozal_tv,
- green-teatv_com,
- nyaa_si,
- 1337x_st,
- torrents_by,
- rarbg_to,
- new-team_org.

Актуальный список поддерживаемых торрент-трекеров доступен с помощью /trackers
Многие из них регулярно обновляются с различной периодичностью: популярные почаще, нишевые пореже. Посмотреть актуальность баз данных проекта по трекерам можно здесь (пояснения к таблице).
2. Разнообразные настройки и фильтры
С момента первой версии появились сортировки, фильтры по трекерам и размеру раздач. Теперь вы можете настроить отображение результатов поиска так, как вам удобнее. Полный список настроек находится в /settings:

Страничка с настройками /settings в боте

Страничка с настройками /settings в боте (продолжение)
3. Топы раздач и персональные настройки

Cтатистика раздач сохраняется с 6 ноября 2022 года.
На основе популярности тех или иных раздач у пользователей формируются топы раздач, которые могут помочь найти что-то популярное сейчас (например, актуальную раздачу популярной новинки кино или игры).
Также появилась возможность просматривать личную статистику, историю и закладки, а также состояние настроек бота.

4. Храним всю информацию о раздаче
В боте показывается только самая важная информация о раздаче: название, объем, количество сидов, время создания. Но конечно бывает так, что этого недостаточно и интересуют другие подробности (например, кодеки, список файлов и прочее). На этот случай пока что решение такое: сохраняются отдельно топики с полным описанием раздачи с трекера, и по запросу выдаются.

Карточка раздачи с возможностью посмотреть подробности

По ссылке откроется оригинальное описание раздачи со всеми подробностями.
Вам по-прежнему не нужен VPN, чтобы этим всем пользоваться.
5. Не только бот
C начала лета 2023 доступен поиск через веб-сайт проекта (для доступа к нему всё равно нужно получить ключ в боте с помощью команды /site), использующий те же самые базы данных, что и Telegram-бот. Открывать на постоянной основе поиск по очевидным причинам (довольно быстрые репорты в РосКомНадзор) пока не могу, да и востребованность этого способа оказалась довольно низкой. По этим причинам развитие в эту сторону приостановлено.
6. Не только торренты
Ещё один побочный продукт развития проекта — онлайн-поиск книг в архиве Флибусты. Был запущен несколько месяцев назад после того, как автор счёл неудовлетворительным предлагающиеся способы работы с архивами.
Суть: вы можете проверить наличие/отсутствие интересующей вас книги на сайте, не качая весь архив целиком, а также найти ту часть архива, где лежит ваша книга, вплоть до имени конкретного файла. Подробнее здесь, а также статья на пикабу по теме.

7. Интерактив с пользователями
Многие изменения в проекте были сделаны с оглядкой на мнение реальных пользователей, которые подсказали огромное количество нужных и важных изменений. С самого первого дня можно было напрямую написать разработчикам (мне)) через бота любое сообщение и даже вступить в диалог. В одном из постов я предложил выбрать пользователям, что они хотели бы в первую очередь от бота. Спустя небольшое время практически все варианты из предложенных были реализованы.
8. Открытое API для других разработчиков
Ссылка на новость. Для любого, кто хотел бы воспользоваться базой торрентов, открыто API. С его помощью разработчики приложений и сайтов могут обращаться к той же самой базе данных, что и Telegram-бот. А именно: искать раздачи по поисковым запросам и получать magnet-ссылки из результатов. Вся документация доступна в Swagger и ReDoc, кому как удобнее. Ну и более подробное описание здесь. Таким образом, это даёт возможность переиспользовать мой труд другим людям.
9. Блокировки не страшны
Проект пережил одну полноценную блокировку со стороны ассоциации книжных издательств (ЭКСМО и подобных). 19 июля 2023 г. вечером перестал работать старый бот по адресу https://t.me/rutracker_org_test_bot . Как и планировалось, был просто запущен новый бот под новым именем, а для старого оставлена возможность работать и далее в приватных группах по аналогии с ботом Флибусты (подробнее о том, как заставить работать заблокированных ботов).

Пример работы заблокированного бота @rutracker_org_test_bot в приватном чате.
На случай очередных блокировок составлены инструкции для пользователей.
10. Подробная документация
У проекта появился сайт https://freedomist.ru , где есть FAQ, гайды для пользователей, контакты для обратной связи, ссылки на статьи, а также очень подробная история проекта.
Особое внимание хочу обратить на руководство пользователя и FAQ. Я постарался довольно подробно описать все возможности и ответить на все часто задаваемые вопросы (например, из комментариев к постам). Прошу извинить, если при ответе на какие-нибудь ваши комментарии я буду ссылаться на уже написанное там.
______________________________
На самом деле в проекте произошло столько всего, что едва в краткой хронологии на два-три экрана влезает. Очень много мелких изменений, много больших. Я рассказал выборочно о тех, которые показались мне наиболее важными. Спасибо, что дочитали и надеюсь, что какие-нибудь из плодов этого проекта были/будут вам полезны.

Половина срока позади 😉
Показать полностью 10
Поддержать
1 месяц назад

Как я создал telegram-бота для чеклистов
Меня зовут Марк, и я разработчик. С определенного времени я активно начал интегрировать списки и чек-листы в свою жизнь. Дошло до того, что если не записываю что-то, то с большой долей вероятности забываю это сделать. И наилучшим приложением для этого оказался, как ни странно, telegram, так как он всегда под рукой на смартфоне и ноутбуке. А тут еще в прошлом году telegram добавил возможность использовать webapp технологию для ботов. Подробнее об этом можно почитать тут: https://core.telegram.org/bots/webapps . Если кратко, то технология позволяет открывать веб-страницы внутри telegram-бота и организовывать более тесное взаимодействие с ними. Я захотел опробовать технологию и сделать какой-то простой проект. Так зародилась идея сделать бота для чеклистов https://t.me/chchecker_bot.
Данная статья посвящена в большей степени не самой разработке, а моему опыту использования списков и чек-листов в telegram, а также опыту пользователей моего бота по работе со списками, который оказался полезным в том числе для меня. Статья может оказаться интересной и для тех, кто также как и я привык работать в telegram, и по минимуму использовать сторонние приложения, если телега позволяет обойтись без них.
Как я жил с telegram и списками раньше
Алгоритм довольно простой:
- Добавить чат с сохраненными сообщениями в закрепленные, чтобы не нужно было искать его среди бесконечных переписок.
- Записывать туда все подряд.
- В течение дня заглядывать в чат, чтобы проверить что-то из задач на день.
- Если требовалось что-то важное или ко времени, ставить отложенные сообщения самому себе.
- Внутри чата с сохраненками закреплять какие-то важные сообщения, чтобы проще было найти. Иногда ставил теги, которые смогу вспомнить, тоже для облегчения поиска.
- В свободное время чистить мусор из сохраненок и актуализировать заметки.
Это вполне меня устраивало, пока чат не стал слишком большим. Телега отлично ищет внутри чата, но все равно ориентироваться стало неудобно. Для некоторых тематичных вещей я создавал отдельные приватные каналы, некоторые объединял в отдельную папку внутри telegram, и как-то с этим жил. Например, с супругой есть общий чат со сканами разных документов. Тоже закрепленный, чтобы был всегда под рукой. Очень выручает во всяких непредвиденных бюрократических ситуациях.

Закрепленные чаты в telegram
Типичный кейс использования списков в telegram — список покупок перед походом в магазин. Пишу в сохраненках одно сообщение со списком, каждый пункт с новой строки. В магазине редактирую это сообщение и стираю то, что уже положил в корзину. Редактировать и стирать сообщения не очень удобно, тк надо тыкать много и часто, а ты в движении и с корзиной. Зато все внутри телеги — всегда под рукой, никаких лишних приложений! И это я менять не собирался.
Коротко о боте для чек-листов
Я создал бота осенью 2022 года. Сначала очень простого. Потом появились пользователи. Они рассказывали, чего им не хватает, а я доделывал это. Спустя полгода бот стал уметь достаточно, чтобы закрыть основные боли пользователей и конечно мои.

как выглядит переписка с ботом
Для того, чтобы создать чеклист, не нужно вводить никаких странных команд, как это принято в других telegram-ботах. Просто пишешь сообщение с названием чеклиста боту, он его удаляет (чтобы чат оставался чистым) и присылает в ответ ссылку на чек-лист, который открывается в специальном окошке внутри телеграм. И там, внутри этого окошка, уже можно добавлять пункты чек-листа с удобными элементами управления. Можно отправить боту в чат сразу несколько строк, тогда он будет считать первую строку названием, а остальные непустые строки сразу внесет как пункты к этому чек-листу.
Итак, кратко, что на текущий момент умеет бот:
- создавать пустые и предзаполненные чек-листы, удалять и переименовывать их
- добавлять, редактировать и удалять пункты в них;
- менять порядок пунктов в списке;
- очищать чек-листы полностью или удалять только отмеченные пункты;
- ставить напоминания на пункты чек-листа или на весь чек-лист целиком;
- копировать содержимое чеклиста в буфер или присылать текстом в чат;
- делиться чек-листом по ссылке и настраивать права доступа к чек-листу, которые будут доступны пользователям по ссылке;
- работать в inline-режиме для быстрой отправки ссылки на чеклист через чаты и каналы.

Как работает бот в inline-режиме
У пользователей большие запросы, и в одиночку я не очень быстро могу разрабатывать новые функции, но стараюсь постоянно улучшать бота. Например, только недавно добавил изменение порядка пунктов внутри чеклиста. Для программиста задача довольно типичная. Но свободного времени всегда мало. Тем не менее стараюсь регулярно работать над ботом небольшими итерациями.
Какие кейсы решаются через бота
Вернемся к базовому кейсу — список для похода за продуктами.
Как правило люди в магазинах покупают одни и те же продукты. Некоторые продукты чаще, некоторые реже.
Для начала можно составить один список перед походом в магазин и дополнять его по мере необходимости.
- В магазине отмечаем купленные товары по мере того, как кладем их в корзину/тележку. Для этого больше не надо редактировать сообщение в сохраненках. Просто тыкаем на пункт списка.
- Перед тем, как снова пойти в магазин, проходим по списку и делаем неотмеченными позиции, которые снова нужно будет купить.
- Это довольно удобно, так как может сэкономить вам время и силы на составление нового списка, в котором вы что-то можете забыть. Обычно при добавлении новых пунктов список все равно не становится слишком большим, чтобы в нем было трудно сориентироваться.
Тем не менее, если список разросся, то можно разбить его на несколько списков. Например, по регулярности покупок: отдельный список покупок к событию (например, празднику, где нужны всякие салаты), отдельный список для продуктов с высокой частотой покупки и низким сроком годности (молоко, яйца, сметана, хлеб), отдельный список для продуктов, которые покупаем реже (крупы, приправы, нескоропортящиеся овощи вроде картофеля).
Кажется, что это одна из самых подробных инструкций, как ходить в магазин =). Давайте перейдем к более сложным кейсам.
Getting Things Done (GTD)
Об этом кейсе использования мне рассказал один из пользователей бота Рустам. Подробнее о методе https://habr.com/ru/articles/599391/.
GTD подразумевает использование таск-менеджеров, но Рустам подумал, что можно запилить это все в telegram. Не через канал, и не бот, а именно чат-группу, потому что в чатах появилась такая фича как темы (топики). И из темы в тему можно переставлять задачи. Темы можно называть по разному — СЕГОДНЯ, ЗАВТРА, КОГДА-НИБУДЬ и т.д.
Рустаму не хватало напоминаний в этой системе и чек листов. Напоминания он реализовал через стороннего бота, так как отложенные сообщения не работают внутри тем чат-группы. А вот чек листы через моего бота. На тот момент telegram еще не поддерживал открытие webapp приложений по ссылке, поэтому Рустаму приходилось отдельно заходить в бота и переключаться между темами чат-группы. Когда telegram доработал эту технологию, то ссылки на чек-листы стало можно оставлять прямо в нужных темах чат-групп.
Тем не менее, если мы гонимся за сверхпродуктивностью, то опытные прокрастинатологи говорят, что telegram — это не про продуктивность. Слишком много отвлекающих факторов. И советуют ставить отдельные приложения для управления чек-листами и списками дел. Но я не настолько упорен в этой борьбе, и удобство telegram перевешивает.
Ситуационные списки
А этот кейс про то, как я перестал забывать вещи. У меня есть несколько чек-листов со списком вещей для определенных мероприятий:
- для похода на тренировку (форма, сменное белье, вода, пропуск и т.д.);
- для командировки (одежда, документы, техника, средства гигиены и т.д.);
- задачи для ремонта (купить обои, договориться с плиточником и т.д.);
- для отдыха в конкретной стране (какие места и экскурсии посетить).
Когда я завел список для похода в тренажерный зал, то супруга надо мной подшучивала — неужели нельзя запомнить, что нужно взять с собой. Конечно можно! И обычно так и происходит. Но раз в 1-2 месяца все равно что-то забываешь. Я в разное время забывал чистое белье, воду, полотенце, форму, наушники. После того, как начал сверяться со списком перед выходом из дома — проблема исчезла.
Если все таки хочется испытать свою память и обойтись без списка — то сначала собираю вещи по памяти. Но потом все равно сверяюсь со списком, чтобы убедиться, что ничего не забыл.

Мой список вещей для спортзала
Если же говорить о командировках или отпусках, то эти события происходят не регулярно. И тут вероятность что-то забыть сильно выше, чем при походе в спортзал. Поэтому в таких ситуациях списки очень полезны.
Однажды в статье на ТЖ я прочитал, что кому-то не хватает стандартных ситуационных списков. Например, что взять в аптечку при поездке в другую страну/на дачу и т.д. Функциональность бота уже позволяет делиться списками между пользователями прямо по ссылке. И я думаю о том, чтобы завести подобный раздел в будущем.
Долгоживущие списки
Если не вдаваться в подробности о том, чем чек-листы отличаются от списков дел, то можно выделить пару основных критериев:
- Список дел обычно составляется на один раз, а чек-лист может включать повторяющиеся, регулярные активности.
- Пункты чек-листа обязательны и выстроены в строгой последовательности выполнения. А пункты списка можно перенести, поменять очередность, либо совсем не выполнять.
Мой бот, как я считаю, является довольно общим инструментом, через который можно вести и чек-листы и списки. Как именно работать с созданным листом — решать пользователю.
Поэтому кроме списков продуктов или вещей к определенной ситуации у меня есть такие списки как:
- фильмы, которые надо посмотреть;
- книги, которые надо прочитать;
- цели на год (в декабре они могут перерасти в список итогов года);
- списки улучшений, которые нужно реализовать в боте и других проектах.

У закрепленных сообщений сразу отображается кнопка открытия списка
Если говорить о “трушных” чек-листах, у меня есть несколько технических инструкций для развертывания и настройки программ. Но в основном я использую бота для работы именно со списками.
Регулярные задачи
Есть ряд вещей, которые необходимо делать регулярно. Например, еженедельная уборка в доме. Одно время мы с супругой распланировали в какой из дней кто из нас выполняет какие активности по уборке. Набросали расписание прямо на бумаге и приклеили к холодильнику. Честно говоря, хватило меня в лучшем случае на месяц.
Некоторые пользователи бота просили добавить оповещения о пунктах списка или о списке целиком. В простом виде я добавил эту возможность. Но самое главное, чего не хватает — это ставить повторяющиеся оповещения (раз в день/по выходным/в определенное число месяца). Напоминания о ежедневных делах реально востребованная функция. Многие также создают себе списки на каждый день, указывая в названии дату. Вероятно, таким образом замещая, календари и события. Логичный шаг — дать пользователям автосоздание списка по расписанию, автоматический перенос невыполненных пунктов в новый список, ну и, как минимум, возможность задавать периодичность оповещений. В моем боте эта функциональность пока что в планах. Но если у кого-то есть интересный опыт работы с регулярными задачами в telegram — делитесь, интересно было бы узнать о нем!
В заключении
Мой довольно простой бот теперь стал удобным помощником в повседневной жизни. Некоторые пользователи оставляют запросы на улучшения, и я стараюсь постоянно дорабатывать его функциональность. Также меня очень мотивирует любая обратная связь, особенно рассказы о том, как бот сэкономил людям время или помог с решением проблемы. Если у читателей есть интересные кейсы применения списков и чек-листов, а также рецепты эффективной работы с telegram, то был бы рад услышать их!
Показать полностью 5
2 месяца назад
Зачем я поднимаю пиратский флаг
Приложение IVI позволяет легально скачивать фильмы и смотреть без интернета. Отправляясь в командировку туда, где нет интернета, я пытаюсь накачать фильмов на ноутбук на правах подписчика. Но вот незадача: приложение скачивает фильмы только на диск С, на котором не много места осталось, только чтобы работала Windows. На другие диски скачивать нельзя.
Один из крупнейший онлайн-кинотеатров в стране и такой фэйл.
Естесственно берём торрент, скачиваем фильмы пачками, и смотрим без интернета. Зачем нам ваш платный неработающий «лучший» кинотеатр?

3 месяца назад

Телеграм бот > сайт?
Я начал делать свой проект почти девять месяцев назад, и первый пост о нём на пикабу был воспринят так хорошо, что дал мне мотивацию продолжать работу. Я не занимался агрессивной монетизацией, не спамил юзеров рекламными рассылками, не выпрашивал денег, в общем, старался быть таким вот хорошим человеком, на энтузиазме делающим что-то для людей. Также успех первого поста послужил причиной того, что я выбрал пикабу как основную площадку для блога о проекте, где продолжал рассказывать людям о том, что я сделал и что планирую сделать.
Но похоже, пора переезжать куда-то? Вот только когда я заводил блог на других популярных платформах, его быстро блокировали, потому торренты, сами понимаете. может быть, ваши предложения? Может, есть смысл открывать на сайте свой блог с комментариями?
Это довольно интересный феномен: когда делал посты про поиск торрентов с помощью своего телеграм-бота, почти под каждым таким постом были комментарии наподобие такого:

Поиск торрентов через Telegram: новые возможности
Сегодня 238-й день моего проекта: Telegram-бот (и уже не только) для свободного поиска торрентов сразу на куче известных трекеров.
46 дней назад закончилось голосование пользователей о приоритетах развития бота, и за это время были реализованы многие из предлагавшихся вариантов, а частично даже тот (!), который победил. В этом длиннопосте я расскажу о самом важном из того, что было сделано за эти недели.

Бот проживает по адресу/имени в Телеге rutracker_org_test_bot. Такое не очень удачное имя осталось с тех пор, как он был запущен для небольшого круга друзей и знакомых, а после поста на пикабу оказалось, что людям он нужен и им пользуются сотни человек каждый день. Поэтому я не забросил поддержку, а наоборот, решил последовательно развивать его (на пикабу как раз весьма кстати ввели серии постов).
Итак, ниже как итоги работы над вариантами из голосования, так и другие важные новости проекта. Это довольно много текста и картинок, поэтому я сначала тезисы напишу, а подробности ниже.
- [готово] Полноценное руководство пользователя
- [почти]: Информация о файлах раздачи и дополнительные параметры
- [сырое]: Добавлены фильтры по размеру раздач
- [готово] Добавление раздач в бота пользователем
- [готово] Комментарии к раздачам в боте
- [готово] Сортировка по названию раздачи
- [готово] Статистика скачиваний через бота
- [сырое] Добавлен трекер 1337x
- [готово] Трекер nyaa.si тоже был добавлен
- [готово] История проекта в виде changelog
- [готово] Поиск НЕ через бота
[готово] Полноценное руководство пользователя
Функциональность настолько разрослась, что пришла пора оформить всё в одном документе. Конечно, по соображениям надёжности большинство информации доступно непосредственно в боте. Но существующие ограничения и формат относительно коротких сообщений (это всё-таки мессенджер!) не позволяют как следует оформить там всю документацию без потерь.
Руководство доступно здесь, и я на него довольно часто буду ссылаться.
[почти]: Информация о файлах раздачи и дополнительные параметры
Победило предложение добавить в индекс поиска также и файлы из раздачи, а также каким-то образом давать о них информацию в боте при просмотре результатов поиска. Проблем несколько:
- нужно уложиться в текстовый формат сообщений бота, при этом надо учитывать, что файлов в раздаче может быть очень много;
- возникают проблемы с тем, чтобы поместить индекс поиска в таком случае в нерезиновую память (либо смириться с проседающей производительностью), так как он распухает довольно бодро.
Не то, чтобы к таким сложностям жизнь не готовила, однако по экономическим соображениям вариант реализации в лоб откладывается. Был выбран компромис: взять и закэшировать у себя (заодно сохранить на случай физической утраты первоисточника) топик раздачи с трекера, и показывать его при необходимости. Нередко в топике указано содержание/треклист и подобное, чем мы в таком случае и пользуемся. Работает так: вы находите то, что вас интересует:

Если у нас есть топик с трекера для этой раздачи, будет ссылка «другие подробности о раздаче». Открыв её, попадаем на страницу с топиком:

Выглядеть он будет не так, как на оригинальном трекере, но вся информация из топика будет. Например, кодеки, качество, язык озвучки и подобное. Надеюсь, это поможет закрыть ряд каких-то проблем и поможет вам в выборе:

[сырое]: Добавлены фильтры по размеру раздач
Эта фича вам поможет, например, при поиске высококачественных рипов. За этот вариант (№5 в списке) проголосовало 75 человек. Описание в боте лежит в разделе /advanced. Выглядит это так:

Таким нехитрым образом мы установили соответствующий фильтр (раздачи более 1.4 гига) на все последующие поиски:

Сразу скажу, что из-за особенностей реализации работают фильтры корректно только если у вас включена какая-либо сортировка по размеру. Следовательно, в планах на будущее: пофиксить это и сделать совместимым со всеми сортировками.
Полное описание работы команды описано в руководстве. Буквально вчера я спохватился и добавил преднастроенные фильтры, которые работают абсолютно так же — вам достаточно выбрать подходящий и применить:

Значения для фильтров были выбраны в результате небольшого исследования распределения размера раздач (у нас выборка около 9 млн.) — если у вас возникнет интерес, я напишу об этом.
К сожалению, функционал сырой ещё и потому, что доступен только однонаправленный фильтр — либо больше, либо меньше.
Сбросить фильтр можно отправив команду /filter_by_size (или короткий аналог /fbz) без параметров:

Включённый фильтр отображается в ваших настройках:

[готово] Добавление раздач в бота пользователем
Это одна из самых интересных возможностей. Вы можете в один клик добавить новую раздачу в бота. Для этого достаточно прикрепить .torrent файл в сообщение боту, указать описание документа (достаточно подробное), и всё. Ваш торрент будет превращён в magnet-ссылку в базе, а описание проиндексировано (биткоин для примера):

При добавлении проверяется, что ваш торрент уникален, то есть отсутствует в базе уже добавленных торрентов:

А также то, что вы указали подходящее описание:

После накопления в очереди достаточного числа торрентов они попадут в индекс и их можно будет найти наравне с другими. В качестве «трекера» у них будет написано local.
Здесь пользователи, которые настойчиво просят добавить в этот бот поиск раздач с порнолаба, могут увидеть определенный выход и вспомнить про спасение утопающих руками самих утопающих. Никакой модерации пока что не планируется.

[готово] Комментарии к раздачам в боте
Теперь можно оставлять анонимные комментарии к раздачам через бота (и, соответственно, читать их). На трекер они, естественно, не попадут, но будут храниться в базах бота и будут доступны всем, кто их захочет посмотреть при выборе раздачи. Подробно см. здесь.
[готово] Сортировка по названию раздачи
Для как минимум 17 человек было важно, чтобы подобная сортировка также присутствовала в боте наравне с другими. Я сделал:

Подобно другим сортировкам, команда называется /sort_by_lex.
[готово] Статистика скачиваний через бота
В расширенном режиме обзора карточек раздач в боте можно увидеть, сколько раз данную раздачу уже скачивали с помощью бота:

Также доступна совокупная статистика по боту /stats:

И ваша персональная статистика /my_stats:

И даже можно посмотреть состояние индекса раздач (но уже на сайте).
[сырое] Добавлен трекер 1337x
Теперь раздачи с этого трекера частично доступны в боте.
[готово] Трекер nyaa.si тоже был добавлен
Коллекция торрентов теперь регулярно пополняется и с этого трекера. Любителям аниме.
[готово] История проекта в виде changelog
Также оформил в хронологическом порядке важные изменения, которые вносились в бот по мере его развития.
[готово] Поиск НЕ через бота
Нет, не только ради того, чтобы отмахнуться от тех, кто видя ссылку на телеграм, ставит минус. Вероятно, вам будет удобно пользоваться поиском не только (или вообще не) через бота, а через более-менее привычный (но минималистичный) web. Поэтому я запилил тестовый вариант для этого. Просто открывать форму для спама всеми силами интернета я пока что не готов (да и бан от РКН получить легче), и поэтому схема такая: в боте выдаются ключи для доступа к форме поиска всем желающим с помощью /site, но по 10 шт./сутки в одни руки, да и сроком действия ограниченным. Надеюсь, кому-то это пригодится. Да, и конечно если надо больше ключей, пишите в боте, выдам без проблем как только.

Попадаем либо вот на такую страничку (desktop-версия):

Либо на мобильный вариант (у меня тёмная тема):

Почему Lowload и Graceful? Lowload потому что не highload, ведь посетителей довольно мало. А graceful потому что вы бы видели, какой там изящный код. На самом деле, конечно, наоборот.
Your key will expire after 100 times означает, что по одному ключу можно искать довольно долго, но всё-таки ограниченное количество раз.

В наличии знакомый набор сортировок.
Так выглядит страница с раздачей (первая ссылка из примера выше):

Local cache это тот самый кэшированный топик.
Так выглядит всё то же, но в мобильной версии:


Магнет-ссылки копируются кликом.
Мой дизайнер сейчас в отпуске, поэтому пришлось пока самому всё, но на стадии тестирования ведь!
Выражаю огромную благодарность всем, кто:
- участвовал в голосовании, писал комментарии;
- предлагал свои улучшения и писал критику (так, команда /last_query и её аналог /lq появилась благодаря совету пользователя, довольно удобная и простая);
- донатит на проект: вы очень помогаете проекту, как минимум благодаря этому мы осилили хостинг ещё в двух ДЦ;
- ставит плюсы и минусы: ваше неравнодушие к проекту очень сильно мотивирует продолжать его развивать и поддерживать.
Если у вас есть любые вопросы, предложения по функционалу, мысли о важности и/или бессмысленности данного проекта, пишите в комментариях! Можно анонимно писать в форме контактов, можно писать в боте через /f, всегда очень рад получить обратную связь . Спасибо!
Показать полностью 24
Поддержать
6 месяцев назад

Тапочки и кинозал в Telegram: без регистраций, инвайтов и SMS!


Нет, не в пятницу, но в ночь с пятницы на субботу! Для вас, дорогие подписчики, читатели и пользователи бота и просто пикабушники! Теперь вам не нужно никаких инвайтов, ограничений на скачивание в сутки и всего подобного со стороны этих трекеров! Не нужно мониторить зеркала и искать очередной vpn. Мы всё сделали для того, чтобы вы могли просто зайти в бот, найти и скачать раздачу. Некоторые давно ждали этого:


Теперь и с данных трекеров возможно искать и скачивать раздачи более свободно, т.к. мы закончили необходимые работы над ботом для этого.

Теперь все могут насладиться свободным безлимитным поиском по вышеуказанным трекерам внутри Telegram-bot’а, которому от вас ничего не нужно, никаких номеров и смс, он просто работает для вас! Без рекламы (кого смущает отсутствие рекламы, см. /faq)!
Да что это такое вообще, ничего не знаю про эти трекеры!
- Тапочек.нет — известный торрент-трекер, специализирующийся на игровых релизах. Например, небезызвестная релиз-группа Механики выкладывает именно там свои раздачи. Форум закрытый с системой инвайтов. Чтобы зарегистрироваться, нужно приглашение участника форума. Вот и нас пригласили)
- Kinozal.tv — торрент-трекер, специализирующийся на релизах фильмов (преимущественно для русскоязычной аудитории). Количество торрентов для скачивания для нового пользователя ограничено 5 штуками в сутки. Закрыт многими провайдерами для прямого доступа. На обоих трекерах присутствует система рейтинга пользователя по скачанному/отданному. С помощью бота вы можете не переживать, что ваш рейтинг пострадает или послужит помехой для скачивания.
Да у меня впн есть, бот не нужен!

К сожалению, иногда наши любимые сайты не работают, а поискать и скачать очень хочется! Ну и вместо поиска на каждом из них теперь можно за один раз получить инфу с нескольких, без рекламы Азин, следящих cookie и прочего. Да и вообще, я предлагаю ещё один способ среди множества других, кому-то нравится, а кому-то нет, и это нормально и хорошо)
Живём уже более полугода, полёт нормальный!

Даже если случится какая-то беда на этот счёт, вы знаете, где смотреть новый никнейм для бота)
Ну и конечно, вышли далеко за пределы рутрекера и теперь у нас доступны раздачи с десяти крупнейших трекеров. Это могло бы быть про нас, хотя и так пишут всякое.

Сейчас в нашей коллекции почти 7 с половиной миллионов раздач с таких трекеров как

Ну сейчас все набегут и положат.
Нет, у нас за всё время не случилось такого, что бот недоступен из-за перегрузки по запросам, несмотря на пикабу-эффекты, когда десять+ тысяч человек в сутки заходило попробовать бот. Единственные минуты за всё время, когда он не работал — это когда мы его перезагружали во время обновления. Стараемся это делать во время минимального онлайна и минимизировать импакт от этого с каждым релизом.

Подробнее с историей бота можно ознакомиться в моей серии постов. Приятных выходных!
P.S. Голосование для аудитории бота из пикабу за будущее бота по-прежнему продолжается тут: /vote_pikabu
На любые ваши вопросы готов ответить в комментариях, так же вы можете пользоваться обратной связью в личку через бота (/f). Спасибо!

Показать полностью 8
Поддержать
6 месяцев назад

Прошлое, настоящее и будущее поиска торрентов в 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 мая включительно. После этого за неделю будет сделано то, что вы выберете. Если победят сразу несколько вариантов (чего нельзя полностью исключать), они все будут реализованы. Чтобы посмотреть варианты и проголосовать, напишите
в боте. Помимо того, что вы там увидите, планируется расширить базу торрентов другими известными трекерами, и непрерывно улучшать качество поиска.
P.S.: Есть и вопросы без ответов:

А что вы об этом думаете?
Показать полностью 17
Поддержать
9 месяцев назад
Как найти торрент в Telegram: мой бот теперь с подписками на новинки
Привет, Пикабу! Я делаю телеграм-бот, который поможет вам найти торренты с различных трекеров, даже если эти трекеры станут недоступны даже с VPN.
Допустим, вы ищете крутой новый сериал. Для этого вы, как обычно, пишите название сообщением боту. И вот наш поиск не нашёл совсем ничего — и если раньше вам в такой ситуации в ответ бот только лишь сообщал, как ему очень жаль и всё такое, то теперь многое изменилось!

- Ещё неделю назад пользователи, искавшие, скажем, какую-нибудь hogwarts legacy, могли увидеть сообщение о том, что они могут подписаться на обновления по запросу hogwarts legacy, отправив боту команду /sub после вышеуказанного сообщения. Ну и на некоторые другие запросы, когда отсутствуют результаты поиска.
- Далее, если вы нажимаете /sub, вы увидите примерно такое сообщение:

- Можно и отписаться, конечно же:

- Когда при очередном обновлении баз выяснится, что по вашему запросу доступны результаты в поиске так, как если бы вы его написали боту, мы вышлем вам уведомление. Например, такое:

- Ещё раз, как это работает: вы задаёте боту запрос, на который он не может найти раздачи — после этого можно сразу написать волшебное слово /sub (даже если бот вам не предложил этого сделать как в примере выше) — и ваш запрос сохранён для уведомления в случае, когда мы можем найти у нас в базах по нему раздачи.
- Пока что на одного пользователя — один подписочный запрос. Чтобы подписаться на другой запрос вместо текущего, писать /unsub перед новым поиском не обязательно — они затирают друг друга в порядке очереди. Т.е. просто /sub после неудачного поиска.
- Посмотреть, на что вы подписались и подписаны ли, можно командой /my_sub.
- Возможность в процессе тестирования, постепенно добавим ссылки эти команды на страницы справки в боте (например, в /help). Пока что случайно зашедший в бот пользователь может узнать о такой возможности, только если ему «повезёт» при неудачном поиске получить такую подсказку.
Что ещё появилось в боте за последние две недели:
- Подсказки пользователю, если найти торрент не удалось. Делятся на несколько видов: сообщения о возможных опечатках:

похожие и успешные поисковые запросы:

Ну и статистика запроса по некоторым словам из поиска, если они есть в индексе (как в самом первом примере с крутым и новым сериалом):

- Расширяем базу поиска торрентов. За последние две недели список пополнился пиратбэем и русторкой (см. /trackers):

- Категории торрентов! На трекерах раздачи часто группируют по разделам форума, в боте эти названия выступают как категория торрента. И слова из названия участвуют в поиске — можно указывать их в запросе. Подробнее: /cats — там же список доступных категорий по трекерам.

Как обычно, по всем вопросам, с любой обратной связью можно писать через бота: /f и далее ваше сообщение.
Весь функционал совершенно бесплатен для вас и не требует никакой регистрации (только аккаунт в Telegram), никаких номеров телефона и прочее, также я принципиально не делаю в боте никакой рекламы. Ограничений по поисковым запросам тоже нет. Глубина поиска ничем не ограничена (на рутрекере, например, только 500 результатов дадут). Вид, направление сортировки и количество результатов за один раз вы можете регулировать в /settings.
Справка по боту: /help и далее. =)

Показать полностью 10
Поддержать
9 месяцев назад
Почтальон из невидимой сети теперь доступен в Telegram

Вкратце: добавил в своего телеграм-бота для поиска торрентов индексацию старейшего в сети I2P трекера Postman (since 1954!) — tracker2.postman.i2p. Содержит не так много торрентов, как общеизвестные трекеры типа рутрекера, но зато присутствует уникальный контент, который вы, возможно, больше нигде не найдёте. Даже если вы не знаете, как подключиться к сети i2p, у вас теперь есть возможность поискать на этом трекере через Telegram.
Как там поискать через бота?
Просто добавьте к поисковому запросу ключевые слова для этого трекера, это «postman» или «i2p». Например:

А вот раздел «Pr0n» доступен для поиска не будет, всё-таки у нас не порно-поиск.

I2P? Что это вообще?
Это такой усовершенствованный Tor — анонимная компьютерная сеть. Так, изначально сеть i2p была спроектирована с учётом предположения, что все промежуточные узлы являются скомпрометированными или злонамеренными (в отличие от того же Tor, где подобная ситуация легко ломает всю концепцию). О преимуществах и недостатках можно почитать (на русском) тут. Ещё могу рекомендовать такую статью: https://habr.com/ru/post/552072/
Сайты в сети i2p имеют соответствующий «домен» верхнего уровня .i2p и не откроются в вашем браузере без дополнительных ухищрений (по аналогии с .onion).
A kак оттуда kачать?
Так как присутствует «программа» «cross seed» (когда контент из скрытосети раздаётся и в обычную), возможно найти раздающих, используя полученную magnet-ссылку как обычно (словно она, допустим, с рутрекера, и открывать в обычном uTorrent/Flud/Transmission/etc). Однако, как правило, если вам понадобилось оттуда что-то качать, лучше разобраться с тем, как запустить bittorrent-клиент для I2P (из рекомендуемых связка i2psnark + i2pd).
Так или иначе, мы предоставляем возможность ознакомиться с очередным источником контента и узнать, что там можно вообще найти.
Всем хороших выходных!
Показать полностью 2
Поддержать
9 месяцев назад
В России резко выросло число загрузок пиратских копий фильмов через торренты

В России резко выросло число загрузок пиратских копий иностранных блокбастеров через торренты — количество скачиваний исчисляется сотнями тысяч в день. Об этом, ссылаясь на данные Peer Trace, пишет «Коммерсант» в среду, 25 января.
Наибольшей популярностью на торрентах 22 января пользовались «Аватар 2: Путь воды» (168,6 тыс. скачиваний в день) и «Кот в сапогах 2: Последнее желание» (167,2 тыс.). Это значительно больше, чем у российского фильма «Чебурашка» — его загружали и раздавали 26,5 тыс. раз. «Меню» — третий по популярности фильм у российских пользователей торрентов (92,5 тыс. скачиваний в день).
Спрос вырос не только на ленты, которые появились в сезон праздников и в его преддверии, но и другие картины, официально не выходившие в России на протяжении всего прошлого года. По мнению экспертов, люди обращаются к нелегальным ресурсам не только из-за недоступности официальных релизов, но и ради экономии.
Статистика не учитывает просмотры фильмов в пиратских онлайн-кинотеатрах, так как те обычно не используют технологию BitTorrent, уточнили «Ъ» в Peer Trace. При этом в компании объяснили, что некоторые торрент-клиенты позволяют начать просмотр видеофайла ещё до его полной загрузки, и такой просмотр попадает в выборку: «По сути, это обычное скачивание».
На этой почве выросла популярность приложений для Android и Windows, позволяющих смотреть «пиратки». Некоторые кинотеатры теперь показывают нелицензионные копии во время «предсеансового обслуживания» к малоизвестным отечественным короткометражкам.

Показать полностью 1
9 месяцев назад

Rutracker лежит, но скачать нужно прямо сейчас? Telegram-бот для поиска торрентов!
Давно ничего не публиковалось насчет нашего с вами @rutracker_org_test_bot

Сегодня увидел, что всеми любимый рутрекер лежит полдня, и вот этот пост:

Видимо, этим объясняется сегодняшний набег пользователей:

Сегодня я расскажу, что появилось нового в боте со времени последнего поста на пикабу.
Персональные настройки
Теперь вы можете настроить вид результатов поисковой выдачи, сортировку страниц и порядок отображения результатов (например, на смартфоне всё проматывается вниз, и чтобы увидеть топ при обычном (прямом) порядке, приходится листать наверх).

Приватные клоны этого бота
Приватный клон — это бот, владельцем которого являетесь вы, но работает он на том же самом backend (сервере и базе), что и публичный. Вы создаёте через BotFather бота с тем никнеймом, каким пожелаете, и высылаете нам токен (подробная инструкция в команде бота /my_bot). Удовольствие это не бесплатное, т.к. ваш экземпляр также будет кушать память на сервере, а сервер как водится не резиновый и сам тоже не бесплатный =). После анонса, мы посмотрели на то, сколько человек выразило желание иметь таких клонов, и пришли к выводу, что такое количество ботов переполнит имеющиеся у нас мощности в несколько раз, поэтому так.

Зачем это вообще может быть надо? В основном как гарантия, что в случае блокировки публичного, «основного» бота вы не останетесь «без света» и по-прежнему сможете искать и качать, т.к. про ваш личный бот никто знать не будет (кроме того круга лиц, с которым вы решите поделиться).
Невидимые улучшения
Улучшения в сфере оптимизации программ часто ускользают от внимания пользователей, однако они есть! =) В частности, были серьёзно сокращены размеры таблиц БД для поиска и хранения данных, исправлены упоминавшиеся в комментариях баги и тому подобное.

Welcome! Не стесняйтесь сообщать о багах — это можно сделать не только в комментариях, которые мы внимательно читаем, но и напрямую — через команду /f бота.
Статистика использования бота
С момента первого поста на пикабу и активного старта публичного использования этой разработки прошло почти три месяца. Чему сразу можно порадоваться: нас не забанили\заблокировали ещё, несмотря на:
- Всего ботом воспользовалось более 30 тыс. человек
- Ежедневно в среднем приходит около 1700 поисковых запросов
- Всего обработано более 150 тыс. поисковых запросов
- Ежедневно приходит около 400 новых пользователей
- Ежедневно бот используют чуть менее 1000 человек
- Ежедневно в личку (через /f) кто-то пишет что-нибудь приятное =)
Из возможных минусов — популярным этот проект назвать сложно. Хотя по запросам «телеграм бот торренты» и подобным ссылки на мои посты и бота можно найти на первой странице что в гугле, что в яндексе.
Монетизация
Фактически вся монетизация и поддержка проекта до недавнего момента осуществляется через систему донатов пикабу. Никакой рекламы и подобного нет и не планируется. Выражаю благодарность всем, кто донатит на поддержку, на эти средства мы содержим сервер и посвящаем немного свободного времени поддержке этого проекта.
Что может быть дальше?
В планах разной степени дальности следующие возможности:
- Различные топы раздач по востребованности в поиске на текущей неделе, например
- Подписка на обновления раздач (например, непрерывно обновляющейся раздачи сериала)
- Другие боты альтернативного поиска (не только торрентов).
- . — предлагайте свои идеи в комментариях!
Всем дочитавшим до этого места спасибо за внимание; недочитавшим, впрочем, тоже! =)
Показать полностью 4
Поддержать
10 месяцев назад
Актуально как никогда
Или отзыву зарубежных фильмов с онлайн-кинотеатров посвящается

Показать полностью 1
1 год назад

Обновления 20.11: поддержка nnmclub (telegram bot поиска торрентов)
По вашим просьбам сегодня добавил в телеграм бот для свободного поиска торрентов раздачи с nnmclub (как выяснилось, довольно популярный трекер-форум).

Теперь список поддерживаемых трекеров выглядит так: rutracker, booktracker, rutor, eztv, nnmclub. Сразу скажу, что список раздач по nnmclub может быть неполным, однако будет в дальнейшем только увеличиваться.

Также к информации о раздаче добавлена дата создания, и возможность сортировки по ней.
Как справедливо указывали в комментариях

«кнопка» создания своего псевдонима для бота довольно востребована, однако пока что я добавил возможность отметиться в боте для тех, кому это необходимо, чтобы увидеть примерное количество пользователей и продумать схему распределения нагрузки (потому что эта фича с точки зрения нагрузки на сервер может быть совсем не бесплатная, к сожалению).
Подробности, как обычно, можно посмотреть в /help

Для тех, кто прочитает этот пост впервые: предыстория раз, два, три. Наиболее популярные фичи, которые предлагают пользователи в комментариях, я стараюсь реализовывать.
Показать полностью 4
Поддержать
1 год назад

Как устроен поиск в моём Telegram-боте для поиска торрентов
Недавно я написал пост, в котором поделился своим Telegram-ботом для поиска торрентов с рутрекера. На удивление оказалось, что сотням людей это оказалось нужно и полезно, что вдохновило меня на дальнейшую работу над этим небольшим проектом и поддержку пользователей.
В этой статье я хочу рассказать о некоторых технических деталях реализации, о которых меня неоднократно спрашивали и в комментариях, и в личных сообщениях через /f.
Что нужно, чтобы найти торрент?
Разумеется, сначала нужен ваш поисковый запрос. Его вы пишите просто как сообщение боту, например, вот так:

Бот получает ваше сообщение и делает с ним несколько вещей. Во-первых, из сообщения удаляются некоторые специальные символы (например, знаки пунктуации и всякие $*^@). Во-вторых, запрос разбивается на отдельные слова.
На этом этапе может обнаружиться, что ваш запрос пустой. Тогда вам отправляется сообщение, указывающее на невозможность поиска.
Далее нужно собственно какое-то хранилище знаний о существующих торрентах, где можно этот самый поиск производить. В нашем случае это собственная база данных, содержащая относительно актуальную информацию о состоянии раздач на рутрекере. О том, почему было выбрано именно такое решение, я расскажу ниже. Пока что отметим, что информации о раздачах много, а полезной для нас среди неё маловато. Например, когда пользователь ищет что-то, как правило это часть названия раздачи (этому способствует бушевавшая в своё время на рутрекере модерация раздач, требовавшая строгих правил оформления), название раздела, имя файлов.
База для поиска устроена крайне примитивно: у нас есть keyword — ключевое слово, по которому будем искать соответствие, ну и адрес раздачи, которой этот keyword соответствует. Получается, что построив индекс базы данных по полю keyword, мы сможем быстро находить вхождения этого слова в базе. Сами keyword’ы мы будем брать из названия раздачи, названия раздела, и некоторых файлов из раздачи.
Теперь осталось соединить ваш запрос и базу. Для этого ещё нужно проследить, чтобы наши keyword были такого же вида, как и слова из запроса после предобработки (см. выше). Например, если мы удаляем какие-то спецсимволы из слов поискового запроса, они также должны удаляться из keyword, иначе чуда не произойдёт.
Ну и конечно же, базу желательно взять побыстрее, т.к. всем хочется, чтобы их запросы обрабатывались как можно быстрее. Поэтому выбор был сделан в пользу ClickHouse. Выглядит поиск подходящих под ваш набор ключевых слов топиков примерно вот так:

Помимо самого факта вхождений, здесь проверяется, чтобы все ключевые слова из запроса были найдены для данной раздачи (topic_id). Т.о. если хотя бы одного слова из вашего запроса в индексе не нашлось, такая раздача не будет вам показана.
Немного статистики: всего уникальных ключевых слов в индексе на сегодня содержится 1,144,565 — что не так много.
Описанная выше схема является довольно примитивной для того, чтобы называться полноценной системой поиска, однако она рабочая. Теперь ответы на другие вопросы, которые могли у вас возникнуть, либо уже были заданы в комментариях.
Почему нельзя просто использовать поиск рутрекера?
Можно, и более того: тогда вы точно найдёте то, что искали бы на рутрекере.

К сожалению, плюсы использования поисковой системы рутрекера на этом заканчиваются.
Обратите внимание, что на рутрекере используется приведение к некоторой базовой морфологической форме, поэтому черная = черный, весны = весна. Из-за этого в результатах могут появиться такие странные находки. У нас вы получите на тот же запрос такое:

Здесь же хочется отметить, что в отличие от поисковой системы рутрекера, на мою можно повлиять, оставляя пожелания и комментарии, которые помогут мне в дальнейшем развитии проекта и сделать поиск лучше.
Вторая и ещё более важна причина использовать свой поиск: независимость от состояния форума. Форум может быть отключён для профилактических работ именно тогда, когда вам нужно что-то поискать, либо может быть вообще удалён, не выдержать DDoS и упасть, да много по каким причинам быть недоступен. А сиды и magnet-ссылки работают и без форума, поэтому найти нужное будет возможно даже в условиях недоступности рутрекера. Ну а скачать найденное получится, конечно, только при наличии сидов.
Третья причина не использовать поиск форума заключается в том, что нужно будет отправлять и получать поисковые запросы на форум. Так как у форума нет API для поисковых запросов (напишите, если нашли, у меня не получилось), то придётся написать свою. Но всё станет медленнее, потому что вам придётся что-то отправлять и ждать ответа от другого ресурса в сети. Обратите внимание, насколько быстро вы получаете сообщение от бота! Даже в моменты, когда первый пост обрёл популярность и в первые сутки случится пикабу-эффект, пиковая нагрузка была далеко до предельной.
Откуда база данных для поиска, и как её самому сделать?
Здесь тоже никаких секретов быть не может, просто берём и парсим весь рутрекер =)
Для того, чтобы не положить форум, одна итерация обновления базы и индекса растягивается от пары до шести часов. А, ну ещё можно использовать «базы», выложенные на самом рутрекере (только обновляются они раз в месяц в лучшем случае).
Если хотите потренироваться, а парсингом не хочется заниматься — можно взять их. К слову, будьте готовы, что там вас в качестве базы будет ждать просто 3-х гиговый XML-файл. У нас же это выглядит как-то так (posts это база вообще всех постов рутрекера и не участвует пока что в процессе):

Обратите внимание, что места на жестком диске для подобной реализации вам понадобится менее 1 Гб, что делает проект относительно дешевым для размещения на каком-нибудь хостинге.
Спасибо, что дочитали до этого места! Я очень рад, что людям стал интересен и полезен этот проект. С момента первого поста на пикабу я внёс несколько ощутимых изменений в бота, подсказанных пользователями. Приглашаю всех, кому это актуально, воспользоваться моим ботом:
P.S.: Да, всё ещё «test».
