- build: Fix docker build
(
8afb6f6
)
-
ci: Fix semantic release config (
98db29c
) -
docker: Fix restart() failing to start tgpy in docker (
5fcd14c
)
-
nix: Make build use rev from nix (
f7dfdde
) -
nix: Update flake.lock (
aaa7591
) -
Update nixpkgs in flake.lock - Fix nix evaluation - Update poetry dependencies
-
Switch to PEP621 compliant pyproject.toml and pyproject.nix (
7c20075
) -
Rewrite pyproject.toml to be PEP621 compliant - Update flake.nix to use pyproject.nix - Package poetry from master, use it in actions
-
Ctx.is_manual_output is fixed (
2e591f5
) -
Parse_tgpy_message no longer returns positive result for
TGPy error>
messages (818e47d
) -
Sending
cancel
in comments and topics now works correctly. Fixcancel
throwing error when the message is not a TGPy message (1d3ba1a
)
- release: V0.16.0 [skip ci]
(
2a99f05
)
- Reformat [skip ci]
(
2b09fb3
)
- Describe loading of API secrets from env in guide
(
eb2a023
)
- Telegram API ID and hash now can be loaded from environment
(
9c22347
)
-
Config is no longer erased when it fails to save. Also, the config is saved synchronously now (
df539a3
) -
Restart now works correctly when tgpy is not in PYTHONPATH (e.g. in a container) (
16d3830
) -
The correct data directory is now used when TGPY_DATA is set to a relative path and restart is called (
f483d6c
)
- release: V0.15.1 [skip ci]
(
55b555f
)
- release: V0.15.0 [skip ci]
(
36f9a64
)
-
Release hotfix (
8572721
) -
guide: Add guide dependencies to pyproject.toml, build guide using nix (
8686aa0
)
- Reset page scale back to normal
(
20ec126
)
Bigger scale was rather an experimental change and I'm tired of how it looks :)
When stdout.flush() or stderr.flush() is called, the current output will be displayed in the message that is being evaluated. The message with be updated at most once per 3 seconds.
-
Stop running message execution on
cancel
, addstop
command to only stop execution without blacklisting the message (547c1c6
) -
Telethon: Layer 179 (
010f4ef
)
- Reactions_fix.update_hash is now called in edit_message
(
7e9d683
)
- Use cryptg-anyos again, because there are no official cp312-aarch64 binaries
(
50ca341
)
- release: V0.14.1 [skip ci]
(
81aeb16
)
- Tgpy error when editing MessageService, e.g. when deleting all messages in pm or beating your high
score in games
(
5d6fb5e
)
- Build docker image on python 3.12
(
eec91a9
)
- release: V0.14.0 [skip ci]
(
0b9d488
)
- docker: Run specified commands on container creation. This feature can be used for example to
persist installed packages between updates
(
456f503
)
- Update telethon (fix draft constructor), update all dependencies
(
a2b6064
)
- release: V0.13.2 [skip ci]
(
212069c
)
- Use official cryptg (prebuilt wheels for Python 3.12), bump telethon (fixes usage of Draft), set
minimum python version to 3.10
(
9e49739
)
- release: V0.13.1 [skip ci]
(
ff2f8f0
)
- release: V0.13.0 [skip ci]
(
2613a75
)
- Support proxy
(
cd6bc90
)
- Telethon: New layer fix
(
8145bd3
)
- release: V0.12.1 [skip ci]
(
000dda1
)
- release: V0.12.0 [skip ci]
(
75cbfa9
)
- Telethon: Update to layer 166
(
a18dc0d
)
- release: V0.11.0 [skip ci]
(
0fcbbe6
)
- Telethon: Fixes for the new layer and many more fixes from upstream
(
800fcd5
)
- release: V0.10.0 [skip ci]
(
b44a3cc
)
- Fix transformer example
(
8007b25
)
Fix shell commands example in documentation (#35)
Co-authored-by: Artyom Ivanov [email protected]
- Telethon: Layer 164
(
2d0c186
)
- Consistent colors in setup across all terminals
(
faa625b
)
- release: V0.9.7 [skip ci]
(
4bb459a
)
- Strip device model
(
a775cc5
)
- release: V0.9.6 [skip ci]
(
77bed85
)
- Try to fix session termination issue by setting device_model and system_version to real values
from the system
(
44e1c3d
)
- release: V0.9.5 [skip ci]
(
0ccf228
)
-
Initial setup can now be interrupted with ctrl+c (
e6253c7
) -
Initial setup prompts now work properly (
8713dff
)
- release: V0.9.4 [skip ci]
(
1794a21
)
- Reformat [skip ci]
(
d33b9f4
)
- Fix manual release workflow trigger
(
f44d8a3
)
- Deleting message no longer produces an error
(
ef317d9
)
- release: V0.9.3 [skip ci]
(
ac07b46
)
- Message editing bug
(
3d1d566
)
- release: V0.9.2 [skip ci]
(
c1ac624
)
- Update from older versions
(
df11e8b
)
- Use python-slim image instead of python-alpine
(
a34bd20
)
- release: V0.9.0 [skip ci]
(
287f2e1
)
-
Document new features (
f10b340
) -
Non-flickery buttons on the index page (
a783e1f
) -
Update changelog (
21abcf0
) -
Update pages (
1a696e3
) -
Update pages (
937dc35
) -
Update readme (
e446344
)
-
Change in-message url to tgpy.tmat.me (
8737ca9
) -
Move tokenize_string and untokenize_to_string to tgpy.api (
7d8c3b2
)
- Don't stop on unhandled errors. They may happen when, for example, a module uses
asyncio.create_task
(
3584f22
)
- release: V0.8.0 [skip ci]
(
c1915aa
)
- Wrap sys.stdout instead of print to capture output + properly use contextvars
(
7aa2015
)
-
Handle entities properly when editing "//" message (
6d989dc
) -
Specify parse_mode in error handler to support markdown global parse mode (
60cd81b
) -
Use message.raw_text instead of message.text to detect // (
a85b1c8
)
- release: V0.7.0 [skip ci]
(
53269f8
)
-
Update dependencies (layer 152) (
234dc86
) -
Update telethon (new markdown parser, html parser fixes) (
43dd76f
)
-
Fix IndentationError appearing for some non-code messages (
599c84f
) -
docker: Add /venv/bin to path (
00be149
)
- release: V0.6.2 [skip ci]
(
6934c6c
)
- Update readme intro
(
c334669
)
- Update command saying "Already up to date" while in fact updating correctly
(
9b25fe6
)
-
Update deps (telethon layer 151 and markup parsing/unparsing fixes) (
d06f47e
) -
Update telethon (layer 150) (
b1379fc
)
-
Add workflow_dispatch event to main workflow (
7812289
) -
Fix version (
c783bfa
) -
release: V0.6.1 [skip ci] (
e3a3a20
)
-
Ignore error when running code deletes the message itself (
d022450
) -
Keep 'cancel' message when replying to other user (fixes #21) (
057231d
)
- Use cryptg-anyos, which provides prebuilt wheels for musllinux
(
7d85c71
)
- release: V0.6.0 [skip ci]
(
ffbc4bd
)
-
Update readme (
a321bbf
) -
add links to badges - change introduction
- Use MessageEntityPre with language set to 'python' to enable syntax highlighting on supported
clients (e.g. WebZ). Closes #24
(
5de6ded
)
- Remove pydantic
(
6256c89
)
-
Build docker image with proper tgpy version (
d0f4969
) -
Tag docker images by release versions (
f8710c7
)
-
Apply autoawait pre_transform after regular code transformers (
fde6291
) -
Message markup for utf-16 (closes #10) (
20f48bc
) -
Parsing of modules with triple quotes in code (
485166d
) -
Setting/removing reaction no longer triggers reevaluation (
cf6e64e
)
however, when TGPy is restarted you will need to edit old messages twice to reevaluate
- Use custom telethon version without MessageBox as it's very buggy
(
9c7738e
)
-
Add guide dist directory to gitignore (
40578e2
) -
Add venv to .dockerignore (
2f94d3c
) -
Dockerize (
f8cb28d
)
- release: V0.5.0 [skip ci]
(
0772d59
)
-
Build docker image (
9380141
) -
Trigger main workflow on pyproject.toml and poetry.lock changes (
30c08ce
)
-
Change readme assets. new video (
d0b3565
) -
Guide changes (
b000c12
) -
Guide changes (
237a1cd
) -
Guide changes (
43a0779
) -
Guide changes (
f432d30
) -
Guide changes. many changes. (
74ae524
) -
Guide changes: (
767473b
) -
Guide changes: (
024bce3
) -
Guide changes: (
9e7f832
) -
Guide color palette & guide changes (
6320934
) -
Guide text changes (
903963a
) -
Guide theme changes (
33dcbb0
) -
New video on docs page (
9abf1eb
) -
Readme video (
59a2f12
) -
Readme video fix (
383fe5b
) -
Restructure guide (
8cee429
) -
Update readme (
a23c076
) -
add badges - update project description
-
Update readme (
5569ccb
)
-
Allow to specify data directory via environment variable TGPY_DATA (
4d769da
) -
Better version detection, ping() builtin improvements (
265b83f
) -
Distinguish between dev and release version by using IS_DEV_BUILD constant in tgpy/version.py. It's set to False only during release build process. - Allow version detection in docker container by using COMMIT_HASH constant in tgpy/version.py, which is set during docker build - utils.get_version() tries to get version from (in order): version variable, commit hash from
git rev-parse
, commit hash from COMMIT_HASH constant - update() builtin now shows friendly message when: running in docker, git is not installed, installation method is unknown (not pypi package, not docker image, not git) -
Transform x.await into await x (
6117421
) -
Use the latest telethon from v1.24 branch, update all dependencies (
91894fc
)
- code detection: Ignore messages like "fix: fix"
(
1b73815
)
- release: V0.4.1 [skip ci]
(
4509454
)
-
Ctx.msg now always points to message from which code is executed (
59acde9
) -
Data directory path on Windows (
7d0e283
) -
Print now always writes to message from which code is executed (
0e46527
) -
code detection: Ignore messages like "cat (no)" and "fix: fix" (
75bb43e
)
- release: V0.4.0 [skip ci]
(
4cad8b7
)
- Reformat [skip ci]
(
769c4ca
)
-
Add isort (
c03578c
) -
Black config in pyproject.toml (
81ff388
) -
Deploy guide to Netlify (
52eb160
) -
Don't trigger main workflow when guide workflow changes, fix cache key (
91c7f9c
) -
guide: Disable commit/pull request comments (
a1c1a81
) -
main: Fix cache key (
109048e
) -
main: Format with black (
357c8ca
)
-
Installation with pip & other readme changes (
b220b94
) -
Readme & guide updates (
59a4036
) -
add guide link to readme - 'hooks' are replaced with 'modules' - API page
-
Multiple improvements (
6b9cbda
) -
hooks are now modules - new module format (.py file with yaml metadata in docstring) - refactor some code - add API for modifying tgpy behaviour accessible via
tgpy
variable - modules.add now changes hook if exists, instead of completely overwriting - modules.add now usestgpy://module/module_name
as origin - modules['name'] can now be used instead of Module.load('name') - 'name' in modules can now be used to check if module exists
- release: V0.3.0 [skip ci]
(
5ff04a8
)
- update: Show when no updates are available
(
62145ff
)
- update: Try both regular installation and --user installation
(
50ffbe9
)
- release: V0.2.3 [skip ci]
(
81962c1
)
- update: Use --user installation when updating
(
1902672
)
- release: V0.2.2 [skip ci]
(
f1ed375
)
- Remove broken migrate_config function
(
c8f976c
)
-
Store data in system config dir instead of module directory (
7d92544
) -
Update from pypi, if installed as package (
a80b78f
)
- Remove obsolete requirements.txt [skip ci]
(
902e389
)
-
Fixes, [skip release] tag (
5bacb86
) -
Remove [skip release] tag, trigger only on changes in tgpy/ or .github/ (
27a2b48
)
-
'msg' stands for Message instead of events.NewMessage (
428b08b
) -
App.run_code.parse_code: attr.attr.attr was a false positive (
5cb7e28
) -
Change return value only if it's not inside other function (
553f864
) -
Check for forward, via and out in all handlers (
d189c08
) -
Code detection (
b668329
)
Include ctx, msg, print and client to locals to improve code detection
-
Code like *"constant", *name or *attr.ibute is ignored (
739c80e
) -
Convert old config (
10e0285
) -
Disable link preview when editing (
703ea27
) -
Disable reevaluation of edited messages in broadcast channels (
62c3006
) -
Do not stringify TLObjects in iterable eval results (
fdec6d4
) -
Don't count -1 as code (
eab27f6
)
A single expr which is unary operator with constant operand is no longer a code!
-
Edit message after restart (
44b5d07
) -
Editting message caused error (
b171036
) -
Empty return (
cab3635
) -
False positive code detections (closes #4) (
c8f25d4
) -
Get rid of for ... in range(len(root.body)) (
ceff1de
) -
Make cancel command case-insensitive (
b938ea3
) -
Make update sync (
73f96a1
) -
Messageemptyerror on '//', closes #13 (
a2d8883
) -
Meval.shallow_walk - ignore async function definitions too (
5e5f04e
) -
Move session file to data dir (
b7db892
) -
No link preview in TGPy error notifications (
3af06cd
) -
Remove buggy ctx.orig (
f5f31ac
) -
Save formatting when prevent evaluation (
1f3b3dd
) -
Show commit info in ping message and after update (
26c63d4
) -
Str instead of repr for Context (
3c51b72
) -
Tgpy will no longer crash if returned coroutine crashes (
a4303f3
) -
Tuples of constants are not evaluated (
ecec598
) -
Update (
846c98b
) -
Use getpass.getpass to get 2FA password (fixes #7) (#8,
858e721
) -
Using orig var after message edit (
7f3108f
)
- Switch to poetry, reanme package to tgpy, fix readme images
(
263bbcc
)
- release: V0.2.0 [skip ci]
(
09d4c60
)
-
Automatic semantic releases (
2f34246
) -
Debug VIVOD (
fb90e12
) -
Fix x1 (
cde7e27
) -
Fix x1874 (
378ed92
) -
Fix x1875 (
d2eeb60
) -
Fix x1876 (
cd3f30a
) -
Fix x1877 (
0a83ec3
) -
Fix x2 (
d53cf91
) -
Fix x3 (
8858a69
) -
Fix x4 (
d6e7852
) -
Fix x5 (
687a7cd
) -
Fix x6 (
df75fe8
) -
Fix x7 (
7663ce1
) -
Fix: deploy guide only from master branch (
6a99cb1
) -
Github................. ne materus (
54153e5
) -
Init (
8c06daf
) -
Ne nu ya dazhe debug vivod ne can sdelat( (
21a0074
)
- Copied readme to index.md
(
50e7879
)
Load config before setting Telethon client.
-
Cancel without reply (
2c77e6f
) -
Changes of custom hook functions (
3ed8822
) -
Ctx variable (
80503a8
) -
Context class for ctx variable (with ctx.msg for current msg and ctx.orig for current orig) - run_code.utils file for auxiliary functions and classes
-
Docstrings for app/run_code/parse_code.py (
b6d283a
) -
Exception formatting (
1417583
) -
Only show evaluating levels related to code - Start lines with 'File "" ...'
-
If message with code is deleted, ignore error on the result editing (
7872678
) -
If result is None, show output instead of result (
bc8f1ce
) -
Make code detection less strict (
c86d842
) -
binary operations with constants (like "1 - 2", but not "1" or "+1") are considered code now - if a variable which is present in locals() appears in the message, it is evaluated
-
Preparing for PyPI publication & single command configuration (
2e7e3ca
) -
add
rich
console - create app_config.py and Config class - add required files for PyPI - rename utils.py -
Pretty cli setup and logs (
f440ea4
) -
Pretty logging (
f7d1b60
) -
Run using aiorun (
28e95b5
) -
Save hook datetime, run hooks in order of addition (
e6d2cea
) -
Show 'tgpy' package version if it's installed (
d9fbf77
) -
Show username and hostname in ping() (
df7722c
) -
Update command (
a87a803
) -
User hooks addition and removal (
0abb062
)