
Tony
18.04.2017
05:08:11

Igor
18.04.2017
05:08:12
присылай всегда хотя бы последние пару строчек трейсбека
и, черт побери, да, можно было бы уже самому (самой?) разобраться

Magma
18.04.2017
05:08:46
:\Python\python.exe C:/Users/Робокоп/Desktop/kykareks/bot.py
File "C:/Users/Admin/Desktop/kykareks/bot.py", line 34
config['admins'].append(message.reply_to_message.from.id)
^
SyntaxError: invalid syntax

Google

Magma
18.04.2017
05:09:00
сама ошибка

Tony
18.04.2017
05:09:01
))))))))))))

Igor
18.04.2017
05:09:03
может дело в том, что ты with на одной строчке используешь?
так не стоит писать никогда
лучше так
with open('config.json', 'w') as f:
json.dump(config, f)

Tony
18.04.2017
05:09:19
from_user

Igor
18.04.2017
05:09:31
не, к синтаксису это никакого отношения не имеет)
блин, а вообще и правда проблема в from'е
типа зарезервированный keyword?
чума

Tony
18.04.2017
05:10:54
да

Igor
18.04.2017
05:11:00
сорри, я гнал)

Google

Magma
18.04.2017
05:11:30
Все равно не помогает

Igor
18.04.2017
05:11:43
что не помогает?
тебе Тони сказал сделать from_user
я могу посоветовать открыть документацию и почитать, блин, ее

Magma
18.04.2017
05:11:57
все равно

Igor
18.04.2017
05:12:05
пруф
еще раз ошибку показывай.

Magma
18.04.2017
05:12:50
пруф
line 34, in cmd_prom
config['admins'].append(message.reply_to_message.from_user)
AttributeError: 'NoneType' object has no attribute 'from_user'

Igor
18.04.2017
05:12:57
значит, нету reply_to_message

Tony
18.04.2017
05:13:00
хааах

Артем
18.04.2017
05:13:05
А дебагером пройтись мб проще понять

Tony
18.04.2017
05:13:16
reply_to_message это функция

Igor
18.04.2017
05:13:19

Вадим
18.04.2017
05:13:53

Tony
18.04.2017
05:13:57
аргументы — это айди сообщения, на которое отвечать
и текст
ну и кому писать

Артем
18.04.2017
05:14:21
Я ща с тела смотрю этот код и нихуя непонимаю

Google

Igor
18.04.2017
05:14:23
стоп
открываем доку по телеграму
https://core.telegram.org/bots/api#message
Message - объект сообщения
у него есть - необязательный - объект reply_to_message

Tony
18.04.2017
05:14:43

Igor
18.04.2017
05:14:45
который тоже сообщение
так что здесь все верно
но!
фишка в том, что он, блин, необязательный
а это значит, что бот получает сообщение, не являющееся при этом реплаем
и это надо как-то тебе обрабатывать
ну, как мне кажется. я не шарю в ботах

Tony
18.04.2017
05:15:15
да там проще все

Igor
18.04.2017
05:15:23
как?

Артем
18.04.2017
05:15:58
Там надо доку читать раз дебагер жмякнуть

Tony
18.04.2017
05:16:35
update.message.reply_text("I'm sorry Dave I'm afraid I can't do that.")

Igor
18.04.2017
05:16:42
это не то
ща объясню

Tony
18.04.2017
05:16:49
один хрен же

Google

Igor
18.04.2017
05:16:54
насколько я помню, там задача
user1: сообщение
admin1: отвечает реплаем на сообщение user1 текстом "/prom"
бот смотрит - ага, получил "/prom", кто мне написал? admin1. есть у него права? есть.
бот смотрит, на какое сообщение отвечал admin1. потом - чье это было сообщение
и добавляет затем idшник user1 в админы

Tony
18.04.2017
05:17:40
просто в скобках текст

Igor
18.04.2017
05:17:54
какой текст?

Tony
18.04.2017
05:18:40
кстати
это чистое апи?
без фреймворков?

Igor
18.04.2017
05:19:00
Что бы когда я через reply писал /prom то id пользователя которому я ответил добавлялось в json файл
это похоже на pytelegrambotapi
без фреймворков мы б застряли наверное еще раньше *)
но вообще плюсую вопрос
че это за либа?

Вадим
18.04.2017
05:19:52
Telebot видимо

Tony
18.04.2017
05:19:58

Igor
18.04.2017
05:21:05
ну в смысле
там надо проверку сделать
if not hatattr(message, 'reply_to_message'):
bot.send_message('это не реплай. отправьте реплай человеку, которого хотите сделать админом')
и return нахуй с вертушки, чтоб не было соблазна reply_to_message забирать
или типа того
привет, зарт

Google

Zart
18.04.2017
05:21:41
почему не hasattr()?

Igor
18.04.2017
05:21:53
да, hasattr, туплю спросонья

Tony
18.04.2017
05:23:36
updater = Updater(token=os.environ.get('TOKEN'))
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('prom', add_to_admins)
def add_to_admins(bot, update):
text_from_mess = update.message.text
user_id = update.message.from_user.id
...
все

Igor
18.04.2017
05:25:40
ну
user_id будет тем юзером, что вызывает команду /prom
ниче не все

Tony
18.04.2017
05:25:55
ну валидацию он сам напишет

Igor
18.04.2017
05:26:03
какую валидацию?
что user_id - это админ?
он это уже написал.
задача другая.

Tony
18.04.2017
05:27:21
update.message.reply_text("You are admin now")
update.message.reply_text("You are pidor")

Igor
18.04.2017
05:27:48
и?)
перечитай мое сообщение про user1/admin1 и то, что я процитировал

Tony
18.04.2017
05:28:09
а че ему надо еще?)

Igor
18.04.2017
05:28:17
Что бы когда я через reply писал /prom то id пользователя которому я ответил добавлялось в json файл
смари. я админ. ты - нет. я хочу сделать тебя админом. мы в чате. и бот в чате.
я реплаю на твое сообщение командой "/prom"

Tony
18.04.2017
05:28:48
аааа
Эта группа больше не существует