Eugene
Приветствую всех, подскажите пожалуйста кто нибудь приходилось взаимодействовать с Telegram, необходимо вытащить глубину просмотра сообщения из канала , возможно ли такое? Информацию о самом канале вытащить можно без проблем, сообщения тоже а вот со статистикой сообщений сложности.
Anonymous
нет такого
Eugene
может есть что то готовое на Yii2 ?
SiZE
глубину просмотра сообщения объясните простому человеку - что это? как это? для чего это?
SiZE
https://www.youtube.com/watch?v=1JXe5M7hZic
Dmytro
Да-да, пожалуйста, объясните нам, не образованым
Dmytro
глубину просмотра сообщения объясните простому человеку - что это? как это? для чего это?
Dmytro
Точно можно написать бота для tg, даже на php Но yii2 тут точно не поможет
👀
у меня, кстати, два бота для телеги, и для каждого я юзаю yii2 но, правда, это - как из пушки по воробьям, ибо из yii я взял только роутинг, AR и модели
👀
насчёт вопроса про глубину просмотра: непонятно что это (может, как далеко сообщение по дате?) если я правильно понял, то сразу ответ: через webhook телеграм не позволяет смотреть предыдущие сообщения - здесь нужно делать через getUpdates (наверное, не пробовал, но в описании написано, что есть возможность получить до 100 сообщений из истории) более того, последний бот, которого я написал, отказывается добавляться в канал (именно в канал - не в диалог, не в супергруппу)
Dmytro
Ну, разве что так, я имел ввиду, что у yii2 нет ничего специально заточеного под это
👀
ну это да :) боты ведь - это всего-навсего межсерверное взаимодействие, и на чём оно будет - хоть на javascript, пофиг (про js как таковой я загнул, но вот на node точно всё будет круто)
Dmytro
Есть ещё один хардкорный вариант - - юзать tg-cli)
Dmytro
Но там надо будет юзать какой-то аккаунт
Dmytro
Так первых ботов делали
👀
парень написал Информацию о самом канале вытащить можно без проблем, сообщения тоже а вот со статистикой сообщений сложности. значит, вытянуть мессаджи для него проблему не составляет
👀
но что-то меня в этом всём смущает
👀
что-то здесь точно не так :)
Dmytro
Ну, давайте тогда подождём на ответ уважаемого
Vladimir
глубину просмотра сообщения объясните простому человеку - что это? как это? для чего это?
Я думаю, что человек имеет в виду, как далеко пользователь отмотал ленту вверх
Eugene
коряво видимо выразился, количество просмотров у каждого поста(цифра которая около глаза у каждого сообшения)
Eugene
👀
возможно я ошибаюсь, но в документации нигде не написано как это сделать значит, наверняка, это невозможно (или, как выше Дмитрий писал, пробовать через cli)
Eugene
Да в доках такого не было. Cli это имеется ввиду авторизироваться пользователем конкретным и уже от пользователя делать запросы ?
Dmytro
Да
Dmytro
Но там намного сложнее, чем с обычными ботами
Eugene
тоже смотрел доки но подобного метода не нашел, это все таки возможно через cli?
Dmytro
Ну, если вы где-то такой каунтер засекли, то где-то он есть
Dmytro
А через tg-cli все очень низкоуровнево
Dmytro
Там может быть
Dmytro
@eugenesmit а где вы такой каунтер соскринили?
Dmytro
я об этом
👀
в каналах
Eugene
В канале
👀
любой пост, который отправляется в канал, получает такой каунтер
👀
👀
(эта песня - из канала, скинул ради демки каунтера)
👀
👀
та же песня, но уже не из канала - уже без каунтера
👀
мне кажется, что боты через api изначально не имеют возможности взаимодействовать с каналами, кроме как постить в них
Eugene
Богат могут статическую информацию доставка количе тво людей, описание канала, даже какое то количество последних постов можно доставать, если бот админ
Eugene
*боты
Eugene
А есть готовый cli на yii2?
👀
может я ошибаюсь, но cli - это command line interface клиент то есть, не визуально оформленный, а через консоль
Dmytro
Dmytro
А есть готовый cli на yii2?
у вас мания искать все что связано с yii2?
Dmytro
проще на php в общем искать
Dmytro
Dmytro
вот, святой Хабр
Dmytro
https://habrahabr.ru/post/264301/
Dmytro
https://github.com/zyberspace/php-telegram-cli-client
Eugene
Проект на yii2, не хотелось бы отступать но на решение на php тоже не беда, спасибо.
Dmytro
объясните, пожалуйста, как вы совместите бота и веб-сайт?
👀
через composer сделайте require того, что выше, и будет вам php-telegram-cli-client в yii2
👀
объясните, пожалуйста, как вы совместите бота и веб-сайт?
возможно, человек берёт из yii2 как и я - только мелкие фрагменты
Dmytro
не проще делать два проекта?
Dmytro
есть бот -- как сервис
Dmytro
и к нему по rpc или через какой-то таск брокет связь с сайтом
Dmytro
german, celery, rabbitmq и тд
Eugene
По поводу второго проекта хорошая идея, тоже думал сделать как отдельное api
Dmytro
а чем вам не подходит?
Egor
Где лучше создать папку виджета ?
SiZE
серьезно? :)
Egor
Ну я имею ввиду не важно в какой папке?
Artur‌‌‌
web
Egor
А как с бд работать? можно для этого использовать класс модели, где есть подключение к бд?
Dmytro
я же вам отправил ссылку на докуменатацию вам не хватило усилий дойти к статье о виджетах?
SiZE
Без практики нечего сверять )
SiZE
Делайте
SiZE
Пробуйте
Egor
Пробуйте
Смотри у меня есть модель категории и модель статьи, соответствено в них прописаны релейшены, если я хочу показать все статьи одной категории, мне в какой модели вызывать findAll()?
Egor
Релейшены(отношения)
Иван
Опять я с вопросами (со вчерашним, если кто помнит, не пересекается почти). До последнего абзаца можно не читать, тут размышления с ответами себе же. Была на сайте форма оплаты. Ну то есть во-первых две формы (одна у себя обрабатывается, другая на яндекс-кассу ведёт, в зависимости от способа оплаты). Во-вторых экшн, который рисует модальное окно с этими формами и результат одной из них обрабатывает (ещё один контроллер с ответами яндекс-кассы работает). А теперь форму оплаты включили в интерфейс одной из многоступенчатых форм заказа. Ну то есть есть четыре шага, первые три заполнили, результат отправили, сгенерили какой-то итог + форму оплаты, показали в качестве четвёртого шага. При этом старое окошко оплаты тоже осталось (для других пользовательских сценариев). В итоге имеем: * В составе двух вьюшек копипасту общего куска кода; * Некоторую копипасту в составе двух экшнов двух разных контроллеров; * Ещё какое-то барахло; С копипастой во вьюшках всё просто - выношу в виджет, вставляю его где надо. Но остаётся копипаста в контроллерах. Будь это разные экшны одного контроллера, я бы вынес это в приватный метод и успокоился. С другой стороны что это за код? Ну во-первых это обработка платежей (не тех вчерашних, а других) и решить её можно точно так-же: запилить компонент. А во-вторых это получение данных из запроса и всякие проверки, которые сложно уложить в валидацию моделей (например есть несколько типов платежей, часть обрабатывается в одном контроллере, часть в другом и "перепутать" их недопустимо). Т.е. сугубо контроллерная тема. В итоге, что мне остаётся не понятно: как кошерно избавляться от деблирования сугубо контроллерного кода в двух разных контроллерах? Код включает в себя: * Получение данных из запроса; * Проверки с выбрасыванием исключений; * Одно-два условия, влияющего на обращения к сервисному слою; * Передачу данных во вьюшку; Это вообще как-то адекватно решается или обычно на это забивают и фигачат контроллеры копипастой с последующим допиливанием?
Иван
О, и с разу ещё вопрос: У меня получается два очень похожих компонента с очень похожим смыслом и реализацией. Это оплата подписки и оплата услуг. Стоит ли их делать двумя разными компонентами (с _почти_ одинаковым интерфейсом) или одним компонентом с префиксами у этих почти одинаковых методов?
Dmytro
делайте один интерфейс, может еще что-то добавится к проекту
Dmytro
но два компонента
Dmytro
что-то общее можете перенести в один класс
Dmytro
"Но остаётся копипаста в контроллерах." можете делать класс на основе Action
Dmytro
если это вам подходит