@botoid

Страница 1347 из 4042
@LyoSU
29.08.2017
11:03:08
У меня стикеры часто долго грузятся из за интернета. Ждал, пока не нажал и не прочитал название

Леонид
29.08.2017
11:04:11
Всем привет. Подскажите, как реализовать в боте, при первоначальном запуске ввод данных от пользователя (например название города), а потом обрабатывать все сообщения с помощью слушателя?

Google
Леонид
29.08.2017
11:13:51
Ну все четко расписано, так и делай
Да не все так просто... Зашел первый раз в бота, идет приветсвие (/start) + отдельная кнопка на ввод города через callback, нажимаешь на кнопку, просит ввести город (этот ввод попадает в базу данных к примеру) Далее идет работа с обработкой простых запросов. - это в идеале. Так вот дело в том, что не получается организовать ввод города из-за того, что слушатель сообщений (handler) выдергивает и обрабатывает абсолютно все поступающие сообщения и тот же введенный город начинает обрабатываться.



?
29.08.2017
11:14:32
Леонид
29.08.2017
11:14:41
Savely
29.08.2017
11:14:43
Это самый популярный вопросик в этом чате, напишите уже гайд кто-нибудь, пожалуйста.

Savely
29.08.2017
11:15:31
Не обязательно в базе
ForceReply – Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot‘s message and tapped ’Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. https://core.telegram.org/bots/api#forcereply

?
29.08.2017
11:15:54
Тебе нужно хранить состояние в базе.
@bbfitnessbot хранит Стэйт в глобальном словарике

Savely
29.08.2017
11:15:58
Либо FSM, либо ForceReply.

Иначе никак.

Dmitry
29.08.2017
11:16:16
а бот может слать «нотисы» без «необходимости» нажимать на кнопку? (как спойлербот)

Google
?
29.08.2017
11:18:27
Хранить мусор в базе не особо хочется

Kiku
29.08.2017
11:21:01
база есть а оптимизации нет

foxy shell
29.08.2017
11:22:42
Могу ли я получить список участников канала через бота?

Dmitry
29.08.2017
11:23:09
только через CLI

Проксимов
29.08.2017
11:23:15
Mad
29.08.2017
11:23:29
Что такое CLI?

Проксимов
29.08.2017
11:23:43
Что такое CLI?
Telegram client api

foxy shell
29.08.2017
11:23:45
А группы?

Проксимов
29.08.2017
11:23:57
А группы?
Тоже нет

Mad
29.08.2017
11:24:09
Telegram client api
А что значит буква I в CLI?

Dmitry
29.08.2017
11:24:11
а. стоп. перепутал. канала можно, если админ. группы — можно.

Viktor
29.08.2017
11:24:35
Вот вам список всех MTProto библиотек, о которых я знаю

Проксимов
29.08.2017
11:24:39
а. стоп. перепутал. канала можно, если админ. группы — можно.
Как ты получишь всех юзеров группы через бот апи?

foxy shell
29.08.2017
11:24:44
Viktor
29.08.2017
11:24:49
Вот вам список всех MTProto библиотек, о которых я знаю
Python - https://github.com/LonamiWebs/Telethon Rust - https://github.com/JuanPotato/Vail Rust - https://github.com/Connicpu/mtproto-rs PHP - https://github.com/danog/MadelineProto Kotlin - https://github.com/badoualy/kotlogram JavaScript - https://github.com/zerobias/telegram-mtproto C - https://github.com/vysheng/tg, https://bitbucket.org/vysheng/tdcli Elixir - https://gitlab.com/snippets/1664390 C# - https://github.com/unigramdev/unigram Elixir — https://github.com/Fnux/telegram-mt-elixir and https://github.com/Fnux/telegram-tl-elixir

Mad
29.08.2017
11:25:01
Это понятно, но мне был дан ответ, что CLI эжто Telegram Client API

Dmitry
29.08.2017
11:25:06
Mad
29.08.2017
11:25:07
Вот я и пытаюсь понять, как так

Google
Проксимов
29.08.2017
11:25:25
где в CLI ты бот апи увидел?
Так он про бот апи и спрашивал

foxy shell
29.08.2017
11:25:26
Брань

Viktor
29.08.2017
11:26:03
Это понятно, но мне был дан ответ, что CLI эжто Telegram Client API
CLI это tg-cli, старый как говно мамонта клиент для обычного API

Dmitry
29.08.2017
11:26:05
Так он про бот апи и спрашивал
формально, он про бота спрашивал

Dmitry
29.08.2017
11:26:20
Через бот апи?
нет. через CLI

Viktor
29.08.2017
11:26:26
Нет
Про бота ему и сказали

foxy shell
29.08.2017
11:27:22
нет. через CLI
Каким образом?

Проксимов
29.08.2017
11:27:32
Так в итоге как вытащить всех юзеров группы?

Viktor
29.08.2017
11:27:44
channel.getParticipants

Dmitry
29.08.2017
11:27:52
Каким образом?
ну вот, например TLRequestChannelsGetParticipants req = new TLRequestChannelsGetParticipants(); TLInputChannel chan = new TLInputChannel(); chan.setChannelId(chat.getId()); chan.setAccessHash(chat.getAccessHash()); req.setChannel(chan); req.setLimit(1000); req.setOffset(0); req.setFilter(new TLChannelParticipantsFilterRecent()); TelegramApi api = kernelComm.getApi(); api.doRpcCall(req, new RpcCallback<TLChannelParticipants>() {

Viktor
29.08.2017
11:27:59
итерируете с limit=200, offset=0,200,400+++

Savely
29.08.2017
11:28:01
channel.getParticipants
Ток там лимит 200.

Savely
29.08.2017
11:28:19
Так что придется циклом N раз пройтись в зависимости от размера.

Проксимов
29.08.2017
11:28:29
channel.getParticipants
Только это канал

Viktor
29.08.2017
11:28:29
Savely
29.08.2017
11:28:37
offset, лол
Да я в курсе.

Google
Проксимов
29.08.2017
11:28:40
А я про группу спрашиваю

Viktor
29.08.2017
11:28:47
а я тебе про группу и говорю

только про супергруппу

Проксимов
29.08.2017
11:29:06
Channel - это канал, а не группа же

Viktor
29.08.2017
11:29:07
или тебе старые группы нужны?

Savely
29.08.2017
11:29:14
Супергруппы в телеге это подвид каналов.

Viktor
29.08.2017
11:29:15
подучи матчасть плес

Проксимов
29.08.2017
11:29:46
Admin
ERROR: S client not available

Проксимов
29.08.2017
11:29:52
Схему надо

Savely
29.08.2017
11:29:56
Аааа, сложна
Учи матчасть)

AbduCOM
29.08.2017
11:29:59
Channel - это канал, а не группа же
в tgcli супергруппа пишется channel ??‍♂️

Savely
29.08.2017
11:30:06
Потыкай MTProto хотя бы вечерок.

Быстро разберешься.

Проксимов
29.08.2017
11:30:23
Viktor
29.08.2017
11:30:43
messages.getFullChat для обычных групп

там будет participants

Savely
29.08.2017
11:31:07
Хз, у меня на 500 чатов осталась одна обычная группа.

Проксимов
29.08.2017
11:31:27
messages.getFullChat для обычных групп
Это не работает на супергруппы

Savely
29.08.2017
11:31:43
Google
Viktor
29.08.2017
11:31:44
ААААА.

да он троллит наверное



Savely
29.08.2017
11:32:02
Супергруппы в телеге это подвид каналов.

Viktor
29.08.2017
11:32:05




Проксимов
29.08.2017
11:32:20
да он троллит наверное
У меня не работает

Viktor
29.08.2017
11:32:26
ДА БЛЯДЬ.

еще разок попробую

Savely
29.08.2017
11:33:09
У меня не работает
Сначала getDialogs, получаешь id и хэш нужной группы. Потом ставишь нужный фильтр (recent), оффсет и лимит 200, и дергаешь getParticipants.

Viktor
29.08.2017
11:33:23
есть обычные группы, есть супергруппы. для обычных групп, ака чатов, — messages.getFullChat для супергруп, ака мегагруп, ака каналов — channel.getParticipants

правда можно id и хэш по-другому получить, но так все верно

Savely
29.08.2017
11:34:12
Если он есть)

По другому хз как, особо не заморачивался.

Viktor
29.08.2017
11:34:52
Можно даже посмотреть в другом клиенте

id/hash одинаковые для всех приложений и сессий

хотя мне даниил говорил, что видел, как они бывают разными ?

или это был Fela, не помню.

я лично никогда этого не видел, и вообще в этом сомневаюсь.

Страница 1347 из 4042