added ability to reprint messages by clicking printer reaction
made configuration option for reaction timeout
more honest printing of eta for downloads
users can toggle compact output in DMs
* `t/summary` now takes the same LIST_OPTIONS as `t/modify` and `t/list`, so you can see a partial summary of whatever transfers match the query.
* added a summarize reaction to the output of `t/list` so you can quickly summarize the transfers in the output message.
* added checks for whether an added torrent uses a private tracker. If so, the command message that added the torrent(s) is deleted (added corresponding configuration option), and a message is printed to the user to remind them to check the private tracker rules regarding sharing of torrent files
* `t/add` output to use embeds
* better error handling and logging
* added `channel.typing()` where appropriate so users know the bot is thinking
* added configuration options for overriding private torrent removal protection for the user that added the transfer
added missing filters for `t/list` and `t/modify`
added configuration option to control whether command messages are deleted by the bot. if disabled, you can see the commands that prompted a result message
added configuration options for `t/modify`:
* 'whitelist_user_can_remove', 'whitelist_user_can_delete', and 'whitelist_added_user_remove_delete_override'
* The first two control whether a whitelisted user can remove or remove and delete any transfer (owners are always able to delete)
* The third overrides this behavior, only for transfers added by the user
added labeling to multi-message output for `t/list` and `t/modify` (e.g. message 1 of 2)
Played with the output of `t/list` and `t/modify` to make it a bit easier to interpret
* add notifications, in-channel and through DMs
* users will automatically receive DM notifications for transfers they add
* users can opt into notifications for other transfers by reacting with a 'bell' to `t/list` output, or by reacting with a 'bell' to an in-channel notification
* users can opt out of particular DM notifications by reacting with a 'crossed bell' to a DM notification
* users can disable all DM notifications by sending a `t/notifications` command to the bot via DM
* owners can disable in-channel notifications using the `t/notifications` in the notification channel
* bot now responds to DMs, using all the same commands (with a `t/` prefix) or without a prefix using the commands full name (e.g. just `summary`)
* fixed delay if you set `t/summary` to auto-update, then printed a sublist of transfers, `summary` was waiting until the subsequent message was done monitoring its reactions before updating itself, but now it loads the subsequent message using asyncio.create_task() so it doesn't have to wait.
* users can now add transfers by simply posting a .torrent file in a listened channel or via DM, no command required.
* disabled checking reactions as their added; that was slow.
* reload transmissionrpc client (when there's no repeating messages) so the bot can handle when transmission restarts or becomes unavailable.
last commit I also:
* Made reactions more stable and performant
* in `t/summary` and `t/modify` reactions are checked as their added, so a user can click a reaction before they're done printing and it will apply the action, aborting the printing of the rest
* reactions are checked immediately after they're added and again before `t/summary`, `t/modify`, and `t/list` return, catching the case where a user's click isn't registered by `wait_for()` (i.e. if they clicked too soon while the last reaction was printing)
* now support multiple auto-update messages
* if an auto-update message is no longer the most recent, a 'printer' reaction will appear that a user can click to reprint the output at the bottom of the channel
* Output mode (desktop or mobile) is now autoselected based on `user.is_on_mobile()`
* can be overwritten using `t/compact`
* now `t/list` also supports searching by transfer IDs
Added `t/compact` command to toggle between mobile or desktop command output that applies to `t/summary`, `t/list`, `t/modify`
User can click a reaction of `t/summary` or `t/modify` while reactions are still being printed.
1) `list` auto-update was deleting the old message every time, now it (and `summary`) edits the existing message(s) when auto-updating *unless* the auto-update message isn't the most recent. If there are newer messages then the auto-update is deleted and reposted at the bottom
2) depending on the timing with which a user presses the "cancel" reaction to stop auto-update, it could be missed. Added a final check based on the count of the cancel reaction. This has the drawback that any user can cancel the auto-update, but I could check to make sure the message author is one of the people that pressed it.
When auto-updating `summary`, reactions were not being removed for listing types of transfers of which there were none. Now that's fixed. e.g. if the number of downloading transfers goes from 1 to zero, the downloading reaction will be removed the next time the output is updated.