Собрали в одном месте самые важные ссылки
читайте нас в Twitter
В этом цикле статей мы реализуем службу поддержки для онлайн-чатов. Система должна уведомлять команду операторов о новом сообщении, делить нагрузку на команду любого размера, делегировать сообщения в зависимости от приоритета. Звучит жутко. Но без паники, я поделюсь нашим опытом построения такой системы, которая уместилась всего в пару сотен строк кода. Да, мы будем использовать Telegram-бота. Но не потому, что это модно, а потому что супер удобно.
В этой статье я хотел бы поделиться опытом и показать пример, как мы разрабатываем тесты для API интерфейсов включающих в себя как сервер-сервер взаимодействие, так и работу через браузер. Для демонстрации я приведу простой пример тестирования процесса оплаты банковской картой через наш платежный шлюз с отправкой результата тестов в Telegram.
import handwritingio
hwio = handwritingio.Client('KEY', 'SECRET')
png = hwio.render_png({
'handwriting_id': '2D5S46A80003', # found in our catalog or by listing handwritings
'text': 'Handwriting with Python!',
'height': 'auto',
})
with open('handwriting.png', 'wb') as f:
f.write(png)
Вторая часть статьи про написание Telegram бота на Python/Django. В ней мы поговорим о процессе деплоя в production.
import sqlite3 import tornado.ioloop import tornado.web import tornado_jsonapi.handlers import tornado_jsonapi.resource schema = { "title": "post", "properties": { "text": { "type": "string" }, "author": { "type": "string" } } } res = tornado_jsonapi.resource.DBAPI2Resource( schema, sqlite3, sqlite3.connect(':memory:')) res._create_table() application = tornado.web.Application([ ( r"/api/posts/([^/]*)", tornado_jsonapi.handlers.APIHandler, dict(resource=res) ) ]) application.listen(8888) tornado.ioloop.IOLoop.current().start()
Пишем Telegram бота через простейшее веб-приложение на Django.