
Ilia
29.03.2017
17:55:28
Если это по какой то причине делается на каждый запрос то так и получится

Rinat
29.03.2017
18:02:40


Stanislav
29.03.2017
18:02:43
wsgi.py
from bot import app as application
from bot import WEBHOOK_LISTEN, WEBHOOK_PORT, WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV
if __name__ == '__main__':
# Start flask server
application.run(host=WEBHOOK_LISTEN,
port=WEBHOOK_PORT,
ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV),
debug=True)
—----------------------------
bot.py
import telebot
import flask
API_TOKEN = 'TOKEN'
WEBHOOK_HOST = 'SERVER_IP'
WEBHOOK_PORT = 8443
WEBHOOK_LISTEN = '0.0.0.0'
WEBHOOK_SSL_CERT = 'webhook_cert.pem'
WEBHOOK_SSL_PRIV = 'webhook_pkey.pem'
WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
WEBHOOK_URL_PATH = "/%s/" % API_TOKEN
# Process webhook calls
@app.route(WEBHOOK_URL_PATH, methods=['POST'])
def webhook():
if flask.request.headers.get('content-type') == 'application/json':
json_string = flask.request.get_data().decode('utf-8')
update = telebot.types.Update.de_json(json_string)
bot.process_new_updates([update])
return ''
else:
flask.abort(403)
... # Вьюшки
# Remove webhook, it fails sometimes the set if there is a previous webhook
bot.remove_webhook()
# Set webhook
bot.set_webhook(url=WEBHOOK_URL_BASE+WEBHOOK_URL_PATH,
certificate=open(WEBHOOK_SSL_CERT, 'r'))
Что-то типа этого у меня есть на данном этапе. + в виртуалке стоит uwsgi
Теперь вопрос - как это заставить работать? До этого
application.run(host=WEBHOOK_LISTEN,
port=WEBHOOK_PORT,
ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV),
debug=True)
этот кусок кода был в bot.py и все запускалось либо через flask run, либо через python bot.py
Я думаю проще спросить
Все-таки - кто имеет рабочего бота ТГ с вебхуками и на фласке?

Google

Aleksey
29.03.2017
18:26:13
Пачаны, нужно для среднего проекта , библиотеку, которая будет изменять размер картинок. Какую лучше взять, чтобы не подвисала?

Eldar
29.03.2017
18:26:57

Spacehug
29.03.2017
18:26:57

Aleksey
29.03.2017
18:27:54

Eldar
29.03.2017
18:28:29

Aleksey
29.03.2017
18:31:09

Eldar
29.03.2017
18:32:11

Spacehug
29.03.2017
18:33:21

Nikolay
29.03.2017
18:33:21
да ffmpeg/imagemagick + bash какой-нибудь
че изобретать-то

Aleksey
29.03.2017
18:35:10

Spacehug
29.03.2017
18:36:14

Aleksey
29.03.2017
18:38:09

Google

Spacehug
29.03.2017
18:39:03
там при ресайзе в какой-то момент нужно указать resample=ANTIALIAS и будет счастье

Aleksey
29.03.2017
18:44:58

V
29.03.2017
18:52:30
подскажите почему я установил в винде питон и импорт requests горит красным?
это разве не стандартный модуль?

Nikolay
29.03.2017
18:53:08
нет, не стандартный

V
29.03.2017
18:53:36

Stanislav
29.03.2017
18:54:10

V
29.03.2017
18:56:35

Aleksey
29.03.2017
19:00:54

Даниил
29.03.2017
19:03:25
Я уже логгирование и настройки добавил )
Выпрашиваю звезды
https://github.com/TiberiumN/Nickel


Ilia
29.03.2017
19:03:42
wsgi.py
from bot import app as application
from bot import WEBHOOK_LISTEN, WEBHOOK_PORT, WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV
if __name__ == '__main__':
# Start flask server
application.run(host=WEBHOOK_LISTEN,
port=WEBHOOK_PORT,
ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV),
debug=True)
—----------------------------
bot.py
import telebot
import flask
API_TOKEN = 'TOKEN'
WEBHOOK_HOST = 'SERVER_IP'
WEBHOOK_PORT = 8443
WEBHOOK_LISTEN = '0.0.0.0'
WEBHOOK_SSL_CERT = 'webhook_cert.pem'
WEBHOOK_SSL_PRIV = 'webhook_pkey.pem'
WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
WEBHOOK_URL_PATH = "/%s/" % API_TOKEN
# Process webhook calls
@app.route(WEBHOOK_URL_PATH, methods=['POST'])
def webhook():
if flask.request.headers.get('content-type') == 'application/json':
json_string = flask.request.get_data().decode('utf-8')
update = telebot.types.Update.de_json(json_string)
bot.process_new_updates([update])
return ''
else:
flask.abort(403)
... # Вьюшки
# Remove webhook, it fails sometimes the set if there is a previous webhook
bot.remove_webhook()
# Set webhook
bot.set_webhook(url=WEBHOOK_URL_BASE+WEBHOOK_URL_PATH,
certificate=open(WEBHOOK_SSL_CERT, 'r'))
Что-то типа этого у меня есть на данном этапе. + в виртуалке стоит uwsgi
Теперь вопрос - как это заставить работать? До этого
application.run(host=WEBHOOK_LISTEN,
port=WEBHOOK_PORT,
ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV),
debug=True)
этот кусок кода был в bot.py и все запускалось либо через flask run, либо через python bot.py
Проблема в том чтобы настроить uwsgi или?...
Можно руками запускать uwsgi можно конфиг написать


Даниил
29.03.2017
19:05:12
Кому нужен именно питон - звезду сюда
https://github.com/TiberiumN/VBot

Проксимов
29.03.2017
19:12:50

Centrino
29.03.2017
19:12:53

53r63rn4r
29.03.2017
19:13:45
)
Говно, кармодрочер

Eldar
29.03.2017
19:20:48

53r63rn4r
29.03.2017
19:20:57
хд

Google

Aleksey
29.03.2017
19:29:49
С 10 аккаунтов

Eldar
29.03.2017
19:31:29
в дейстивтельности если послаешься много однотипных запросов, то вк все медленнее отвечает

53r63rn4r
29.03.2017
19:31:54
мс повел дуров спрошиваит за аиовк либу
норм
а, он уже гей

Aleksey
29.03.2017
19:32:56

Spacehug
29.03.2017
19:33:39
Хм
Ну, допустим
Коли

Скрудж
29.03.2017
19:34:30

53r63rn4r
29.03.2017
19:34:57
Ну, скрудж макдак решил, расходимся

Скрудж
29.03.2017
19:35:54

Aleksey
29.03.2017
19:36:02
Скрудж макдак, аппетитный пердак

Скрудж
29.03.2017
19:37:11

Stanislav
29.03.2017
19:37:24
Особенно фласк

53r63rn4r
29.03.2017
19:38:45
2 пер секонд

Nikolay
29.03.2017
19:38:52
?

Google

Nikolay
29.03.2017
19:39:19
Пожалуй обойдусь башем, тут уже нечего терять

Aleksey
29.03.2017
19:40:08

Stanislav
29.03.2017
19:40:26

Aleksey
29.03.2017
19:41:28
Там написано про ювиски

Rocket
29.03.2017
19:52:07

Stanislav
29.03.2017
19:52:26

Eldar
29.03.2017
19:52:55

53r63rn4r
29.03.2017
19:53:12
Нужно понимать как работает ювсги, для начала

Admin
ERROR: S client not available

53r63rn4r
29.03.2017
19:53:33
или гуникорн

Stanislav
29.03.2017
20:07:53

53r63rn4r
29.03.2017
20:08:15
А в логах что пишет?

b0g3r
29.03.2017
20:33:15

Stanislav
29.03.2017
20:33:28

CthUlhUzzz
29.03.2017
20:36:21
Кто-нибудь использует __slots__ в реальной жизни?

Nikolay
29.03.2017
20:37:16

Eldar
29.03.2017
20:37:50
а чо я то сразу?!

Stanislav
29.03.2017
22:38:37
Вся хуйня была магическим образом решена гуникорном, спасибо за понимание

Rocket
29.03.2017
22:52:12

Google

Stanislav
29.03.2017
22:52:37
И с аио
Т.е фулл файлик с ботом

Rocket
29.03.2017
22:53:22
С аио не покажу. Своя библиотека, в паблике её нет.
Можешь заценить скорость работы вот на этом боте: @MakeChatBot - там сейчас два воркера обслуживают больше сотни ботов.
Оно, правда, еще на tornado бежит, но не суть важно, на aio такие же результаты и потихоньку всё на него и переедет.

Stanislav
29.03.2017
22:56:13

Rocket
29.03.2017
22:57:44
Да, как бы... Я и лутца не читал, только dive into python. Прошлый опыт+документация+чтение исходников рулит...

Stanislav
29.03.2017
22:57:53
Понял
А хули у меня воркер таймаутится и новый делается?
Это так и должно быть?

Rocket
29.03.2017
22:58:56
Вся концепция есть "кооперативная многозадачность". Back to windows 3.x real mode ?
Это так и должно быть?
Под uwsgi? Нет, так быть не должно. Воркер умирает по счптчику либо по таймауту(долго думает).

Stanislav
29.03.2017
23:00:28
Ну типа в фласке бесконечный луп же

Rocket
29.03.2017
23:01:05
Если он умирает неожиданно для тебя, то значит ты в нем что-то такое делаешь, что работает дольше чем таймаут в uwsgi задан.

Stanislav
29.03.2017
23:01:43
А если луп бесконечный
То можно
а) ставить таймауты конские
б) смирится с этим?

Rocket
29.03.2017
23:02:09
Он в одно время может обрабатывать только один запрос
Если у тебя воркер работает долго, значит надо запускать много воркеров.