added a barebone `t/info` command to print bot into. Currently it only prints the public IP of the machine on which the bot is running, but it will be expanded to include LAN IP, transmissionrpc info, and discord.py info.
* NEW: added log rotation
* NEW: improved error handling
* NEW: makes backup copies of original when overwriting json files
* NEW: `notification_channel_id` config item is now an integer (was previously a string)
* NEW: bot prefix is optional in DMs
* IMPROVED: don't print reactions to notifications that only contain removed transfers
* IMPROVED: in-channel help now initiates a help DM to the user
* FIXED: fixed potential access of `CONFIG` before being initialized
* FIXED: validate notification channel before trying to post notifications
* FIXED: `notification_DM_opt_out_user_ids` config is now properly respected
* improved output messages regarding modification of transfers in the event the user doesn't have permission to perform the modification
* added another override configuration option regarding removal of private transfers: 'private_transfer_protection_bot_owner_override'
* better printing of times (auto-update message frequency, transfer eta)
* user-configurable auto-update message frequency and timout (see `t/help config`)
guaranteed that output mode is consistent throughout a particular transaction (i.e. if the bot's waiting a response from one user while the output mode changes for another) by simply passing the output mode as an argument instead of using a global variable (which made sense when I first set that up...)
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