IGSQbot™ Changelog

IGSQbot™ - An exclusive Discord bot for The Intergalactic Squirrels™

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[0.9.27] - 2020-06-17

Added

  • Certain channels can now be blacklisted from logs
  • Unverified people are automatically kicked after 48 hours, if they have never sent a message
  • The following voice status events are now logged: Join VC, Leave VC, Switching VC, Mute/Deafen (self), Mute/Deafen (server), Go Live start/stop, Video start/stop
  • The user's time spent in a VC is logged.
  • Members being banned or unbanned is now logged.
  • Channels being created or deleted is now logged.

Changed

  • API Keys are now stored in the database and not hardcoded in plain-text.

Fixed

  • meme command threw an unexpected error

[0.9.26] - 2020-06-09

Added

  • .birthday command to set your birthday in the database
  • hourly_tasks task for hourly checks. Currently only includes birthday check
  • CheckBirthdays function, to assign or remove birthday role and send message
  • .avatar command to retreive anyone's avatar.

Changed

  • Added .birthday and .avatar to help menu

[0.9.25] - 2020-06-04

Added

  • GameStatsUpdate task, runs every 30 minutes
  • Finished stats command
  • Simple local wrapper for movie.py to access TMDb API using AIOHTTP
  • aiomysql library

Changed

  • Movie embed features reference to TMDb as required by TMDb Terms of Use
  • Cleaned up imports in all main files
  • Added .info settings to .config command, to allow one to set custom roles and descriptions for a role's info
  • .info command is now updated, and can retrieve custom set roles
  • Changed from pymysql to aiomysql for all MySQL functions

Fixed

  • Being in another server caused all loop tasks to fail.
  • ctx message for warn command is now deleted.
  • .info @user would throw an error if user had custom status without text (emoji only)

Removed

  • TMDbPy API wrapper (replaced by own local wrapper)
  • pymysql library (replaced by aiomysql)

[0.9.24] - 2020-05-31

Added

  • Groundworks for chatbot-ish features for IGSQbot
  • Alpha stats v2 command + updatestats command for manual updating

Changed

  • Vastly improved movie command that includes multiple results, from which the user can choose the correct one.
  • Movie embed now features link to trailer and imdb, runtime and genres

[0.9.23] - 2020-05-24

Added

  • Timers feature for timed messages to be set by admins, using .config
  • Periodic check checks if timer should be triggered
  • Check that ensures a timer is only sent if the last message was not also the timer message.

Changed

  • Updated the .modhelp command to include .vote and to fix some mistakes

Fixed

  • Timers with a period of over 1 day wrapped around and went back to 0 hours.

[0.9.22] - 2020-05-15

Added

  • .mute and .unmute for admins and mods to mute/unmute people for breaking rules.
  • .vote check [id] to check who still has to vote on an issue.
  • Abstaining system for the voting. You can abstain by clicking the cross on vote, or leave the deadline to run out.
  • Users can submit memes using .submitmeme
  • .meme igsq alternative to get server specific memes that were submitted with .submitmeme

Changed

  • Updated the .modhelp command to include all the latest commands including mute/unmute
  • Updated .help command to include latest commands and updated layout.

[0.9.21] - 2020-05-13

Added

  • on_command_completion event implemented, to replace all the local scope print statements.
  • .remind and .listreminders command to create and manage reminders that ping you when the reminder is happening
  • task loop that basically acts like an internal clock, to be used for reminders, periodic messages, etc.
  • .version command to set the IGSQbot version without having to access the db directly.

Changed

  • Improved print log.
  • Database is updated once a minute instead of every 30 seconds.

Fixed

  • The error embed function failed to execute if the original ctx message was deleted before it could add a reaction.
  • .verify still worked even if the member was already verified.

Removed

  • Removed all print statements in local scope, replaced by global on_command_completion event.
  • Cleaned up database functions of any reference to old database
  • Some testing/debugging stuff is no longer logged in the printlog.

[0.9.20] - 2020-05-10

Added

  • New warning & Deleted warning events are logged.
  • listwarning command can now also delete warnings (admin only)
  • Vote command to configure and create votes

Changed

  • Slightly improved warning embed layout and visuals.
  • .info now shows custom statuses

Fixed

  • Data from members that left and that had R6 data in the db was not being deleted properly.
  • .info didn't work anymore for roles after changing some of the functions related to user status.

[0.9.19] - 2020-05-08

Added

  • Warning command to warn users. Sends DM and lists total warnings.
  • Listwarnings command to get a list of all previous warnings of member.

Changed

  • Changelog is now under .info [changelog] [version(optional)]
  • .stats r6 loading embed is replaced with the trigger_typing() discord.py feature, which makes Discord say "...IGSQbot is typing..." in the ctx channel
  • Improved speed of .mcping, it's about 2x faster, but not async yet.

Fixed

  • If someone had no activity that the activity variable wouldn't be assigned in info.UserStatus() function
  • info.UserStatus() took the command author's status instead of the specified user's status.

Removed

  • .changelog is replaced by .info [changelog] [version(optional)]

[0.9.18] - 2020-05-06

Added

  • The on_raw_message_delete event is now logged by IGSQbot.
  • The on_raw_bulk_message_delete event is now logged by IGSQbot.
  • The on_message_edit event is now logged by IGSQbot.
  • on_message now includes a check for blacklist including some variations.
  • A filter that makes sure bot messages in on_raw_message_delete do not get logged.
  • info command can now retrieve user info as well.
  • UserInfo function now also takes user ID, user name (with or without discriminator), besides a mention
  • UserStatus function to determine user's status and game activity for .info [user]

Changed

  • Changed the way on_member_join and on_member_remove is logged.
  • Report embed shows status (open/closed) and removes reactions when closed.
  • User info command (now .info [user]) shows boost status, country & game roles and current activity/status.

Fixed

  • If a user did not have R6 data linked their records could not be properly deleted from the database

Removed

  • .userinfo is replaced by info [user]

[0.9.17] - 2020-04-22

Added

  • info command to replace .countryinfo and .roleinfo. Type the name of any role to get how many users have the role, and get a list of up to 10 (random) members with this role.

Changed

  • Improved visuals of the logs for when a member joins, leaves, the VC is updated, the database is updated and when someone gets accepted.
  • Improved database structure for R6 data.

Fixed

  • .userinfo did not work because of a bug with discord.py's conversion of user objects as a string.
  • Database could not remove people successfully if they had linked R6 username, because of a MySQL unique key constraint
  • .statslink and .statsunlink were still not functional after the switch to MySQL.

Removed

  • .countryinfo is replaced by .info [role]
  • .roleinfo is replaced by .info [role]

[0.9.16] - 2020-04-19

Added

  • Using keepachangelog python module, the changelog command can now retrieve the changelog from any existing previous version.

Changed

[0.9.15] - 2020-04-17

Changed

  • The database commands Fetch(), Select(), Find() merged into one command.

Fixed

  • Removing members from the database gave an error
  • Verification did not work properly with the new database
  • .changelog could not properly filter on version number

[0.9.14] - 2020-04-17

Fixed

  • Rewrote .botsuggest to work with the newly updated Trello API wrapper.

[0.9.13] - 2020-04-17

Changed

  • Changed database name to guild_id and all references/functions to use the guild.id

Fixed

  • Database couldn't log the removal of members cause of a missing channel reference.
  • Saudi Arabia wasn't being properly detected by the verify command.
  • Some people's ID wasn't properly being fetched from their mention during verification.

[0.9.12] - 2020-04-15

Added

  • New .verify command. Vastly improved over the old .accept command.
  • .vag command

Changed

  • Improved error logging
  • Improved welcome message upon verification
  • Welcome message shows roles
  • Logs for VC update and for verification now show up inigsqbot-log instead ofbot-log

[0.9.11] - 2020-04-12

Added

  • Traceback & command errors now logged inigsqbot-log instead of terminal
  • Added a log message upon launch & usage of .shutdown
  • changelog command

Changed

  • Changed the log references to newigsqbot-log channel
  • Removed some old code referencing the old DB
  • Improved error handling
  • Improved welcome message after .accept
  • Improved the .links command's layout

Fixed

  • Reworked the database commands to work with the new mySQL database.
  • Fixed the R6 stats command (statslink and statsunlink not yet working)

[0.9.10] - 2020-04-12

Added

  • New .rules command to display explanation of rules.

Changed

  • Report command now has DMs with user and a confirmation check for staff/council.

[0.9.9] - 2020-04-10

Added

  • .define easter egg for IGSQ

Changed

  • Improved error handling.

[0.9.8] - 2020-04-10

Added

  • New rule command
    The new rule command has all the updated rules and a reference to the full rules.

[0.9.7] - 2020-03-23

Fixed

  • Code for the .help menu reaction emojis would interfere with suggestion reactions

[0.9.6] - 2020-03-23

Changed

  • Completely rewrote .stats r6. Now uses TRN and BeautifulSoup4 to fetch data, which will work even if Ubi API is offline!
  • Reworked .help menu that uses reaction emojis to scroll between pages

[0.9.5] - 2020-03-20

Changed

  • Updated .invite command to only show the Discord invite

[0.9.4] - 2020-03-17

Added

  • .countryinfo command to retrieve info about country roles

Fixed

  • After introducing new database commands and functions, stats command broke.

[0.9.3] - 2020-03-17

Changed

  • Drastically improved database update efficiency. Changed frequency of updating to once per minute instead of once per hour.

[0.9.2] - 2020-03-15

Added

  • .define command to look up any string in the dictionary.

Fixed

  • .define couldn't find things related to countries (because the string was all lower case)

[0.9.1] - 2020-02-07

Added

  • For error embeds and loading embeds, there is now a function created to save over 100 lines of code.
  • Instead of printing error logs to the console they are now printed in #igsqbot

Fixed

  • When someone types more than one ., the bot doesn't send the error message anymore

[0.9.0] - 2020-02-05

Added

  • Using the gspread library, there is now a complete database set up for IGSQbot. It contains all members. Does not automatically update yet.
  • .stats, .statslink and .statsunlink are using the newly made database. Currently only Rainbow Six Siege stats are supported.

[0.8.18] - 2020-02-04

Fixed

  • Revised .meme command
    The .meme command now picks a random post from one of 3 predetermined subs.
    Additional identical commands: .cursed and .me_irl for their respective subs.

[0.8.17] - 2020-02-04

Added

  • .accept command, allows moderators to accept someone into the server really quickly. By typing .accept @member /// the command will immediately give the mentioned
    roles + the verified member & squirrel roles, and remove the applicant role.

[0.8.16] - 2020-02-03

Added

  • .roleinfo command that shows how many people have a certain role
  • When a member leaves, the Member Count VC is updated to reflect the change in the number of members.

Fixed

  • Fixed all the embeds that had broken indentation on mobile.

[0.8.15]

24-01-2020

Added

  • Error message when a command doesn't exist.

Fixed

  • Fixed an issue where typing multiple periods at the beginning of a sentence would trigger the bot's error message.
  • Fixed an issue where the confirmation message of .clear command wouldn't be deleted.

[0.8.14] - 2020-01-23

Added

  • Reintroduced the .botsuggest command for people to directly add Trello cards to the IGSQbot Board.

Changed

  • Updated every command error to have the same visual appearance. Now, when a command is used incorrectly, IGSQbot sends an error message in a nice embed format, explaining why the command is not working.

[0.8.13] - 2020-01-22

Added

  • Role assignment based on levels
    • IGSQbot is now able to read MEE6's messages in the levels channel. From there, it can detect which user leveled up, and to what level. If they reached a specific level (level 3, 6 or 10) it will then assign them their new role(s) and remove the previous one, as well as send a message.

[0.8.12] - 2020-01-17

Added

  • The .movieembed command gives a short explanation to people on how to suggest a movie for movie nights

[0.8.11] - 2020-01-17

Changed

  • suggestions command
    • Changed the visual layout of the command
    • Removed categories
    • Changed where it can be used
    • IGSQbot doesn't delete the command usage anymore, gives a thumbs up reaction instead
    • Updated .help to remove the categories variable
  • For .poll and .movie command, IGSQbot doesn't delete the command usage anymore, gives a thumbs up reaction instead

[0.8.10] - 2020-01-15

Changed

  • Fixed the issue with emoji reactions given by the bot
  • Updated the License to GNU V3 (Previously MIT)
  • Updated headers of all source files to include new license and bumped the copyright years to 2019-2020 (previously 2019)
  • The .movie command now doesn't show a user's tag anymore in the footer, instead it only displays the username (e.g. Pim#9704 > Pim)

[0.8.9] - 2019-11-28

Changed

  • Updated reminder message to @squirrel council in case of problems
  • Slight changes to getting-started and rules embed texts

[0.8.8] - 2019-11-10

Changed

  • getting-started embed includes a clear message saying where to put answers
  • getting-started embed tells people to mention council or staff rather than people in case of trouble

[0.8.7] - 2019-10-23

Changed

  • Updated rules for new rules and new role (requirements)
  • Updated welcome

[0.8.6] - 2019-10-15

Changed

  • Over 15 new responses added to .8ball, bringing the total to 42.
  • Added a python print for the CMD log for all commands.

[0.8.5] - 2019-10-14

Changed

  • Updated rules, 1 less rule total
  • Updated getting-started questions
  • Updated .fullrules too
  • Updated ranks description in fullrules

[0.8.4] 2019-10-14

Changed

  • Fixed the .rule command to remove age & 'IGSQ' instead of 'ISGQ'
  • When the .8ball command is used and the command features the words grim fandango, it will automatically say it's the best.

[0.8.3] - 2019-10-13

Added

  • .peen command allows people to let IGSQbot measure their or someone else's peen. Random length is given.

Changed

  • Added .peen command to .help menu
  • .help will only show General commands, while .help fun will show all the fun commands.

[0.8.2] 2019-10-12

Changed

  • Added .meme command to .help menu
  • Added .dankmeme command to .help menu
  • Added .mock command to .help menu
  • Added .8ball command to .help menu
  • Changed the separator for .poll from '|' to '/'
  • Updated .roast description to say you must mention someone.

[0.8.1] - 2019-10-12

Changed

  • Over 20 replies added to .roast command, making a total of 32.
  • .roast command now requires someone to mention a user.

[0.8.0] - 2019-10-10

Added

  • .choice command allows users to give infinite options to the bot, and it will make a choice from your options. 14 different answers.
  • .8ball command allows users to ask a question, and the bot will give a random response. 26 possible responses.
  • .mock command allows anyone to mock a quote. The bot will take the given string and randomly turn some letters into capital letters, while lowering others. It sends the reply as an embed with a spongebob mock image.
  • .meme command pulls a random meme from the top recent posts of r/memes. With timestamp, user and subreddit in footer.
  • .dankmeme command pulls a random meme from the top recent posts of r/dankmemes. With timestamp, user and subreddit in footer.

Changed

  • Added .choice to the help menu

[0.7.1] - 2019-09-22

Added

  • Updated .help to feature new links via official igsq.org

[0.7.0] - 2019-09-20

Added

  • .poll command allows any user to create a poll in embedded format that uses reaction emojis for voting. It allows up to 8 different options and can be used in any text channel.

Changed

  • Added .poll command to .help

[0.6.1] - 2019-09-19

Changed

  • In the case that someone doesn't enter a title for .movie, the bot will return a message to say they need to. The bot will now also delete the command usage.
  • In the case that someone doesn't use .movie in the right channel, the bot will now also delete the
    command usage.

[0.6.0] - 2019-09-19

Added

  • .movie command to suggest a movie to watch using a simple command, much like the Suggestions command. It pulls information from The Movie Database (TMDB), and has an up/downvote system like Suggestions.

Changed

  • Updated .help to feature the .movie command.

[0.4.2] - 2019-07-27

Added

  • The .userinfo command can now be used to check other people's stats by mentioning.

Fixed

  • Fixed an issue where .userinfo could not be used anymore without mentioning.

Changed

  • Slightly improved visuals of questions embed using custom number emojis
  • Slightly improved visuals of rules embed using custom number emojis

[0.4.1] - 2019-07-24

Changed

  • Added the .userinfo command to the .help command.
  • .suggest command now features thumbnail of author's profile picture.

[0.4.0] - 2019-07-23

Added

  • .userinfo command to retrieve some basic information about yourself. It's not finished yet.

Fixed

  • Fixed issue with .mcping where under blockhunt it was just checking the hub status.

[0.3.1] - 2019-07-22

Fixed

  • Fixed issue with .suggest where on entering a nonexisting category, the command would bot function as it should.

[0.3.0] - 2019-07-22

Added

  • Made the moderator commands secure through checking if the user of the command has the relevant permissions.
  • Welcoming questions now IGSQbot embed instead of MEE6 message.

Changed

  • Improved the look of .mcstatus

[0.2.1] - 2019-07-18

Fixed

  • Made the category variable of the .suggest command indifferent to capitalization.

[0.2.0] - 2019-07-14

Added

  • .suggest command to replace the Suggestions bot, used like .suggest , it can take any suggestions for mcserver, bot or general suggestions. It also features a thumbs up and thumbs down emoji.

Fixed

  • @everyone and @here disabled on multiple commands, they can now not be used anymore if the input contains a mention of everyone or here.

Changed

  • .rules now has added aliases.
  • .rules with no input now has been upgraded to embedded.
  • .help now has proper text channel references.
  • When .suggest is used in the wrong channel, it now has proper reference tosuggestions.
  • .botsuggest command has been removed. Replaced by .suggest bot .

[0.1.5] 2019-07-14

Added

  • Welcome message on_member_join, IGSQbot will now send the message instead of MEE6.
    However, it is disabled for now because the bot does not yet assign roles and is not up 24/7 yet.

[0.1.4] - 2019-07-13

Fixed

  • Fixed the issue where some log prints were giving a UnicodeEncode error.

Changed

  • Marginal improvements to .mcstatus command visuals.
  • Further improvements on changelog readability.

[0.1.3] - 2019-07-13

Added

  • The .mcstatus command now automatically pings @here in #mc-server-crew-chat if it cannot ping any of the backend servers.

Changed

  • The .mcstatus command is now visually more appealing, changed to an embed format.
  • Improved readability of changelog.

[0.1.2] - 2019-07-12

Added

  • .remind command
    A command to be used in #getting-started for reminding people to answer the questions.

Changed

  • .botsuggest command visuals
    The bot suggestion command is now visually more appealing, changed to an embedded format.

[0.1.1] 2019-07-12

Added

  • Added Trello link to .links command.
  • Added a mention of .botsuggestion to .help command.

Changed

  • Bot Suggestion command
    The trello command is now only usable in thesuggestions text channel.

[0.1.0] - 2019-07-12

Added

  • Using the trello python API, made a new command to submit any suggestion to the bot in the format of .botsuggestion {suggestion}.

Changed

  • Improved file structure, library scripts are now in a seperate folder, just like the ping scripts.
  • Renamed certain .py files to be easier to read and use

[0.0.1] - 2019-07-05

Added

  • .ping command
  • .mcstatus command to ping the MC server and see if it's alive!
  • The bot has come to life. It's added to the server but has virtually no functionality.

©2020 The Intergalactic Squirrels™. All rights reserved.