@ru_python

Страница 5686 из 9768
Проксимов
13.06.2018
19:52:15
@ogcurious смотри пункт 4 в правилах^

Artyom
13.06.2018
20:11:41
Кто-то уже разобрался с кнопками у ботов в вк? У меня что-то не выходит отправить :с

Artyom
13.06.2018
20:24:32
Та я же почитал уже) Понимаешь, получаю ошибка как-бы не пытался это отправить

Google
Artyom
13.06.2018
20:24:47
Если бы все работало из доков, я бы сюда не писал)

madmonday.ru
13.06.2018
20:25:19
Ну, а что за ошибка? Версию апи проверь, 5.69+ вроде как

Artuchka
13.06.2018
20:25:20
а зачем вк, когда есть тг?

в тг боты добрее хотя бы

Artyom
13.06.2018
20:26:33
ошибка 911. Keyboard format is invalid

собсно я же говорю что не пойму формат клавиатуры

Artuchka
13.06.2018
20:33:55
Хммм странно шото у меня вроде всё правильно подключено(я про бд), но сейчас я решил устроить испытание своему боту и начал как школьник клацать по всем кнопошшшкам подряд, с разных акков дак вот бот в бд значению колонки заказа юзера присвоил строку "Отмена. Домой" и эта строка является только кнопкой в боте, и не как не должна была быть присовена этой колонке бд было у кого похожее при работе с mongodb и ботом тг?

или я просто писать код не умею

если же обычно юзать бота, не создавая такой необычной нагрузки при которой кто-то клацает куда попало, то всё работает на отлично

т.е. как-то перемишваюся колонки бд или строки кода, вообще хз что происходит и почему

мб тут знает кто как решить это

Denis
13.06.2018
20:34:44
Либо монга говно, либо ты криво написал

Google
Artuchka
13.06.2018
20:35:27
еххх

ну наверное тогда второе только может быть

Daniil
13.06.2018
20:35:43
нужно код смотреть

чтобы что-то сказать

Artuchka
13.06.2018
20:36:16
та я понимаю сейчас, если смогу вырезать нужные куски, то покажу

https://pastebin.com/yYtK4RPv

1

https://pastebin.com/m2AMXaqY

2

остальные файлы думаю не нужны, они не сообщются с бд тем или иным образом

привет

игнор ; (

Daniil
13.06.2018
20:45:33
@bot.message_handler(content_types=["text"]) def main(message): id = str(message.chat.id) if(ishere(id)==0): adduser(message.text,id) else: update('text',message.text,id)

тут в елс зачем апдейт?

Dima
13.06.2018
20:46:09
Ммм, условия в скобках

Daniil
13.06.2018
20:46:20
хотя колонка другая, какой там ид у ордер ?

Artuchka
13.06.2018
20:47:08
тут в елс зачем апдейт?
чтобы обновить новый текст юзера и не делать этого лишний раз, если юзера только что добавили

Ммм, условия в скобках
а разве питон 3 не в моде сейчас?

я просто не успеваю за модой)

Google
Daniil
13.06.2018
20:47:52
не пишут так) но это неважно вообще

Artuchka
13.06.2018
20:47:56
Daniil
13.06.2018
20:48:05
ну куда криво пишется

Dima
13.06.2018
20:48:11
Daniil
13.06.2018
20:48:21
бот в бд значению колонки заказа юзера присвоил строку "Отмена. Домой"

колонка заказа с каким именем

Artuchka
13.06.2018
20:48:55
Он в моде уже лет 5.
странно ладно, не буду больше писать скобочки, не бейте

через get('product',id) получить тип её можно

ну эт так, прост написал

Daniil
13.06.2018
20:49:54
update('product',get('text',id),id)

а эт что?

берет из текста и пихает в продакт?

Artuchka
13.06.2018
20:50:33
видимо надо делать проверку

только стоп

она ведь делается

Daniil
13.06.2018
20:51:11
ну если у тебя в параллель много реквестов, то нет никакой гарантии, что ты получишь правильный текст там

блокировка после записи сразу снимается с документа

Artuchka
13.06.2018
20:51:58
блокировка после записи сразу снимается с документа
вот этого не совсем понял какая блокировка? какого документа?

Daniil
13.06.2018
20:52:21
ну допустим у тебя параллельно два запроса обрабатываются

Google
Daniil
13.06.2018
20:52:36
условие прошло elif (get('text',id) == "Ebay+CC"):

а потом значение текста поменялось в параллельном процессе

Artuchka
13.06.2018
20:53:01
ааа

Daniil
13.06.2018
20:53:07
и ты после этого без какой-либо проверки снова читаешь из базы

Artuchka
13.06.2018
20:53:07
а как тогда жить то

если я проверю снова и значение снова поменяется то как?

Daniil
13.06.2018
20:53:22
предлагаю иф записывать в переменную get('text'

а не каждый раз читать из базы

в начале метода просто загрузи целиком юзера и обращайся как к полям документа

тогда чуть более консистентно будет

Artuchka
13.06.2018
20:54:40
предлагаю иф записывать в переменную get('text'
тоже не понял, извини, я более менее новичёк)

Daniil
13.06.2018
20:55:24
`def get(name,id): value = (db.users.find_one({'user_id':id})) if(value): value = value[name] return value`

не надо отдельные поля выбирать, а уж тем более каждый раз делать запросы к базе

получи юзера user = db.users.find_one({'user_id':id})

и обращайся к нему как к дикшнери

user['text'] == smth

Artuchka
13.06.2018
20:57:08


и тогда просто в начале получить юзера и всё

user['text'] == smth
и делать так

Google
Artuchka
13.06.2018
20:57:35
но разве не будет такой же проблемы?

Daniil
13.06.2018
20:58:13
ну поидее не должно быть, чтобы точно сказать мне надо в коде разбираться

это минимизирует в любом случае

Artuchka
13.06.2018
20:58:41
ну ок тогда спасибо огромное и так)

сейчас попробую всё исправить)

кстати, а update ведь тогда тоже лучше делать, через user? типа user['text']='new text'

user['text'] == smth
ну хотя да, точно ты так и написал)

Daniil
13.06.2018
21:03:50
да, и обновить в конце

Artuchka
13.06.2018
21:04:33
ок, спасибо

Страница 5686 из 9768