
Mr.
23.03.2017
09:45:14
ну это да :) боты ведь - это всего-навсего межсерверное взаимодействие, и на чём оно будет - хоть на javascript, пофиг
(про js как таковой я загнул, но вот на node точно всё будет круто)

Dmytro
23.03.2017
09:48:33
Есть ещё один хардкорный вариант - - юзать tg-cli)
Но там надо будет юзать какой-то аккаунт
Так первых ботов делали

Google

Mr.
23.03.2017
09:49:45
парень написал Информацию о самом канале вытащить можно без проблем, сообщения тоже а вот со статистикой сообщений сложности.
значит, вытянуть мессаджи для него проблему не составляет
но что-то меня в этом всём смущает
что-то здесь точно не так :)

Dmytro
23.03.2017
09:52:20
Ну, давайте тогда подождём на ответ уважаемого

Владимир
23.03.2017
10:24:34

Евгений
23.03.2017
10:50:34
коряво видимо выразился, количество просмотров у каждого поста(цифра которая около глаза у каждого сообшения)

Mr.
23.03.2017
10:58:54
возможно я ошибаюсь, но в документации нигде не написано как это сделать
значит, наверняка, это невозможно (или, как выше Дмитрий писал, пробовать через cli)

Евгений
23.03.2017
11:00:45
Да в доках такого не было. Cli это имеется ввиду авторизироваться пользователем конкретным и уже от пользователя делать запросы ?

Dmytro
23.03.2017
11:00:54
Да
Но там намного сложнее, чем с обычными ботами

Евгений
23.03.2017
11:02:07
тоже смотрел доки но подобного метода не нашел, это все таки возможно через cli?

Dmytro
23.03.2017
11:03:37
Ну, если вы где-то такой каунтер засекли, то где-то он есть

Google

Dmytro
23.03.2017
11:04:07
А через tg-cli все очень низкоуровнево
Там может быть
@eugenesmit а где вы такой каунтер соскринили?
я об этом

Mr.
23.03.2017
11:07:50
в каналах

Евгений
23.03.2017
11:07:57
В канале

Mr.
23.03.2017
11:08:05
любой пост, который отправляется в канал, получает такой каунтер
(эта песня - из канала, скинул ради демки каунтера)
та же песня, но уже не из канала - уже без каунтера
мне кажется, что боты через api изначально не имеют возможности взаимодействовать с каналами, кроме как постить в них

Евгений
23.03.2017
11:15:42
Богат могут статическую информацию доставка количе тво людей, описание канала, даже какое то количество последних постов можно доставать, если бот админ
*боты
А есть готовый cli на yii2?

Mr.
23.03.2017
11:19:33
может я ошибаюсь, но cli - это command line interface клиент
то есть, не визуально оформленный, а через консоль

Dmytro
23.03.2017
11:48:18
проще на php в общем искать
вот, святой Хабр
https://habrahabr.ru/post/264301/

Google

Dmytro
23.03.2017
11:49:47
https://github.com/zyberspace/php-telegram-cli-client

Евгений
23.03.2017
11:54:17
Проект на yii2, не хотелось бы отступать но на решение на php тоже не беда, спасибо.

Dmytro
23.03.2017
11:55:00
объясните, пожалуйста, как вы совместите бота и веб-сайт?

Mr.
23.03.2017
11:55:01
через composer сделайте require того, что выше, и будет вам php-telegram-cli-client в yii2

Dmytro
23.03.2017
11:55:37
не проще делать два проекта?
есть бот -- как сервис
и к нему по rpc или через какой-то таск брокет связь с сайтом
german, celery, rabbitmq и тд

Евгений
23.03.2017
12:34:24
По поводу второго проекта хорошая идея, тоже думал сделать как отдельное api

Dmytro
23.03.2017
12:50:36
а чем вам не подходит?

Vaderoff
23.03.2017
14:05:31
Где лучше создать папку виджета ?

SiZE
23.03.2017
14:10:13
серьезно? :)

Vaderoff
23.03.2017
14:12:05
Ну я имею ввиду не важно в какой папке?

Artur
23.03.2017
14:15:00
web

Vaderoff
23.03.2017
14:17:07
А как с бд работать? можно для этого использовать класс модели, где есть подключение к бд?

Dmytro
23.03.2017
14:41:54
я же вам отправил ссылку на докуменатацию
вам не хватило усилий дойти к статье о виджетах?

Vaderoff
23.03.2017
14:43:04

SiZE
23.03.2017
15:07:38
Без практики нечего сверять )
Делайте

Google

SiZE
23.03.2017
15:07:51
Пробуйте

Vaderoff
23.03.2017
15:21:50
Пробуйте
Смотри у меня есть модель категории и модель статьи, соответствено в них прописаны релейшены, если я хочу показать все статьи одной категории, мне в какой модели вызывать findAll()?
Релейшены(отношения)


0x9d8e
23.03.2017
16:16:18
Опять я с вопросами (со вчерашним, если кто помнит, не пересекается почти).
До последнего абзаца можно не читать, тут размышления с ответами себе же.
Была на сайте форма оплаты. Ну то есть во-первых две формы (одна у себя обрабатывается, другая на яндекс-кассу ведёт, в зависимости от способа оплаты). Во-вторых экшн, который рисует модальное окно с этими формами и результат одной из них обрабатывает (ещё один контроллер с ответами яндекс-кассы работает).
А теперь форму оплаты включили в интерфейс одной из многоступенчатых форм заказа. Ну то есть есть четыре шага, первые три заполнили, результат отправили, сгенерили какой-то итог + форму оплаты, показали в качестве четвёртого шага. При этом старое окошко оплаты тоже осталось (для других пользовательских сценариев).
В итоге имеем:
* В составе двух вьюшек копипасту общего куска кода;
* Некоторую копипасту в составе двух экшнов двух разных контроллеров;
* Ещё какое-то барахло;
С копипастой во вьюшках всё просто - выношу в виджет, вставляю его где надо. Но остаётся копипаста в контроллерах. Будь это разные экшны одного контроллера, я бы вынес это в приватный метод и успокоился.
С другой стороны что это за код?
Ну во-первых это обработка платежей (не тех вчерашних, а других) и решить её можно точно так-же: запилить компонент.
А во-вторых это получение данных из запроса и всякие проверки, которые сложно уложить в валидацию моделей (например есть несколько типов платежей, часть обрабатывается в одном контроллере, часть в другом и "перепутать" их недопустимо). Т.е. сугубо контроллерная тема.
В итоге, что мне остаётся не понятно: как кошерно избавляться от деблирования сугубо контроллерного кода в двух разных контроллерах? Код включает в себя:
* Получение данных из запроса;
* Проверки с выбрасыванием исключений;
* Одно-два условия, влияющего на обращения к сервисному слою;
* Передачу данных во вьюшку;
Это вообще как-то адекватно решается или обычно на это забивают и фигачат контроллеры копипастой с последующим допиливанием?
О, и с разу ещё вопрос:
У меня получается два очень похожих компонента с очень похожим смыслом и реализацией. Это оплата подписки и оплата услуг. Стоит ли их делать двумя разными компонентами (с _почти_ одинаковым интерфейсом) или одним компонентом с префиксами у этих почти одинаковых методов?


Dmytro
23.03.2017
16:33:06
делайте один интерфейс, может еще что-то добавится к проекту

Admin
ERROR: S client not available

Dmytro
23.03.2017
16:33:13
но два компонента
что-то общее можете перенести в один класс
"Но остаётся копипаста в контроллерах."
можете делать класс на основе Action
если это вам подходит

0x9d8e
23.03.2017
16:39:25

Dmytro
23.03.2017
16:42:28
компонент -- не контроллер
контроллер -- отдельно, экшын -- отдельно, ну и компонент -- отдельно
логику ни к чему деражать в контроллере

0x9d8e
23.03.2017
16:45:29
То есть запилить для платежей отдельный контроллер, отдельный компонент. (Что есть экшн в данном контексте не понял, я думал что это собственно метод контроллера)

Dmytro
23.03.2017
17:12:36
Можно выносить код экшынов в отдельные классы
http://www.yiiframework.com/doc-2.0/yii-web-erroraction.html
Вот пример

Google

SiZE
23.03.2017
17:15:49

Dmytro
23.03.2017
17:18:36
SiZE не рекомендую тратить на это время
Человек в упор не желает читать доки

SiZE
23.03.2017
17:25:56
=)))

Mr.
23.03.2017
17:26:10
=)))
это не смешно, это грустно
скорее надо так
=(((((

Dmytro
23.03.2017
17:27:24
Я это пишу не просто так, поверьте

SiZE
23.03.2017
17:28:11
да я помню что он вчера писал )


Mr.
23.03.2017
17:28:41
перед тем как ездить на машине, люди учат теорию - по крайней мере, правила
так же и здесь - перед тем, как что-то делать, стоит почитать доки
я всё понимаю, что у нас тут диаложек, и можно спрашивать - оперативно ответят, но задавать вопросы, ответы на которые идут в доке, которые как базовые знания о сигналах светофора - это не ок
не в обиду никому, но тут уж очень много пролетает вопросов, ответы на которые просты как дважды два - достаточно лишь в доку залезть, и там глянуть
я не против вопросов - я сам ни разу не гуру, всего не знаю, но бывает такое, что сталкиваешься с непредвиденым поведением - тогда да, здесь - самое место задавать вопросы, а если что-то не работает, потому что ты не знаешь базовых принципов фреймворка... ну что ж, добрые люди всегда будут готовы помочь, но если они кидают доку - это не на отъ**ись, а реально решение проблемы - будьте добры, проследуйте по ссылке, и посмотрите, как этим инструментом пользоваться


0x9d8e
23.03.2017
17:35:07
Чёрт, у меня тут Чёрная Дыра Рефакторинга ?
В смысле чем больше привожу ооп в порядок, тем больше всплывает того, что нужно ещё привести.
Тем временем для начальства это всё выглядит так, что вот тот крутой фрилансер всё очень оперативно сделал, а мне осталось чуть-чуть, но я копаюсь тут целую вечность ?

Konstantin
23.03.2017
17:38:30
беги от туда где заказчик говорит - тут пару часов или тут немного сделать, как правило это обман с целью сбить стоимость
вот как слышишь от заказчика эти слова сразу знай - ушлый
потому что простой заказчик не может знать чо тут сделать и на сколько это долго
а если все так просто и на пару часов - пусть сам и делает раз такой умный
сорян, блинчики надо делать) потом прочитаю


0x9d8e
23.03.2017
17:43:36
Да я тут уже 3 года работаю. Уже понял, что тут центральная обязанность сотрудника перед самим собой объяснять начальству свои заслуги, иначе их никто не поймёт, а вот причиной всех косяков окажешься. Но я оооочень не люблю говорить "вот Вася тут вот так и так накосячил", поэтому просто беру и пилю чтобы было хорошо. Как итог - я тут самый тормозной программист, который только и занимается исправлением каких-то косяков (видимо исключительно собственных).
Вдвойне неловко указывать что исправляю говнокод специалиста, чья ставка часовая х2 от моей)
С другой стороны можно действовать по его методу - быстро-быстро клепать то, что можно клепать быстро, а как начинаются сложности с поддержкой сваливать на другой проект. Но мне это ни совесть не позволит ни страх перед неподдерживаемыми проектами (наобжигался).