Сергей Клабуков
48

Дневник разработки. Брокер ТЖ

Решил делится немного ходом создания мамкиного брокера. Вчера присел над ним поработать, наконец-то. Волею судеб оказалось, что мое желание поработать совпало с желанием у кого-то провести технические работы на ТЖ, и я словил ошибку при работе с АПИ. Потратив некоторое время на осознание того, что эта ошибка вызвана не моими действиями, а руками разработчиков с другой стороны, я вернулся к работе попозже.

В закладки

Когда-то я уже собирал основу для работы с ботами на Laravel (там до сих пор крутится телеграм бот и Батька бот для подсайта), но тот проект уже превратился в монстра и не представлял из себя чего-то красивого с архитектурной точки зрения. Потому я решил пересобрать все с нуля по красоте.

Все могло быть так​

Как не странно, пока мне нравится как это выглядит. Взял за основу минимальную сборку Symfony, разбил на микросервисы, приправил работой через очереди RabbitMQ, настроил Supervisor, чтобы поддерживать нагрузку на консюмеры. Теперь каждого бота можно выделять в отдельный проект, вешать его на очередь новых комментариев, отдельно висят всякие обработчики обновления данных о пользователях. Красота вообщем. Заодно использовал свою ранее написанную библиотеку для работы с API Комитета для PHP.

Потихоньку обрабатываются вебхуки о новых комментариях​

По итогу, вчера просидел до 2х ночи и сделал всю основу для бота. Так же удалось сделать обработку первой команды, теперь можно у него спросить текущий свой баланс (для этого надо упомянуть бота и чтобы сообщение содержало строку "мой баланс"). На данный момент это будет 1000 олдиков, которые выдаются всем, как стартовый баланс. Если кто-то это прочитает - можете предлагать свои названия для валюты.

Посмотрим, может вечером выделю время что-то еще поделать. П.С. вообще проект лежит на гитхабе, если кому-то будет интересно.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы рассказать свою историю.

Написать
{ "author_name": "Сергей Клабуков", "author_type": "self", "tags": [], "comments": 12, "likes": 8, "favorites": 1, "is_advertisement": false, "subsite_label": "unknown", "id": 120241, "is_wide": false, "is_ugc": true, "date": "Wed, 09 Oct 2019 10:59:55 +0300", "is_special": false }
0
{ "id": 120241, "author_id": 21900, "diff_limit": 1000, "urls": {"diff":"\/comments\/120241\/get","add":"\/comments\/120241\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/120241"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 21900, "last_count_and_date": null }
12 комментариев
Популярные
По порядку
Написать комментарий...
2

Если кто-то это прочитает - можете предлагать свои названия для валюты.

Думаю надо увековечить Гошу

Ответить
0

Но он и так уже увековечен в Аляске. Предлагаю увековечить Зоибану. Тем более Зоибана и лайки неразрывно связаны. А тут биржа лайков как раз.
З.Ы. Хотя если он вернётся, то ему в телегу будут всё время упоминания прилетать.

Ответить
0

Согласен, Зоибана более чем достоин. Нужно ввести билайковый стандарт: Зоибана и Гошан.

Ответить
0

Человек-Человекоины.

Ответить
0

Я пока не знаю такой команды :(

Ответить
0

Я пока не знаю такой команды :(

Ответить
0

Я пока не знаю такой команды :(

Ответить
0

NASDAQ-696
Акций выпущено: 1000
Стоимость одной акции: 1.22

Ответить
Обсуждаемое
Интернет и мемы
Как Tinder в России стал обителью иронии и мемов — рассказывает создатель сообщества Swipe Right
«Cяду тебе на лицо» в анкете ещё не значит, что девушка ищет секса.
Гость TJ
Гость TJ: Григорий Сергеев, основатель поискового отряда «Лиза Алерт»
Задавайте вопросы в комментариях. Трансляция — после 19:30.
Интернет и мемы
Российская блогерша призвала жертвовать жизнью животных на дорогах ради спасения человека. В соцсетях ответили угрозами
Лера Любарская признала высказывание «некорректным» и подчеркнула, что не понимает тех, кто «поддерживает травлю».
Популярное за три дня
Новости
Сына красноярского депутата с другом заподозрили в избиении человека до смерти. Жители города призвали к народному сходу
Избитый молодой человек 22 дня провёл в коме, спасти его не удалось.
Новости
Власти США приостановили ICO Дурова и подали иск против Telegram из-за «незаконной продажи токенов» на 1,7 млрд долларов
Американский регулятор выступил против попытки компании «наводнить рынок» своей криптовалютой.
Интернет и мемы
Детальный Краснодар, большой куриный коллайдер и вырождение космоса: масштабные и абсурдные проекты в Minecraft
Никогда не поздно удариться в пиксельно-кубическое творчество или объяснять школьникам устройство вселенной.

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovy", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byswn", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223677-0", "render_to": "inpage_VI-223677-0-130073047", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=cndo&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudv", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "ccydt", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbk", "p2": "gnwc" } } } ]