Releases: EDM115/unzip-bot
Version 7.3.0 [stable]
Important
This release is just made to get the last year of changes out of the door and work on the refactor.
While it is technically better and more stable than 7.0.0a (even given that other tag releases have been made), still consider it beta territory.
Development will start again, starting today ! I will probably change my mind again regarding to the versioning but overall you should expect changes of v7-rework-part-1 to land in a v7.4 soon and future work will happen directly on v7.
Once the refactor is feature-complete, all of this will be merged into master for a v8 release.
GitHub releases will be used more extensively to document changes of the code. Older releases might be "back-created" if possible.
The changelog file will be updated later.
BREAKING CHANGES
⚠️ Security fix : The bot is no longer vulnerable to user attacks, see GHSA-34cg-7f8c-fm5h / CVE-2024-53992 for more info (this fix have been present sincev7.0.3a)- Uses
asyncio.create_subprocess_shell()instead of the hackish way that was present before - Uses
shlexto sanitize user input for shell commands (file paths and archive passwords)
- Uses
- The start of the bot is finally
async, although it hasn't been fully tested. This might cause issues. So far I had none but the implementation might be flaky. To be continued... - Use a
pyproject.tomlfile - All function calls now use named arguments, as far as Pylance reported them
- Strings processing is entirely redone
- ALL strings are in JSON files, which will help with future translation
- Only English supported for now
- Deleted unused strings, moved plain text to the JSON, fixed grammar mistakes
- Split buttons and messages processing
- Added a default language that gets used for non-user tied strings and logs
- Untranslated strings fall back to English (or default language)
- String keys aren't definitives, hence why I haven't already started a French translation
- Implemented a memory limit on ran commands to avoid
R14andR15errors on Heroku (first usingresourcethenulimit) (this might potentially cause poorer performance. furthermore,psutilseems a bit broken on Heroku)- Set a manual limit of RAM in Heroku (80% of 512 MB, can be manually changed) to avoid getting the limit being pulled from system info (wrong data as it gets it from the entire host)
- Limit CPU usage too using
cpulimit- Gets maxed at 80% of the current amount of cores for shell tasks
- Ensures enough room is left to the bot process
- Migrate from
pyrogramtopyroblack, nokurigram, nopyrofork(v8 will be good enough to probably settle onpyroblack, we'll see) - Creates a lock file on start
- Deletes it in case of errors/shutting down
- Restricts users from processing archives when the bot hasn't started yet
- Reduces the number of FloodWaits by reducing the number of messages sent/edited and not displaying an upload progressbar for files under 50 Mb, also handles FloodPremiumWait
- Let pyrogram handle floodwaits up to 2h
Features
- Split RAR archives are finally supported 🥳
- Added
MONGODB_DBNAMEas an option for Heroku deployment - More commands that were restricted to the Bot Owner can now be run outside of DM, ex in the logs group (if they're not anonymous)
- Users can finally cancel a task (see #28), however it doesn't work perfectly for split archives download for example
- The canceled task list is cleared at each restart and every 5 min
/restartand/gitpullnow sends logs to the logs channel- Cleans the download dir on startup (especially helps when the bot is running with a volume attached)
- Already present thumbnails aren't downloaded on a start (useful when they are stored in a volume)
Bug fixes
- Simplifies the way we pass data to the
Messages.get()i18n function, allows to use named arguments - Remove null and temp values for the thumbs db
- Download the thumbs only after removing any previous tasks
7zipis now installed from theedgerepository to fix an issue with volumes creation- During the split of a file, it is now moved to a temp location to avoid filename clash
- The bot now stops properly when sent
SIGKILL - Fixed an oversight where
ffmpegcommands were thread blocking - Stop using
return awaitin async functions - Shell commands are no longer using
shlex.jointo avoid several issues with path interpretation - Video duration is properly parsed now, and the logic to catch non generated thumbnail is simplified
- Fixed
/execnot being able to run properly - Removed an infinite loop that caused the bot to never go idle
- Assume yes on all
unrarcommands - Correctly escapes non-Unicode characters in shell output and buttons filenames
Other
- Reworked the GitHub files
- Unquote example env vars
- Bump python (3.12.7 => 3.12.10)
- Add VS Code configs
- Use uv
- Use ruff instead of Black
- Added labels to the Docker image
- Removed copyright mentions in files, added MIT notice in the start script
- Shell commands now uses
bashinstead ofsh - Bump all deps
- Private functions have a more coherent naming
- Removal of duplicate logic
- Correctly display the unrar version on the build script (to be replaced with
EDM115/unrar-alpine) - Changed a bit the versioning scheme, see #296 (comment)
What's Changed
- chore(dependencies): update dependency pillow to v10.2.0 - autoclosed by @renovate[bot] in #259
- Apply Black code style by @github-actions[bot] in #273
- chore(dependencies): update dependency aiohttp to v3.9.2 [security] by @renovate[bot] in #277
- chore(dependencies): update dependency aiohttp to v3.9.3 by @renovate[bot] in #278
- chore(dependencies): update peter-evans/create-pull-request action to v6 by @renovate[bot] in #279
- chore(dependencies): update dependency gitpython to v3.1.42 by @renovate[bot] in #280
- chore(dependencies): update dependency dnspython to v2.6.0 by @renovate[bot] in #281
- chore(dependencies): update dependency dnspython to v2.6.1 by @renovate[bot] in #283
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file[bot] in #284
- chore(dependencies): update dependency motor to v3.4.0 by @renovate[bot] in #293
- chore(dependencies): update dependency gitpython to v3.1.43 by @renovate[bot] in #292
- chore(dependencies): update dependency pillow to v10.3.0 by @renovate[bot] in #294
- [dependabot/pip] (deps): Bump aiohttp from 3.9.3 to 3.9.4 by @dependabot[bot] in #299
- chore(dependencies): update dependency aiohttp to v3.9.5 by @renovate[bot] in #297
- refactor: merge collapsible
withstatements by @deepsource-autofix[bot] in #300 - chore(dependencies): update dependency requests to v2.32.0 by @renovate[bot] in #301
- chore(dependencies): update dependency requests to v2.32.1 by @renovate[bot] in #302
- chore(dependencies): update dependency requests to v2.32.2 by @renovate[bot] in #303
- chore(dependencies): update dependency requests to v2.32.3 by @renovate[bot] in #305
- chore(dependencies): update docker/build-push-action action to v6 by @renovate[bot] in #307
- chore(dependencies): update dependency motor to v3.5.0 by @renovate[bot] in #312
- chore(dependencies): update dependency pillow to v10.4.0 by @renovate[bot] in #315
- chore(dependencies): update dependency motor to v3.5.1 by @renovate[bot] in #319
- chore(dependencies): update dependency aiohttp to v3.10.0 by @renovate[bot] in #327
- Apply Black code style by @github-actions[bot] in #328
- chore(dependencies): update dependency psutil to v6 by @renovate[bot] in #308
- chore(dependencies): update dependency aiofiles to v24 by @renovate[bot] in #311
- chore(dependencies): update dependency unzip-http to v0.6 by @renovate[bot] in #317
- chore(dependencies): update dependency aiohttp to v3.10.1 by @renovate[bot] in #331
- Apply Black code style by @github-actions[bot] in #332
- chore(dependencies): update dependency aiohttp to v3.10.2 by @renovate[bot] in #334
- chore(dependencies): update dependency aiohttp to v3.10.3 by @renovate[bot] in #335
- chore(dependencies): update dependency aiohttp to v3.10.4 by @renovate[bot] in #338
- chore(dependencies): update dep...
Version 7.0.0a [alpha]
Important
Naming scheme moving forward
Pre-releases of v7 will be in alpha at first (7.0.0a, 7.0.1a, ...)
They will then move to beta (ready for test) : 7.0.0b, 7.0.1b, ...
Finally, a release candidate might or might not be created (if so, will be called 7-RC, 7-RC1, ...)
And only then a production ready build will get a full name (7.0.0)
Caution
This release is created in the sole purpose to warn stargazers/forks owners of the future changes, to raise awareness about the breaking things and to have a "working" version before the massive switch
BREAKING CHANGES
- Uses an
.envfile for retrieving values - Switch to
unzip-botas the only way to describe the project. Also the module name is nowunzipbot - Stores thumbnails as Telegram files instead of
telegra.phURLs since the shutdown of this feature. Backwards compatibility is kept. TheFILE_REFERENCE_EXPIREDerror can appear, right now we barely handle it and just delete 0B files - The base image is now Alpine Linux in place of Arch Linux. Consider this a plus, as the image now weights 294 Mb instead of 1.87 Gb (a 6 times improvement !). This implies the following :
- Separate Docker build steps to avoid bloat in the final image
- Usage of
7-zipinstead ofp7zip - Manual build of
unrar. Addition of a specific build script for it - RAR files have a special handling case for them. This will ease the treatment of splitted RARs in the future
bashis the default shell
Features
- Send logs when shutting down the container to the logs channel
- Uses
ast.literal_evalinstead ofevalfor security reasons - No longer uses the deprecated
cgimodule - Display the full path name on the extracted file caption
- Added a
/privacycommand with temporary text - Add the ability to use an username as
LOGS_CHANNEL - We can finally use newly created channels/groups as
LOGS_CHANNEL - Ability to set a custom
MONGODB_DBNAME. Defaults toUnzipper_Botfor legacy purposes, will change in the future - Removes the keyboard when uploading a single file to avoid people spamming buttons
- Removes long tasks periodically using a proper cron job
- Boot time message now displays a human readable time. A timezone is set by default to
Europe/Paris, will be customizable later on - Actually implements graceful handling of SIGTERM, so the logs and shutdown messages are sent to the logs channel
Bug fixes
- Fixed issues with tasks count being broken
- Uses
shutilinstead ofosto avoid issues with Docker volumes - Fixed variables overlapping each other
- Spaces inside strings passed to command line utilities no longer breaks the commands
/evaland/execno longer triggers an extraction prompt. Also they have a better text formatting and removes it when uploading the result as a file- Video duration and thumbnail are properly parsed and accurate
- Properly access dicts values
Other
- Updated dependencies
- Updated donation links
- Sorted imports using
isort, formatted the code usingblack - Better Docker instructions in the README. Globally reformatted it a bit
- Added a
.dockerignore - The changelog file is now uppercase to match GitHub file sorting
- The log file is now called
unzip-bot.loginstead ofunzip-log.txt
What's Changed
- chore(dependencies): update dependency pillow to v10.2.0 - autoclosed by @renovate in #259
- Apply Black code style by @github-actions in #273
- chore(dependencies): update dependency aiohttp to v3.9.2 [security] by @renovate in #277
- chore(dependencies): update dependency aiohttp to v3.9.3 by @renovate in #278
- chore(dependencies): update peter-evans/create-pull-request action to v6 by @renovate in #279
- chore(dependencies): update dependency gitpython to v3.1.42 by @renovate in #280
- chore(dependencies): update dependency dnspython to v2.6.0 by @renovate in #281
- chore(dependencies): update dependency dnspython to v2.6.1 by @renovate in #283
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #284
- chore(dependencies): update dependency motor to v3.4.0 by @renovate in #293
- chore(dependencies): update dependency gitpython to v3.1.43 by @renovate in #292
- chore(dependencies): update dependency pillow to v10.3.0 by @renovate in #294
- [dependabot/pip] (deps): Bump aiohttp from 3.9.3 to 3.9.4 by @dependabot in #299
- chore(dependencies): update dependency aiohttp to v3.9.5 by @renovate in #297
- refactor: merge collapsible
withstatements by @deepsource-autofix in #300 - chore(dependencies): update dependency requests to v2.32.0 by @renovate in #301
- chore(dependencies): update dependency requests to v2.32.1 by @renovate in #302
- chore(dependencies): update dependency requests to v2.32.2 by @renovate in #303
- chore(dependencies): update dependency requests to v2.32.3 by @renovate in #305
- chore(dependencies): update docker/build-push-action action to v6 by @renovate in #307
- chore(dependencies): update dependency motor to v3.5.0 by @renovate in #312
- chore(dependencies): update dependency pillow to v10.4.0 by @renovate in #315
- chore(dependencies): update dependency motor to v3.5.1 by @renovate in #319
- chore(dependencies): update dependency aiohttp to v3.10.0 by @renovate in #327
- Apply Black code style by @github-actions in #328
- chore(dependencies): update dependency psutil to v6 by @renovate in #308
- chore(dependencies): update dependency aiofiles to v24 by @renovate in #311
- chore(dependencies): update dependency unzip-http to v0.6 by @renovate in #317
- chore(dependencies): update dependency aiohttp to v3.10.1 by @renovate in #331
- Apply Black code style by @github-actions in #332
- chore(dependencies): update dependency aiohttp to v3.10.2 by @renovate in #334
- chore(dependencies): update dependency aiohttp to v3.10.3 by @renovate in #335
- chore(dependencies): update dependency aiohttp to v3.10.4 by @renovate in #338
- chore(dependencies): update dependency aiohttp to v3.10.5 by @renovate in #339
- chore(dependencies): update peter-evans/create-pull-request action to v7 by @renovate in #340
- Apply Black code style by @github-actions in #341
- chore(dependencies): update dependency motor to v3.6.0 by @renovate in #343
- chore(dependencies): update dependency aiohttp to v3.10.6 by @renovate in #344
- chore(dependencies): update dependency aiohttp to v3.10.7 by @renovate in #346
- chore(dependencies): update dependency aiohttp to v3.10.8 by @renovate in #347
- chore(dependencies): update dependency aiohttp to v3.10.9 by @renovate in #348
- chore(dependencies): update dependency dnspython to v2.7.0 by @renovate in #349
- chore(dependencies): update dependency aiohttp to v3.10.10 by @renovate in #350
- chore(dependencies): update actions/checkout action to v4 by @renovate in #351
- chore(dependencies): update dependency pillow to v11 by @renovate in #353
- chore(dependencies): update dependency psutil to v6.1.0 by @renovate in #354
New Contributors
- @github-actions made their first contribution in #273
Full Changelog: 6.3.3...7.0.0a
Version 6.3.3 [stable]
Improvements
- Added support for PKG archives
- ICO aren't treated as images anymore
- When we upload a picture, either catch PhotoExtInvalid if it isn't meant to be uploaded as a picture
or catch PhotoSaveFileInvalid if the picture is too big for Telegram - Added M4A and ALAC as Audio files
- Reduced the number of Docker layers
- Bumped the number of concurrent tasks to 75
- removed useless files and imports
- updated the licence years
- updated the gh bot's config files
- added ffmpeg buildpack
- updated python runtime from 3.11.5 to 3.12.1
- SIGTERM partial handling
- new feature : if you Upload all, you won't get hundreds of notifications ! Now the bot sends the files silently and send one notification when everything's uploaded
- New password for testing archives
- Cap the resources to avoid quota exceedings
- Don't upload files from MacOS archives (
.DS_Store,__MACOSX) - Fixed TAR archives being broken (basically a
.tar.gzwould only upload the.tarinside) - Archives are no longer renamed to "archive_from_ID.ext"
- Added
/evaland/execcommands for Owner + aexec function - Audio files with media tags are uploaded with their tags
- Tasks aren't processed if there is less than 5% of disk space available
- All ongoing tasks are removed instantly instead of one by one
- Updated dependencies (GitPython, Pillow, aiohttp, psutil, gitdb, motor)
What's Changed
- Update dependency GitPython to v3.1.36 by @renovate in #223
- Update docker/metadata-action action to v5 by @renovate in #226
- Update docker/login-action action to v3 by @renovate in #225
- Update docker/build-push-action action to v5 by @renovate in #224
- Update dependency Pillow to v10.0.1 by @renovate in #227
- Update dependency GitPython to v3.1.37 by @renovate in #228
- Update dependency aiohttp to v3.8.6 by @renovate in #229
- Update ad-m/github-push-action action to v0.8.0 by @renovate in #230
- Update dependency psutil to v5.9.6 by @renovate in #232
- Update dependency Pillow to v10.1.0 by @renovate in #233
- Update dependency GitPython to v3.1.38 by @renovate in #234
- Update dependency GitPython to v3.1.40 by @renovate in #235
- Update dependency gitdb to v4.0.11 by @renovate in #237
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #246
- Update dependency motor to v3.3.2 by @renovate in #247
- Update dependency aiohttp to v3.9.0rc0 by @renovate in #248
- Update dependency aiohttp to v3.9.0 by @renovate in #251
- Update dependency aiohttp to v3.9.1 by @renovate in #253
- Update github/codeql-action action to v3 by @renovate in #254
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #255
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #256
- Update dependency psutil to v5.9.7 by @renovate in #257
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #261
- Update dependency GitPython to v3.1.41 [SECURITY] by @renovate in #264
- Create tech stack docs (techstack.yml and techstack.md) by @stack-file in #265
- refactor: replace multiple
==checks withinby @deepsource-autofix in #268 - chore(dependencies): update dependency psutil to v5.9.8 by @renovate in #270
- chore(dependencies): update dependency dnspython to v2.5.0 by @renovate in #271
New Contributors
- @stack-file made their first contribution in #246
Full Changelog: 6.3.2...6.3.3
Version 6.3.2 [stable]
Improvements
- Fixed thumbnails not being saved
- Premium related stuff is moved to its own branch (buggy so yes)
- Fixed files being nearly all the time not uploaded
- Better logging
- Added Mend Bolt
- Downgraded pyromod to 1.5 again (too much errors, I know they had been fixed in 2.1.0 but still)
- Client specification in decorators instead of global @client
- New maintenance logic
- Attempt to support files sent as TG links (may fail for topics, unaccessible chats and forward-restricted files)
What's Changed
- Update dependency motor to v3.3.1 by @renovate in #213
- Update dependency GitPython to v3.1.33 by @renovate in #214
- Update dependency GitPython to v3.1.34 by @renovate in #215
- Configure Mend Bolt for GitHub by @mend-bolt-for-github in #216
- Update actions/checkout action to v4 by @renovate in #218
- Update dependency GitPython to v3.1.35 by @renovate in #220
New Contributors
- @mend-bolt-for-github made their first contribution in #216
Full Changelog: 6.3...6.3.2
Version 6.3.1 [stable]
Improvements
- Bugfix : No longer use of
subprocess.communicate(), as it's thread blocking - All strings are in
bot_data.py, hope this hsould ease #179 - Even less thread block : use of
async forandyield - Any file unreachable/with a size of 0B is skipped, thus avoiding the bot being stuck on an impossible task
- Fixes little error on strings
- Closes a lot of issues opened by DeepSource (mostly style)
- Added a task limit (configurable in
config.py) - FloodWait is now handled correctly everywhere
- The bot is no longer blocking any task (finally)
- Attempt to add some URL parsers (fail)
- Even more refactor
- Splitted files can be renamed
- Url are checked before extracting
- If a thumbnail fails to be uploaded to telegra.ph, the error message is no longer saved in the db (and on download, non url strings are skipped)
/broadcastnow shows how many users had been processed- Ongoing tasks are removed from the database after a restart
- Added a new command : /cleantasks
- Finally upgraded pyromod to v2
- Upgraded from python-3.11.3 to python-3.11.5
- Removed any trace of bayfiles upload since the service is dead
- Support for
.partx.rarsplitted archives - Download files in 10 Mb chunks instead of 5 Mb
- Added maintenance on DB
- Aded VIP methods in DB + implementation of no-restrictions for VIP (#205)
- Finally fixed #133
- Attempt to create a premium user to upload +2Gb files
- Added
/maintenance
What's Changed
- remove unused imports by @deepsource-autofix in #181
- simplify the
ifstatement by @deepsource-autofix in #182 - remove unnecessary whitespace by @deepsource-autofix in #183
- add newline at end of file by @deepsource-autofix in #184
- refactor unnecessary
else/elifwhenifblock has areturnstatement by @deepsource-autofix in #185 - remove unnecessary whitespace by @deepsource-autofix in #186
- merge collapsible
ifstatements by @deepsource-autofix in #188 - remove unnecessary
passby @deepsource-autofix in #189 - refactor
ifexpression by @deepsource-autofix in #190 - add newline at end of file by @deepsource-autofix in #191
- remove unnecessary whitespace by @deepsource-autofix in #192
- refactor unnecessary
else/elifwhenifblock has areturnstatement by @deepsource-autofix in #193 - chore(deps): update dependency gitpython to v3.1.32 by @renovate in #194
- chore(deps): update dependency dnspython to v2.4.0 by @renovate in #195
- chore(deps): update dependency aiohttp to v3.8.5 by @renovate in #196
- chore(deps): update dependency dnspython to v2.4.1 by @renovate in #197
- chore(deps): update dependency aiofiles to v23.2.0 by @renovate in #199
- chore(deps): update dependency aiofiles to v23.2.1 by @renovate in #200
- chore(deps): update dependency dnspython to v2.4.2 by @renovate in #201
- remove unused imports by @deepsource-autofix in #206
- chore(deps): update dependency motor to v3.3.0 by @renovate in #207
- chore(deps): update dependency pillow to v10 by @renovate in #172
- chore(deps): update dependency pyromod to v2 by @renovate in #141
- group imports from same package by @deepsource-autofix in #209
Full Changelog: 6.2...6.3
Version 6.2.2 [stable/bugfix/securityfix]
Improvements :
- The actions are no longer thread-blocking
- Empty/unreachable files are skipped
- All strings are in one place
- Merged files aren't swapped between users
- Use of
async forandyield
Full Changelog: 6.0...6.2
Version 6.2.1 [stable/sync]
Improvements
- Dependencies update
- tgz and zst archives are now supported
- Thumbnail change tasks are now removed from DB after completion
- Dockerfile have been updated : Add of ffmpeg and venv
- Uploading videos as media is fixed ! #133
- Added Docker instructions on the README
- Added GitHub Actions for Docker publishing and deployment
- Updated the FUNDING.yml
- New command : /donate, plus donate button appears on /start and after a task is processed
- Tell users that they can rate the bot after a task is processed
- #33 is gone (no longer useless alerts)
- ETA is now correct
- Tried to add a way to cancel tasks, but it's not working
- Files above 2 GB are now splitted
- URL's also shows a progressbar + ETA when possible
- Downloads are 28 times faster
- Some databases are cleared upon restart
- Attempt to implement #137
- New boot sequence
- Added a new command : /merge (and /done)
- Allows to merge splitted archives in .XXX format
- Upload of thumbnails on telegra.ph now handles errors
What's Changed
- (v̶4̶) v5 by @EDM115 in #32
- Bump psutil from 5.9.2 to 5.9.3 by @dependabot in #97
- Bump motor from 3.0.0 to 3.1.1 by @dependabot in #100
- Bump motor from 3.0.0 to 3.1.1 by @dependabot in #101
- Bump pillow from 9.2.0 to 9.3.0 by @dependabot in #102
- Remove unused imports by @deepsource-autofix in #103
- Configure Renovate by @renovate in #104
- Update dependency pyrogram to v2.0.59 by @renovate in #105
- Update actions/checkout action to v3 by @renovate in #106
- Update dependency psutil to v5.9.4 by @renovate in #108
- Update dependency TgCrypto to v1.2.5 by @renovate in #109
- Update dependency pyrogram to v2.0.60 by @renovate in #110
- Update dependency pyrogram to v2.0.61 by @renovate in #111
- Update dependency pyrogram to v2.0.62 by @renovate in #112
- Update dependency pyrogram to v2.0.63 by @renovate in #113
- Update dependency pyrogram to v2.0.69 by @renovate in #114
- Update dependency pyrogram to v2.0.70 by @renovate in #115
- Update dependency pyrogram to v2.0.71 by @renovate in #116
- Update dependency pyrogram to v2.0.73 by @renovate in #117
- Update dependency pyrogram to v2.0.78 by @renovate in #118
- Update dependency pyrogram to v2.0.79 by @renovate in #119
- Update dependency pyrogram to v2.0.83 by @renovate in #120
- Update dependency pyrogram to v2.0.84 by @renovate in #121
- Update dependency pyrogram to v2.0.86 by @renovate in #122
- Update dependency pyrogram to v2.0.87 by @renovate in #123
- Update dependency pyrogram to v2.0.88 by @renovate in #124
- Update dependency pyrogram to v2.0.89 by @renovate in #125
- Update dependency pyrogram to v2.0.90 by @renovate in #126
- Update dependency pyrogram to v2.0.92 by @renovate in #127
- Update dependency pyrogram to v2.0.93 by @renovate in #128
- Update dependency Pillow to v9.4.0 by @renovate in #129
- Merge by @EDM115 in #131
- Update dependency pyrogram to v2.0.95 by @renovate in #134
- Update dependency pyrogram to v2.0.96 by @renovate in #135
- Update dependency requests to v2.28.2 by @renovate in #138
- Update dependency pyrogram to v2.0.97 by @renovate in #139
- Update dependency dnspython to v2.3.0 by @renovate in #140
- Update dependency aiofiles to v23 by @renovate in #145
- Update dependency pyrogram to v2.0.98 by @renovate in #146
- Update dependency pyrogram to v2.0.99 by @renovate in #147
- Update dependency aiohttp to v3.8.4 by @renovate in #148
- Update dependency GitPython to v3.1.31 by @renovate in #149
- Update dependency pyrogram to v2.0.100 by @renovate in #151
- Update dependency pyrogram to v2.0.101 by @renovate in #153
- Update dependency pyrogram to v2.0.102 by @renovate in #154
- Update dependency Pillow to v9.5.0 by @renovate in #155
- Update dependency motor to v3.1.2 by @renovate in #156
- Update dependency pyrogram to v2.0.103 by @renovate in #157
- Update dependency psutil to v5.9.5 by @renovate in #158
- Update dependency pyrogram to v2.0.104 by @renovate in #160
- Update dependency requests to v2.29.0 by @renovate in #161
- Update dependency pyrogram to v2.0.106 by @renovate in #162
- Update dependency requests to v2.30.0 by @renovate in #163
- Update dependency requests to v2.31.0 by @renovate in #166
- Update dependency motor to v3.2.0 by @renovate in #167
- V6 by @EDM115 in #168
- Update actions/checkout action to v3 by @renovate in #170
- ci: Update .deepsource.toml by @deepsource-autofix in #171
New Contributors
Full Changelog: 5.0...6.0
Version 5.1.2 [stable]
Improvements :
- URL downloaded files finally have their original name
- Prompting users to transload files I can't download
- What happens on the terminal is now on the logs
- Added issue templates
- /delthumb now also deletes it from the DB
- Huge code refactoring (see next paragraph)
- Thumbnails on upload are officially supported 🥳
- Made thumbnail support better (with buttons)
- Saves the thumbnail URL (telegra.ph) to the DB
- Thumbnail support is permanant 🥳 Redownloads them at every server restart
- Clears correctly the thumbnails
- FloodWait correctly handled
- Bot starting happens on another file (so we can use async/await)
- We fetch the file size before uploading
We try to split files above 2 GB(fail)- Added /user2 and /self
- Added ability to just change the thumbnail of the file (archive or not)
- Also we can rename it
- Heroku runtime shifted from Python 3.9.11 to 3.10.6
- Added wheel for faster deploymentons are side-by-side
- Checks if sent file is actually an archive (so we stop processing PDF and MKV 😭)
- Code style shifted to Black 🖤
- Upgraded to Pyrogram v2 (finally)
- The bot can process other things while extracting
- Better password handling
- Progressbar on uploads too
- Uploads as media by default
- Avoids splitted archives to be processed
- Better LOG_CHANNEL verification
- Added extensions list (for verification)
- Medias are sent as native media
- Fixed ENTITY_BOUNDS_INVALID error
- Removed numpy as we don't use it
- Added requests
- Added development followup (#38)
- Uptime on /stats works correctly
- Simpler buttons
- Commands updates (no /setmode, /me become /info, addded stats for everyone)
What's Changed
- Bump motor from 2.5.1 to 3.0.0 by @dependabot in #23
- v3.3.3 final draft by @EDM115 in #6
- Bump psutil from 5.9.0 to 5.9.1 by @dependabot in #29
- Bump pillow from 9.1.1 to 9.2.0 by @dependabot in #40
- Bump psutil from 5.9.1 to 5.9.2 by @dependabot in #42
- Bump aiofiles from 0.8.0 to 22.1.0 by @dependabot in #41
- Restyle (v̶4̶) v5 by @restyled-io in #43
- Restyle (v̶4̶) v5 by @restyled-io in #44
- Bump aiohttp from 3.8.1 to 3.8.3 by @dependabot in #47
- Convert string with anomalous backslash into a raw string by @deepsource-autofix in #49
- Use identity check for comparison to a singleton by @deepsource-autofix in #50
- Use
sys.exit()calls by @deepsource-autofix in #51 - Refactor unnecessary
else/elifwhenifblock has areturnstatement by @deepsource-autofix in #52 - Remove unnecessary whitespace by @deepsource-autofix in #53
- Replace multiple
==checks withinby @deepsource-autofix in #54 - Remove unused imports by @deepsource-autofix in #55
- Remove commented out code by @deepsource-autofix in #56
- Refactor unnecessary
else/elifwhenifblock has areturnstatement by @deepsource-autofix in #57 - Remove unnecessary f-string by @deepsource-autofix in #60
- Remove implicit
objectfrom the base class by @deepsource-autofix in #58 - Merge collapsible
withstatements by @deepsource-autofix in #59 - Format code with black and autopep8 by @deepsource-autofix in #61
- Remove commented out code by @deepsource-autofix in #78
- Restyle (v̶4̶) v5 by @restyled-io in #73
- Bump tgcrypto from 1.2.3 to 1.2.4 by @dependabot in #94
New Contributors
- @dependabot made their first contribution in #23
- @restyled-io made their first contribution in #43
- @deepsource-autofix made their first contribution in #49
Full Changelog: 4.5...5.0
Version 4.5.0 [stable] #32
Improvements :
-
Attempt to add
/mergeand/cancelcommands + linked callbacks. Actually failed -
The logs are better. Putting the text message before file, as it does with URL & replies to text message instead of file
-
Made a way more permissive regex for URL
-
Fixed exceptions on nearly all commands
-
Performing a
/restartsend the logs automatically -
Way better handling of
check_logs()on start -
Fixed #NEW_USER name formatting
-
Errors sent to logs
-
Created
get_cloud() -
If a file is above 2 Gb, it's uploaded to Bayfiles instead(BROKEN) -
Better
get_files() -
Made
/statsworking for non owner -
Added
/getthumbs, which don't work 😅 -
Thumbnail support for most of files. Nevertheless, it's removed at each restart
-
The thumbnail is resized according to Telegram API specifications
-
Thumbnails are saved to a separate folder
-
Created
thumb_exists() -
More complete logs
-
Better texts
-
Keyboard now refreshes correctly after sending a file
-
Added
/dbexport,/commands,/admincmd -
Added exec and eval, but not usable now
-
Major bug fixes
-
Empty keyboard buttons are side to side
- + Changes from previous release
Version 4.0.6 [half stable]
Improvements :
/meworks/restartdeletes everything- Created
/sendto {user_id}that basically works like /broadcast but for a single user (don't handle replies yet) - Added uploaded files count towards the database. Still broken
- The bot now replies to the concerned archive in logs
- Error messages in logs
/cleanallworks (kinda)- Added logging (finally)
- A lof of commands can now be done everywhere (refer to this)
- Added
/logs. But have been broken without reason - Handle quite correctly REPLY_MARKUP_TOO_LONG error (see #2)
- Sends downloaded URL to logs as file
- Close the session (unlike here #4)
/modenow works correctly and no longer add users to banned_db- Various text changes
- Started the CrowdIn
- Added start message to logs (stop one still under construction)
- Shifted nearly every print() to LOGGER
- Tried to automatically
/cleanafter an error - Added HOW_MANY_FILES_UPLOADED from archive count to logs (currently only works with "Upload All" choice)
- Made empty keyboard when bot isn't able to read the archive content. Also fixes #2
- Added a TimeFormatter that works with seconds instead of ms
- No longer gets AttributeError. If the bot can't get the user_id when he joins, he still sends the message "New user" but only with Username
- Added
/restart, but I will search for a complete reboot, even if it hangs up
Bugs :
- Inline keyboard don't refresh
- "There is nothing to remove 💀" without reason
- Uptime and others are broken as hell