@rudepython

Страница 151 из 1719
Zart
05.02.2017
17:35:31
они дерьмо

Vadim
05.02.2017
17:36:08
Попробуй на досуге хромиум собрать

Zart
05.02.2017
17:36:14
зачем?

мозиллу я собирал, а хромиум может идти нахуй

Google
Vadim
05.02.2017
17:37:00
Там как раз вот это все, чекаут на полтора часа

зачем?
Поддержать беседу)

Zart
05.02.2017
17:38:55
я конечно порой похож на гентоёба, но просто так йа компелирую редко

Igor
05.02.2017
18:09:55
Ребятки, подскажите пожалуйста какой-нибудь проект может, может какие-нибудь руководства по Python, где можно новичку тренироваться. Может быть статьи где на примерах пишется что-нибудь. Я тут видел по руби туториалс. А вот по питону есть чо хорошее?

Igor
05.02.2017
18:10:41
@python_beginners checkio, stepic, codewars, вот это все

Igor
05.02.2017
18:11:17
Чекио говно какое-то непонятное. Кодворс сразу заставляют решить что-то.

Igor
05.02.2017
18:11:45
статьи где на примерах что-нибудь пишется есть в документации питончика и интернетах вон серия постов про то, как сайт на фласке накатать https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

ну правильно, зачем лезть решать сразу что-то, если ты вообще ничего не знаешь?

Трусов
05.02.2017
18:24:50
Привет,может кто знает, использую telebot для ботов телеграм. Делаю примерно так: @bot.message_handler(regexp='что то') def handler_start_help(message): bot.send_message(message.chat.id, 'Вопрос?') Как мне получить то, что напишет юзер после срабатывания handler'а?

Danil
05.02.2017
18:26:25
скорее всего надо хранить переписку с пользователем локально

Трусов
05.02.2017
18:26:47
Знаю, что можно использовать register_next_step_handler, но это немного не то. В данном случаи просто произойдет передача ответа на метод, который будет его обрабатывать.

Stanislav
05.02.2017
18:27:53
Чет хуйня какая-то происходит с питоном В неком методе класса в котором используется рекурсия и ретурн неких данных. Если не юзать рекурсию - все возвращает, если она происходит по условиям программы - в локальном скопе все ок, данные нужные - но снаружи возвращает None

Denis
05.02.2017
18:28:09
Код го

Google
Stanislav
05.02.2017
18:28:34
Я щас видео запишу нахуй

Трусов
05.02.2017
18:29:38
а если мне надо будет 10 раз посмотреть что чел написал?

Milton
05.02.2017
18:30:14
Ну в конце своего хэндлера вкорячиваешь next_step_handler тот, что вкорячил перед этим

Получаешь цикл

Трусов
05.02.2017
18:30:32
10 раз что ли register_next_step_handler юзать? Да и тогда я не смогу посмотреть что мне чел ответит. смогу конечно, но это будут ifы и прочее говно, что либа говорит не юзать ибо есть handler

Трусов
05.02.2017
18:32:00
вот я и спрашиваю, может у меня лыжи не едут и есть более правильный способ. значит нету

во, пример нашел, может кому пригодится https://github.com/eternnoir/pyTelegramBotAPI/blob/master/examples/step_example.py

Milton
05.02.2017
18:36:56
во, пример нашел, может кому пригодится https://github.com/eternnoir/pyTelegramBotAPI/blob/master/examples/step_example.py
В этом коде же нет обработки "10 раз ответил". А еще код говно вот поэтому:



Igor
05.02.2017
18:37:59
Давайте я в двух словах расскажу про машину состояний, коей бот и является. Хотел бы подольше, но обедать пора. Бот для каждого пользователя находится в каком-то состоянии: "ждём любимый цвет", "ждём имя юзера" и т.п. Для каждого состояния есть набор переходов: "из состояния А по команде 'x' переходим в состояние Б". Для начала стоит взять лист бумаги побольше, и расписать все состояния и все переходы. А потом поискать в гугле/гитхабе какой-нибудь фреймоворк для оформления этого дела, наверняка уже к ботам прикрутили что-нибудь.

Milton
05.02.2017
18:38:04
Я бы не смог зарегаться. Мой гендер — Боевой вертолет Апач

Igor
05.02.2017
18:38:12
это и многие другие интересные факты о написании ботов - в соседнем канале!

Трусов
05.02.2017
18:38:54
соседнем канале?можно название

Igor
05.02.2017
18:39:31
в @python_beginners часто ботов обсуждают

ну и вообще @botoid есть

Zart
05.02.2017
18:39:41
а здесь ботов осуждают

Трусов
05.02.2017
18:39:55
да почему, они хорошие

Igor
05.02.2017
18:39:58
не знаю, я на днях таки не удержался и написал первого

Google
Igor
05.02.2017
18:40:26


Milton
05.02.2017
18:40:58
А фразы разные?

Трусов
05.02.2017
18:41:04
"не пробовал, но осуждаю"

понятно

Milton
05.02.2017
18:41:18
Igor
05.02.2017
18:42:24
А фразы разные?
да какая разница, это вопрос random.choice'а (а вообще одна) у меня бомбануло, я его запустил, подержал в чатике с полчаса и выкинул за ненадобностью, потому что в bot api нельзя удалять чужие сообщения в чатах. это с tg-cli ебаться придется и нормальным человеческим аккаунтом

Stanislav
05.02.2017
18:42:31
Код го
https://www.youtube.com/watch?v=SehokaoPm6I

Igor
05.02.2017
18:43:57
Тоже недавно бомбануло с этого. Казалось бы, ввели вы кик-бан, так херали ж сообщения ботом удалять нельзя?
вот да. кикбан за такую мелочь, как (зло-)употребление стикерами - слишком жестко %)

Stanislav
05.02.2017
18:44:20
https://www.youtube.com/watch?v=SehokaoPm6I
Гляньте пожалуйста, я не понял шо за хуйня

Баг питона?

Igor
05.02.2017
18:44:34
да, как раз хотел дополнить.

Zart
05.02.2017
18:45:51
Stanislav
05.02.2017
18:46:00
зачем нам лекция про вафли?
Да бля, это на фоне

Zart
05.02.2017
18:46:29
ну я не умею читать серый на сером, поэтому предоставлю слово дальтоникам

https://twitter.com/sadserver/status/674264875259052032

Stanislav
05.02.2017
18:50:19
ну я не умею читать серый на сером, поэтому предоставлю слово дальтоникам
Я тут напишу еще class OnlineSimApiSession: def __init__(): #логинимся там кароче хуйня def _compile_url(self, method_name, query=None): base_url = '%s/%s.php?' % (API_URL, method_name) query['apikey'] = self.apikey return base_url + urlencode(query) def get_state(self): r = self.get(self._compile_url('getState', {'message_to_code': 1})) r_json = r.json() if type(r_json) == list: if int(r_json[0]['time']) <= 20: r = self.get(self._compile_url('setOperationOk', {'tzid': self.tzid})) self.tzid, self.number, self.msg_id = None, None, -1 sleep(5) self.get_state() return r_json else: if r_json.get('response') == 'ERROR_NO_OPERATIONS': self.tzid, self.number = self.new_number() sleep(3) self.get_state() def new_number(self): r = self.post(API_URL+'/getNum.php', json={'apikey': self.apikey, 'service': "Steam", 'form': 1}) r_json = r.json() print('Getting number: '+str(r_json)) if r_json['response'] == 1: tzid = r_json['tzid'] number = '+7%s' % r_json['params']['number'] self.msg_id = 0 return tzid, number else: raise Exception('Cannot resolve new number.', r_json) def get_number(self): kek = self.get_state() return self.number s = OnlineSimApiSession(*DATA) s.get_number() Изначально при вызове get_state от сервера получаем говно респонс, по одному из условий если говно - сделать не говно. Оно делает не говно и вызывает get_state из себя. После чего получаем охуенный респонс и возвращаем его, но возвращается None. Во второй раз при изначально охуенном ответе оно возвращает охуенный ответ, а не None

dmks
05.02.2017
18:51:59
https://www.youtube.com/watch?v=SehokaoPm6I
блядь, когджа скидывали снимки экрана я стерпел, но код в видео на ютубе?

Stanislav
05.02.2017
18:52:27
блядь, когджа скидывали снимки экрана я стерпел, но код в видео на ютубе?
Ну я показывал в дебагере, а вообще я вроде ещё текстово описал

Google
Stanislav
05.02.2017
18:52:39
Я просто нихуя не понял

Почему оно ведет себя так

dmks
05.02.2017
18:52:59
Ну я показывал в дебагере, а вообще я вроде ещё текстово описал
Чукча не читатель, чукча писатель. Текст увидел уже после :D

Zart
05.02.2017
18:53:02
а этот self.get он синхронный аще?

Stanislav
05.02.2017
18:53:41
а этот self.get он синхронный аще?
Да, полностью Это из requests.Session

Igor
05.02.2017
19:07:47
Парни, а может кто-нибудь проект подсказать? Или в свой взять? Хотелось бы практики много и учиться со знающим человеком.

Denis
05.02.2017
19:09:02
Могу свой говнокод показать, только ты там ничему не научишься

Stanislav
05.02.2017
19:10:19
Я тут напишу еще class OnlineSimApiSession: def __init__(): #логинимся там кароче хуйня def _compile_url(self, method_name, query=None): base_url = '%s/%s.php?' % (API_URL, method_name) query['apikey'] = self.apikey return base_url + urlencode(query) def get_state(self): r = self.get(self._compile_url('getState', {'message_to_code': 1})) r_json = r.json() if type(r_json) == list: if int(r_json[0]['time']) <= 20: r = self.get(self._compile_url('setOperationOk', {'tzid': self.tzid})) self.tzid, self.number, self.msg_id = None, None, -1 sleep(5) self.get_state() return r_json else: if r_json.get('response') == 'ERROR_NO_OPERATIONS': self.tzid, self.number = self.new_number() sleep(3) self.get_state() def new_number(self): r = self.post(API_URL+'/getNum.php', json={'apikey': self.apikey, 'service': "Steam", 'form': 1}) r_json = r.json() print('Getting number: '+str(r_json)) if r_json['response'] == 1: tzid = r_json['tzid'] number = '+7%s' % r_json['params']['number'] self.msg_id = 0 return tzid, number else: raise Exception('Cannot resolve new number.', r_json) def get_number(self): kek = self.get_state() return self.number s = OnlineSimApiSession(*DATA) s.get_number() Изначально при вызове get_state от сервера получаем говно респонс, по одному из условий если говно - сделать не говно. Оно делает не говно и вызывает get_state из себя. После чего получаем охуенный респонс и возвращаем его, но возвращается None. Во второй раз при изначально охуенном ответе оно возвращает охуенный ответ, а не None
Так че, тикет писать?

Eugine
05.02.2017
19:35:17
Так че, тикет писать?
в "автостопом по галактике" был прекрасный момент на эту тему: - А по-моему, когда наступает конец света, нужно лечь и натянуть на голову бумажный пакет или что-то в этом роде. - Да, если хочешь - А это поможет? - Нет

Zart
05.02.2017
19:38:37
Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-two million miles is an utterly insignificant little blue green planet whose ape- descended life forms are so amazingly primitive that they still think Django is a pretty neat webframework.

b0g3r
05.02.2017
20:09:39
https://www.youtube.com/watch?v=SehokaoPm6I
знакомый заказчик :)

Stanislav
05.02.2017
20:10:09
знакомый заказчик :)
Только у меня задача -вырви жопу натяни на глаз нахуй

b0g3r
05.02.2017
20:10:19
насколько тактично просить помочь с фрилансом?)

Stanislav
05.02.2017
20:11:01
насколько тактично просить помочь с фрилансом?)
Я же не прошу за меня написать, я обратил внимание на ебанутый механизм питона

Zart
05.02.2017
20:11:37
а там точно питон виноват, а не твои кривые лапы?

Stanislav
05.02.2017
20:12:03
а там точно питон виноват, а не твои кривые лапы?
Возможно и лапы, энивей я потом попробую этот баг возобновить

b0g3r
05.02.2017
20:12:07
конечно питон

это же баг питона!!!

Zart
05.02.2017
20:14:23
type(r_json) == list # мудак

Google
Zart
05.02.2017
20:15:14
Milton
05.02.2017
20:16:58
днк
Так это у всего компьютерного

Zart
05.02.2017
20:18:17
решил таки посмотреть сраный видос...

Stanislav
05.02.2017
20:22:02
type(r_json) == list # мудак
Ну is, какая разница

Zart
05.02.2017
20:23:19
чота я бага не вижу

если не считать того что какой-то мудак часть данных передает через присваивание self.* а часть через ретурн

Zart
05.02.2017
20:24:25
во втором трае time: 1046, от чего условие if time < 20 пропускает апдейт self.number и вот этого всего

в чем именно баг я не понял

Stanislav
05.02.2017
20:25:32
в чем именно баг я не понял
Оно в проверке на лист, ретурн должен быть

Zart
05.02.2017
20:25:46
где?

Stanislav
05.02.2017
20:26:19
где?
return r_json Он должен выполнится

Zart
05.02.2017
20:27:01
он и выполнился...

ты можешь внятно объяснить проблему?

Stanislav
05.02.2017
20:27:19
Zart
05.02.2017
20:27:36
чо?

Stanislav
05.02.2017
20:28:49
чо?
Я поправил код, как на видео

Там оно не возвращает r_json

Zart
05.02.2017
20:29:27
логично же

Stanislav
05.02.2017
20:30:02
if condition: return r_json

Zart
05.02.2017
20:30:15
в первом случае ты трассируешь гет_стейт. тебе прилетает дикт и ты попадаешь в ветку else в которой нет сраного return вообще

Страница 151 из 1719