В качестве конкурсной работы представляю работу, которая состоит из основного проекта и подпроекта, с помощью которых работает действующий P2P Telegram-бот для электронной коммерции цифровых товаров в формате моментальных продаж и аукционов с довольно немалой аудиторией 24/7.
На данный момент Пользователи могут продавать друг другу картинки, в основном это купоны, но в ближайшем будущем добавлю поддержку и других видов файлов.
Я даже не знаю, какое точное название подошло бы для моей работы. Альтернативные названия: быстрая разработка и тестирование MPV на ZennoPoster, разработка интерфейса на ходу и т.п.
На протяжении нескольких месяцев я собрал бота с нуля и продолжаю его разработку. Очень удобно это делать через Zennoposter, так как ежедневно я меняю/добавляю что-то новое в логику обработки данных, работаю над интерфейсом бота, вношу изменения в его функциональность.
Поэтому, это не столько рабочие шаблоны, сколько принцип разработки Telegram-бота, который можно применить где угодно. Поэтому, я расскажу, как я на ходу разрабатываю P2P Telegram-бот.
Сейчас я объясню, что и как у меня происходит.
И так, основной проект/шаблон: Получение updates от Telegram API - его нужно запустить в Zennoposter.
Вот так выглядит изнутри сердце проекта:
Данный шаблон получает массив обновлений от Telegram, вычисляет порядок обработки результатов и передает эти данные в двух переменных: массив + порядковый номер элемента массива в подпроект (Module), который в свою очередь обрабатывает определенный результат из массива.
Работа шаблона здесь зациклена изнутри, но для надежности можно указать значение -1 для бесконечного числа выполнений. В случае, если потребуется остановить проект, то просто прерываем его.
Идея шаблона следующая: он получает апдейты Телеграм и пропускает каждый результат через подпроект (Module), где логику обработки вы составляете сами и можете заниматься её разработкой на ходу. Просто открываете шаблон подпроекта (Module) в ProjectMaker и работаете с ним, периодически делая сохранения по мере необходимости. В качестве отладки можно ставить уведомления в местах, где вы проводите работы, чтобы видеть в Логе ZennoPoster, как обрабатываются данные.
Основной шаблон рассчитан на то, что в подпроекте могут быть любые сценарии обработки данных с множеством выходов.
Вот как выглядит подпроект - мозг проекта:
Чтобы поместить весь шаблон на одну картинку, пришлось склеить из 4х частей. Рассматривать детальнее можно, скачав шаблон. А сейчас просто посмотрите, какой он огромный.
Изначально этот шаблон был маленьким, все началось только с обработки команды /start и добавления/обновления информации Пользователей в БД PostgresQL. По мере самообучения и реализации идей логика разрасталась, шаблон превратился в плотный ком из кубиков и линий... В ходе подготовки шаблона к конкурсу понадобилось 50 часов, чтобы привести в такой «красивый» вид этот шаблон.
Принцип работы:
Роутинг/Обработка (анализ и определение логики ответа)
Отправка ответа (POST-запрос в Telegram API с реакцией на update)
Сценарий его работы:
1. Получение JSON массива от главного шаблона и получение идентификатора результата, который нужно обработать через переменные;
2. Определение,чем является результат;
3. Роутинг/Обработка (анализ и определение логики ответа);
4. Отправка ответа (POST-запрос в Telegram API с реакцией на update).
На данный момент в подпроекте обрабатываются следующие результаты:
1. Нажатия кнопок;
2. Входящие сообщения и команды вместе с ними с множеством параметров;
3. Inline-запросы.
Также в шаблоне выполняются запросы к YooMoney для проверки статуса платежей.
В ближайшее время я приступлю к добавлению еще одной ветки для обработки обновлений, где Телеграм сообщает о выборе пользователем определенного inline-результата - чтобы сохранять идентификаторы inline-сообщений и дальше обновлять все публикации одного лота их по мере изменения его данных.
А если я добавлю возможность других видов файлов помимо картинок, то скорее всего шаблон раздуется в разы.
Как видно, подпроект Module получился большим, и это не предел. В голове еще много идей, которые займут еще больше пространства в шаблоне. В подпроекте могут быть любые сценарии обработки данных с множеством выходов - это предусмотрено в основном шаблоне.
Я постарался закомментировать подробно все части обработки данных, чтобы любой желающий мог посмотреть, какие решения я использовал.
Для обработки текстовых и числовых данных я применяю самовызывающиеся функции на JS, которые мне успешно генерирует нейросеть Claude.
Приведу пример такой функции.
Пользователь хочет найти все активные лоты, в названии которых есть слово "чипсы". Запрос к БД возвращает мне список из 100 строк. Мне нужно этот список разбить таким образом, чтобы количество кнопок на одно сообщение не превышало 49. С помощью Claude получаю готовую функцию JS - алгоритм равномерного распределения элементов с минимальными отклонениями в размере, который выдает результат "34,33,33" (первая часть 34 строки, две следующие по 33).
Пользователю бот присылает результаты тремя сообщениями, дополнительно нумеруя сообщения как страницы.
Этот и другие алгоритмы, а также некоторые подходы можно увидеть при детальном рассмотрении шаблона Module.
На данный момент Пользователи могут продавать друг другу картинки, в основном это купоны, но в ближайшем будущем добавлю поддержку и других видов файлов.
Я даже не знаю, какое точное название подошло бы для моей работы. Альтернативные названия: быстрая разработка и тестирование MPV на ZennoPoster, разработка интерфейса на ходу и т.п.
На протяжении нескольких месяцев я собрал бота с нуля и продолжаю его разработку. Очень удобно это делать через Zennoposter, так как ежедневно я меняю/добавляю что-то новое в логику обработки данных, работаю над интерфейсом бота, вношу изменения в его функциональность.
Поэтому, это не столько рабочие шаблоны, сколько принцип разработки Telegram-бота, который можно применить где угодно. Поэтому, я расскажу, как я на ходу разрабатываю P2P Telegram-бот.
Сейчас я объясню, что и как у меня происходит.
И так, основной проект/шаблон: Получение updates от Telegram API - его нужно запустить в Zennoposter.
Вот так выглядит изнутри сердце проекта:
Данный шаблон получает массив обновлений от Telegram, вычисляет порядок обработки результатов и передает эти данные в двух переменных: массив + порядковый номер элемента массива в подпроект (Module), который в свою очередь обрабатывает определенный результат из массива.
Работа шаблона здесь зациклена изнутри, но для надежности можно указать значение -1 для бесконечного числа выполнений. В случае, если потребуется остановить проект, то просто прерываем его.
Идея шаблона следующая: он получает апдейты Телеграм и пропускает каждый результат через подпроект (Module), где логику обработки вы составляете сами и можете заниматься её разработкой на ходу. Просто открываете шаблон подпроекта (Module) в ProjectMaker и работаете с ним, периодически делая сохранения по мере необходимости. В качестве отладки можно ставить уведомления в местах, где вы проводите работы, чтобы видеть в Логе ZennoPoster, как обрабатываются данные.
Основной шаблон рассчитан на то, что в подпроекте могут быть любые сценарии обработки данных с множеством выходов.
Вот как выглядит подпроект - мозг проекта:
Чтобы поместить весь шаблон на одну картинку, пришлось склеить из 4х частей. Рассматривать детальнее можно, скачав шаблон. А сейчас просто посмотрите, какой он огромный.
Изначально этот шаблон был маленьким, все началось только с обработки команды /start и добавления/обновления информации Пользователей в БД PostgresQL. По мере самообучения и реализации идей логика разрасталась, шаблон превратился в плотный ком из кубиков и линий... В ходе подготовки шаблона к конкурсу понадобилось 50 часов, чтобы привести в такой «красивый» вид этот шаблон.
Принцип работы:
Роутинг/Обработка (анализ и определение логики ответа)
Отправка ответа (POST-запрос в Telegram API с реакцией на update)
Сценарий его работы:
1. Получение JSON массива от главного шаблона и получение идентификатора результата, который нужно обработать через переменные;
2. Определение,чем является результат;
3. Роутинг/Обработка (анализ и определение логики ответа);
4. Отправка ответа (POST-запрос в Telegram API с реакцией на update).
На данный момент в подпроекте обрабатываются следующие результаты:
1. Нажатия кнопок;
2. Входящие сообщения и команды вместе с ними с множеством параметров;
3. Inline-запросы.
Также в шаблоне выполняются запросы к YooMoney для проверки статуса платежей.
В ближайшее время я приступлю к добавлению еще одной ветки для обработки обновлений, где Телеграм сообщает о выборе пользователем определенного inline-результата - чтобы сохранять идентификаторы inline-сообщений и дальше обновлять все публикации одного лота их по мере изменения его данных.
А если я добавлю возможность других видов файлов помимо картинок, то скорее всего шаблон раздуется в разы.
Как видно, подпроект Module получился большим, и это не предел. В голове еще много идей, которые займут еще больше пространства в шаблоне. В подпроекте могут быть любые сценарии обработки данных с множеством выходов - это предусмотрено в основном шаблоне.
Я постарался закомментировать подробно все части обработки данных, чтобы любой желающий мог посмотреть, какие решения я использовал.
Для обработки текстовых и числовых данных я применяю самовызывающиеся функции на JS, которые мне успешно генерирует нейросеть Claude.
Приведу пример такой функции.
Пользователь хочет найти все активные лоты, в названии которых есть слово "чипсы". Запрос к БД возвращает мне список из 100 строк. Мне нужно этот список разбить таким образом, чтобы количество кнопок на одно сообщение не превышало 49. С помощью Claude получаю готовую функцию JS - алгоритм равномерного распределения элементов с минимальными отклонениями в размере, который выдает результат "34,33,33" (первая часть 34 строки, две следующие по 33).
Пользователю бот присылает результаты тремя сообщениями, дополнительно нумеруя сообщения как страницы.
Этот и другие алгоритмы, а также некоторые подходы можно увидеть при детальном рассмотрении шаблона Module.
Вложения
-
43,9 КБ Просмотры: 14
-
141,4 КБ Просмотры: 13
Последнее редактирование: