This changelog includes records about notable changes that are only visible from developer side. Such records require some technical expertise to properly understand them. To see changelog from end user side, see changelog for end users.
- Invalid template for production logger.
- Support for
callback_query
Telegram update. - Support for user settings.
- Support for translations.
gunicorn
will support IP socket configuration throughGUNICORN_USE_IP_SOCKET
andGUNICORN_PORT
env variables.- path of unix socket for
gunicorn
server can be changed throughGUNICORN_UNIX_SOCKET_PATH
env variable. - Docker images.
- Support for docker-compose.
- Information about project version naming.
- Short name in information about the app.
- Logger settings for
Flask
andgunicorn
. Set it through env variables. - Debug logs.
- Big refactoring.
- Changelog splitted into two files: one for end users and one for developers.
- Changelog will no longer contain
Improved
section. It will be merged withChanged
section. - DB data about incoming Telegram user will be fetched on every request, before dispatching of request to appropriate handler.
language
column moved fromUser
model toUserSettings
.- Background tasks will have copy of request
g
data. - Worker for background tasks should be started with
python manage.py run-worker
instead ofpython worker.py
. - To add webhook URL postfix use
TELEGRAM_API_WEBHOOK_URL_POSTFIX
env variable, from now don't editviews.py
file and revert it back. - SQLAlchemy debug echo will be disabled by default. Use
SQLALCHEMY_ECHO
env variable to control it. - Python runtime version to 3.8.11.
src.api
module renamed tosrc.http
.
/telegram_bot/yandex_disk_authorization
with trailing slash at the end (i.e.,/telegram_bot/yandex_disk_authorization/
) will be handled correctly.- Invalid DB migrations for PostgreSQL. More specifically, these migrations didn't really change enum values. That bug was not noticeable, because new enum values wasn't actually used at all. For SQLite everything was ok. To fix invalid PostgreSQL schema, run
flask db downgrade 358b1cefda13 && flask db upgrade
. You will not lose your current data (at the moment of20dfdf679e84
migration).
- Upgrade
python
to 3.8.5. - All requirements upgraded to latest version.
- Big refactoring.
- Stateful chat support. Now bot can store custom user data (in different namespaces: user, chat, user in chat); determine Telegram message types; register single use handler (call once for message) with optional timeout for types of message; subscribe handlers with optional timeout for types of messages.
- Console Client Yandex.OAuth method. By default it is disabled, and default one is Auto Code Client.
- RQ (job queue). It requires Redis to be enabled, and as Redis it is also optional. However, it is highly recommended to use it.
- Support for different env-type files (based on current environment). Initially it was only for production.
- Web Site: 302 (redirect to Telegram) will be returned instead of 404 (not found page), but only in production mode.
- Debug configuration for VSCode.
- DB: add indexes for frequent using columns.
- Redirect to favicon will be handled by nginx.
- Biggest photo (from single photo file) will be selected based on total pixels count, not based on height.
- A bug when new user (didn't use any command before) used
/revoke_access
command and it led to request crash (500). - Situation: Telegram send an update, the server sent back a 500; Telegram will send same update again and again until it get 200 from a server, but server always returns 500. Such sitations can occur, for example, when user initiated a command and blocked the bot - bot can't send message to user in this case (it gets 403 from Telegram API, so, server raises error because it is an unexpected error and should be logged). Now it is fixed and the bot always send back 200, even for such error situations.
- Big refactoring of everything.
- File structure.
- Upgrade
gevent
to 1.5.0.
SERVER_NAME
environment variable.- Google Analytics in authorization pages.
- Templates for issues and pull requests.
robots.txt
.
- Decreased size of slug on Heroku by removing unused files and folders.
- Decreased number of seconds for Yandex.OAuth request timeout.
- Redirects and generated URL's always will be absolute URL's with
PREFERRED_URL_SCHEME + SERVER_NAME
. - If user refused to grant the access to Yandex.Disk, then user
insert_token
will be cleared after redirect.
Initial release!