@botoid

Страница 970 из 4042
Aztwin LK
27.06.2017
19:08:21
И документация по либе тоже нормальная

Ни в чём

Либа это набор функций класса

Вот и всё

Google
Aztwin LK
27.06.2017
19:08:55
Ну или классов

Serg
27.06.2017
19:09:00
тебе по сути нужно - отправка команды (саму команду собрать легко), - отправка картинок, аудио

и все

команда - это по сути массив с парой-тройкой стандартных элементов массива + опциональные

и либа нафиг не нужна

Aztwin LK
27.06.2017
19:10:10
Ну по сути да

Serg
27.06.2017
19:10:14
вернее ты пишешь сам свою для себя. Заодно разбираешься с апи

Aztwin LK
27.06.2017
19:10:18
Когда тебе нужно просто пару функций

Легче самому написать

Делов на полчаса-час

Fedor
27.06.2017
19:17:12
и еще вопрос... вот допустим юзер писал боту и бот ждет от него какого-то ответа (на каком-то из так называемых состояний)... и через несколько дней он ему заново пишет, забыв что когда-то с ним общался.. не нужно предусматривать то, что это уже как бы новый диалог?

понятно, юзер может историю читать и все такое

Serg
27.06.2017
19:20:10
chatId - вот твой диалог с юзером. Просто храни его у себя

Google
Ajdar
27.06.2017
19:20:14
незнаете случайно почему @U_Furan игнорит?

Fedor
27.06.2017
19:21:18
chatId - вот твой диалог с юзером. Просто храни его у себя
зачем его хранить, если его можно каждый раз получать вместе с сообщением?

еще вопрос... Допустим моему боту пишут два человека. И я одному человеку хочу сообщить как связатсья с другим - я могу написать ему username другого человека. А если у этого ДРУГОГО нет username? Можно сделать что-то типа ссылки на его профиль?

если я перешлю id второго пользователя - толку ноль

Богдан
27.06.2017
19:32:47
вроде как нельзя Публичный юзернейм как раз сделан для тех, кто хочет общаться с незнакомыми людьми без шейринга номера Если человек не хочет, чтобы ему писали - он не ставит ник

Serg
27.06.2017
19:33:12
зачем его хранить, если его можно каждый раз получать вместе с сообщением?
сек, я чет подумал, что ты от имени бота хочешь что-то отослать сам пользователю Еслм ты только отвечаешь, то тебе ничего хранить лишнего не нужно... ну кроме канеш своей рабочей информации

Serg
27.06.2017
19:46:30
если рассылки - то чатID это равно самому userId - который ты и так сохраняешь в базу

в общем виде канеш кошернее хранить отдельно chatId - т.к. не всегда оно будет совпадать. например, твоего бота добавят в группу, тогда ты будешь рассылкой писать по сути в группу

Vaderoff
27.06.2017
19:51:52
У кого нибудь есть рабочий опенсорсный бот на питоне желательно на телеботе со стейт машиной , мне пример просто посмотерть, как стейты реализованы

sardelkin
27.06.2017
19:52:24
поцоны, switch backend в андроиде что делает? гугол не помог

есть у кого бетки на андроиде продолжают незапускаться?

You
27.06.2017
19:54:16
второй

sardelkin
27.06.2017
19:54:45
второй
более модный и прогрессивный? у него название есть чтобы загуглить?

You
27.06.2017
19:54:58
нет названия

просто второй апи

sardelkin
27.06.2017
19:55:13
У меня все ок
у меня на планшете не ок, а на телефлне вроде норм

Google
Fedor
27.06.2017
19:56:52
по БД подскажет кто-то?

Скрудж
27.06.2017
19:57:31
Ilya
27.06.2017
20:01:27
А кто какие пеймент провайдеры подключал к ботам, какие появлялись нюансы?

Elena
27.06.2017
20:04:27
поцоны, switch backend в андроиде что делает? гугол не помог
меняет сервер телеграма на бетатестовый

sardelkin
27.06.2017
20:05:04
Elena
27.06.2017
20:05:35
ну хотть какая-то инфа
Ну это полупустой сервер, как бы отдельный от основного инстанса, там нет ничего из того что есть здесь, отдельный аккаунт регаешь.

по такому же принципу работает TamTam от мейл.сру

потому что ТамТам простой форк телеграма

Sergey
27.06.2017
20:20:03
подскажите 401 ошибка в чем проблема?

{"ok":false,"error_code":401,"description":"Unauthorized"}

Serg
27.06.2017
20:20:27
не авторизован

Sergey
27.06.2017
20:20:56
не авторизован
ну это я бота запускаю и мне дает вот такое

Vaderoff
27.06.2017
20:21:15
Блин, код старый, но рабочий https://github.com/MasterGroosha/telegram-reminder-bot
что то не очень понял как у тебя стейты сделаны, можешь описать?

Евгений
27.06.2017
20:22:50
что то не очень понял как у тебя стейты сделаны, можешь описать?
В StateMachine описаны возможные состояния (через Enum) В хранилище Shelve (key-value) хранятся пары user_id <--> состояние Далее у меня стоят хэндлеры на определённые состояния. т.е. бот получает сообщение от юзера, сразу смотрит, на каком этапе у них общение, и дальше отвечает нужным образом, изменяя или сохраняя имеющееся состояние

Vaderoff
27.06.2017
20:23:41
Блять, а нормально что у меня стейты храняться в бд ?

Евгений
27.06.2017
20:24:06
Почему нет? Я просто вынес в отдельное хранилище, ибо мне так было проще, ну и чтоб не ебашить постоянно SQLite запросами

Google
Евгений
27.06.2017
20:24:25
Вместо Shelve рекомендую либо TinyDB, либо (мой выбор) Vedis

Vaderoff
27.06.2017
20:24:45
у меня clearDB

Евгений
27.06.2017
20:25:01
Я хз, что это, и даже не хочу вникать, если честно

Vaderoff
27.06.2017
20:25:09
mysql

Vaderoff
27.06.2017
20:25:50
А что такое Enum?

Elena
27.06.2017
20:25:52
Я пытался вникнуть в стейт монад, но ебнулся головой

Serg
27.06.2017
20:25:55
жируете вы на питоне ))) на пыхе если скрипт запускается через nginx, то в памяти всегда стартует новая версия кода а потому стейты вынуженно нужно хранить где-то отдельно - файлы, бд, кеш...

Elena
27.06.2017
20:26:02
А что такое Enum?
список значений, обычно

Евгений
27.06.2017
20:26:11
Так, а стейт монад чем отличается от стейт машин?
Проще объяснить, что такое конечный автомат.

Fedor
27.06.2017
20:26:24
состояние юзера в базу лучше числом писать (1,2,3) и потом сравнивать или текстом (vvod_imeni)?

Elena
27.06.2017
20:27:05
А что такое Enum?
ну типо у тебя есть типы сообщения Voice, Text, Video, Photo, Document, вот при обращении MessageType == Voice и т.д. Voice/Text/Video/Photo будут enum

Простой пример

Евгений
27.06.2017
20:27:21
Эм..вряд ли речь об этом

Так, ща запилю реально простой пример на псевдокоде

Google
Serg
27.06.2017
20:30:18
Redis же, или memcached Миллион лет как все используют
нее, я не про то. Редис понятно, что внешнее Но если у вас запущен скрипт постоянно висящий в памяти, то у него есть "постоянное хранилище переменных" в памяти. И хранить временное состояние достаточно просто в локальном массиве.

Vaderoff
27.06.2017
20:30:22
изи делается конечный автомат
а ты фейк или рил баба?

Serg
27.06.2017
20:30:57
а ты фейк или рил баба?
ты уже домогаешься до человека ? ))))))

Евгений
27.06.2017
20:31:20
======== Состояния ========== ЮЗЕР_НАЧАЛ_ДИАЛОГ = 1 ЮЗЕР_ВВОДИТ_ИМЯ = 2 ЮЗЕР_ВВОДИТ_ФАМИЛИЮ = 3 ====== Псевдокод ======= Если пользователя нет в БД или его состояние = "ЮЗЕР_НАЧАЛ_ДИАЛОГ": Отправить сообщение "Привет! Введите Ваше имя!" Задать пользователю состояние ЮЗЕР_ВВОДИТ_ИМЯ Если пришло сообщение от пользователя, а его состояние = "ЮЗЕР_ВВОДИТ_ИМЯ" Если имя корректное: Отправить сообщение "Спасибо! Теперь введите фамилию!" Задать пользователю состояние ЮЗЕР_ВВОДИТ_ФАМИЛИЮ Если имя некорректное: Отправить сообщение "Некорректное имя, введите другое" (состояние при этом не меняется) Если юзер ввёл "Отмена": Отправить сообщение "Действие отменено" Задать пользователю состояние ЮЗЕР_НАЧАЛ_ДИАЛОГ (аналогично для следующего шага)

Vaderoff
27.06.2017
20:31:42
ты уже домогаешься до человека ? ))))))
Просто если рил баба, тогда стоит отдать должное, что неплохо шарит

Евгений
27.06.2017
20:33:25


Serg
27.06.2017
20:33:37
Просто если рил баба, тогда стоит отдать должное, что неплохо шарит
я уже не делю на баба\мужик. У нас на работе рилбаба гораздо лучше шарит рил мужиков. Если чел хочет шарить - он будет заниматься делом, если не хочет, то пол тут не причем

https://tproger.ru/translations/finite-state-machines-theory-and-implementation/

Benyomin
27.06.2017
20:34:43
а в редисе есть возможность хранить данные после перезагрузки?

Fedor
27.06.2017
20:34:52
партнерской программы :D

найти заказ, поиск заказа))

Serg
27.06.2017
20:35:15
а в редисе есть возможность хранить данные после перезагрузки?
как раз редис поддерживает хранение после перезагрузки, а мемкеш нет

Elena
27.06.2017
20:35:23
а в редисе есть возможность хранить данные после перезагрузки?
редис хранит данные в оперативной памяти, но можно выставить автобэкап

из него восстановить изи

Benyomin
27.06.2017
20:35:37
фига

буду курить, спасибо

Serg
27.06.2017
20:35:48
потому я лучше педпочту связку мемкеш + mysql

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