Skip to content

Releases: EDM115/unzip-bot

Version 7.3.0 [stable]

25 Feb 11:18
Immutable release. Only release title and notes can be modified.
87d7545

Choose a tag to compare

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 since v7.0.3a)
    • Uses asyncio.create_subprocess_shell() instead of the hackish way that was present before
    • Uses shlex to sanitize user input for shell commands (file paths and archive passwords)
  • 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.toml file
  • 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 R14 and R15 errors on Heroku (first using resource then ulimit) (this might potentially cause poorer performance. furthermore, psutil seems 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 pyrogram to pyroblack, no kurigram, no pyrofork (v8 will be good enough to probably settle on pyroblack, 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_DBNAME as 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
  • /restart and /gitpull now 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
  • 7zip is now installed from the edge repository 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 ffmpeg commands were thread blocking
  • Stop using return await in async functions
  • Shell commands are no longer using shlex.join to avoid several issues with path interpretation
  • Video duration is properly parsed now, and the logic to catch non generated thumbnail is simplified
  • Fixed /exec not being able to run properly
  • Removed an infinite loop that caused the bot to never go idle
  • Assume yes on all unrar commands
  • 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 bash instead of sh
  • 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 with statements 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...
Read more

Version 7.0.0a [alpha]

16 Nov 17:30
Immutable release. Only release title and notes can be modified.
1c850df

Choose a tag to compare

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 .env file for retrieving values
  • Switch to unzip-bot as the only way to describe the project. Also the module name is now unzipbot
  • Stores thumbnails as Telegram files instead of telegra.ph URLs since the shutdown of this feature. Backwards compatibility is kept. The FILE_REFERENCE_EXPIRED error 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-zip instead of p7zip
    • 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
  • bash is the default shell

Features

  • Send logs when shutting down the container to the logs channel
  • Uses ast.literal_eval instead of eval for security reasons
  • No longer uses the deprecated cgi module
  • Display the full path name on the extracted file caption
  • Added a /privacy command 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 to Unzipper_Bot for 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 shutil instead of os to avoid issues with Docker volumes
  • Fixed variables overlapping each other
  • Spaces inside strings passed to command line utilities no longer breaks the commands
  • /eval and /exec no 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 using black
  • 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.log instead of unzip-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 with statements 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]

21 Jan 14:17
6b4e8b4

Choose a tag to compare

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.gz would only upload the .tar inside)
  • Archives are no longer renamed to "archive_from_ID.ext"
  • Added /eval and /exec commands 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 with in by @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]

10 Sep 09:16
f2cf480

Choose a tag to compare

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]

30 Aug 18:22
ec7b04f

Choose a tag to compare

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 for and yield
  • 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)
  • /broadcast now 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.rar splitted 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 if statement 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 / elif when if block has a return statement by @deepsource-autofix in #185
  • remove unnecessary whitespace by @deepsource-autofix in #186
  • merge collapsible if statements by @deepsource-autofix in #188
  • remove unnecessary pass by @deepsource-autofix in #189
  • refactor if expression 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 / elif when if block has a return statement 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]

04 Jul 12:31
8284cda

Choose a tag to compare

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 for and yield

Full Changelog: 6.0...6.2

Version 6.2.1 [stable/sync]

03 Jul 17:33
72ebe4a

Choose a tag to compare

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

New Contributors

Full Changelog: 5.0...6.0

Version 5.1.2 [stable]

18 Oct 14:42
bef0f0a

Choose a tag to compare

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 / elif when if block has a return statement by @deepsource-autofix in #52
  • Remove unnecessary whitespace by @deepsource-autofix in #53
  • Replace multiple == checks with in by @deepsource-autofix in #54
  • Remove unused imports by @deepsource-autofix in #55
  • Remove commented out code by @deepsource-autofix in #56
  • Refactor unnecessary else / elif when if block has a return statement by @deepsource-autofix in #57
  • Remove unnecessary f-string by @deepsource-autofix in #60
  • Remove implicit object from the base class by @deepsource-autofix in #58
  • Merge collapsible with statements 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

Full Changelog: 4.5...5.0

Version 4.5.0 [stable] #32

08 Jul 10:06
5ee8623

Choose a tag to compare

Improvements :

  • Attempt to add /merge and /cancel commands + 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 /restart send 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 /stats working 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

Version 4.0.6 [half stable]

19 May 14:37
fc8d9dc

Choose a tag to compare

Pre-release

Improvements :

  • /me works
  • /restart deletes 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
  • /cleanall works (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)
  • /mode now 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 /clean after 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