# Changelog

[All Releases](https://github.com/phrdang/enoch-bot/releases) | [All Tags](https://github.com/phrdang/enoch-bot/tags)

## v1.0.x

### [v1.0.3](https://github.com/phrdang/enoch-bot/tree/v1.0.3)

{% hint style="success" %}
**Latest**
{% endhint %}

#### Command Updates & Fixes

* [#21](https://github.com/phrdang/enoch-bot/pull/21) `setup teacher` and `setup parent` now work without needing to enter codes&#x20;
  * Unlike the `setup student` command, the teacher and parent commands do not have the duplicate safety feature since there's no way currently to check if teachers/parents with the same name are actually different people
  * The commands still support adding codes, e.g. `+setup teacher 1111`.
* [aa743ca](https://github.com/phrdang/enoch-bot/commit/aa743cafcaecd7e9fd136fdc20d3f3c0592db703) Fix issue where `codes` is listed as a required argument for `setup student` , `setup teacher`, and `setup parent` commands

#### Under the Hood Changes

* [#21](https://github.com/phrdang/enoch-bot/pull/21) Fix issue where `\t` characters were found in spreadsheet cell values
* [877e9b3](https://github.com/phrdang/enoch-bot/commit/877e9b34b0d039130beffc6ea43014eb2196b1a8) Fix OAuth issue on AWS ec2 instance by copying `token.pickle` (this is probably not very secure, but it'll have to do for now)

### [v1.0.2](https://github.com/phrdang/enoch-bot/releases/tag/v1.0.2)

{% hint style="info" %}
Release: **Spring Classes 2021 Bot**
{% endhint %}

#### Removed Commands

* `course`

#### Command Updates & Fixes

* Update setup DM messages
* `repo` command now supports sending the ML and Tier Projects GitHub repositories
* Update `classinfo` command to work with Google Sheets functionality

#### Under the Hood Changes

* [#19](https://github.com/phrdang/enoch-bot/pull/19) , [#20](https://github.com/phrdang/enoch-bot/pull/20) Add Google Sheets functionality for student setup&#x20;
  * Add `StudTeachSheet` class to `cft.py` which represents data about the student-teacher matching Google Sheet
* Update meeting reminders to account for all team meetings and department meetings
* Add `Series` class to `cft.py` which represents data about the current class series (e.g. the Spring 2021 series)

### [v1.0.1](https://github.com/phrdang/enoch-bot/tree/v1.0.1)

#### New Commands

* `passwords` command sends the link to the passwords document
* `attendance` command sends the link to the attendance spreadsheet

#### Command Fixes & Updates

* Fix `onboard` command so it sends the correct link to [onboarding website](https://onboard.code4tomorrow.org)
* Add ML as a valid course name for user setup
* Update `thinkific` command
  * Add ML as a valid course name for the `thinkific` command
  * Fix bug where only the first word in the `course` argument was parsed
* `help` commands
  * Using `help` by itself now displays a list of cogs and their help commands
  * Using `help <cog_name>` now displays a list of commands in that cog
  * Using `help <cmd_name>` now displays a notice at the top explaining `< >` and `[ ]` should not be included when using the command
* `setup name` command no longer autocapitalizes and will change the nickname of the user to exactly what is passed as the `name` argument

#### Under the Hood Changes

* Add docstrings to cog classes (this is because by default the cog's description attribute is its docstring; the cog's description attribute is then used in the `help` command)
* Update Bot to work with C4T Classes Discord server (refactor references to C4T Teachers or C4T Students servers)
  * Refactor names of checks (e.g. `is_students_server()` is now `is_classes_server()`)
* Bump discord.py package version to `v1.6` and add all [Intents](https://discordpy.readthedocs.io/en/latest/api.html#discord.Intents) to the bot
* Change how Enoch handles unverified users
  * Instead of giving the Unverified role to all users upon joining the server, Enoch will not do anything
  * At 12 PM PST, Enoch will warn all users with only the @everyone role
  * At 12 AM PST, Enoch will kick all users with only the @everyone role
  * This is so that the C4T servers can take advantage of the new [rules screening feature](https://support.discord.com/hc/en-us/articles/1500000466882-Rules-Screening-FAQ) on Discord

## v0.1.x

### [v0.1.5](https://github.com/phrdang/enoch-bot/tree/v0.1.5)

#### Under the Hood Changes

* Update links, emails for Google Workspace

#### Command Changes

* folder
  * Add more aliases: shared\_drive, shareddrive, sdrive, googl&#x65;*\_*&#x64;rive, googledrive, gdrive
  * Add "administrative" as a valid folder name
* setup addproj
  * HTML/CSS/JS is no longer a valid project name (renamed to Web Development)
  * Web Development now is called Website Design
  * This is to clarify the difference between the Web Dev curriculum development team and the C4T website team

#### New Commands

* emails - sends various C4T email addresses

### [v0.1.4](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.4)

#### **Under the Hood Changes**

* [d7ec3b2](https://github.com/phrdang/enoch-bot/commit/d7ec3b23a86aad188b2a8efde08bfe6db784a196) Change server command to not send the deprecated C4T Teachers Discord invite link
* Bug fixes
  * [402e6d4](https://github.com/phrdang/enoch-bot/commit/402e6d43eea7ed8b3f7a3433cba82b65a3bec782) Fix server command to access links properly
  * [6b2a43c](https://github.com/phrdang/enoch-bot/commit/6b2a43ce92b1cccdf2545cabdb36b09014677102) Fix bug in setup done command where C4T role was not given upon setup completion
  * [b62f426](https://github.com/phrdang/enoch-bot/commit/b62f426aadf417059a2042704479df8fc0ca4563) Fix bug affecting adding project roles
  * [872b478](https://github.com/phrdang/enoch-bot/commit/872b478bad0ddd2c2b9c4c6119a851f2a46ceb48) Fix bug where COCO role couldn't be added

### [v0.1.3](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.3)

#### Under the Hood Changes

* Update C4T knowledge base links

#### New Commands

* linkedin - sends the C4T LinkedIn link
* docs - sends the C4T Knowledge Base
* onboard - sends the C4T Onboarding site
* bylaws - sends the C4T Bylaws link
* edocs - sends the Enoch Bot documentation link

### [v0.1.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.2)

* Add all team meeting reminders
* Fix setup for Volunteer Management

### [v0.1.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.1)

* Add setup done command

### [v0.1.0 ](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.0)

{% hint style="info" %}
Release: **Fall Classes 2020 Bot**
{% endhint %}

Enoch Bot is now being used live on C4T servers! 🎉

#### New Commands

* [#13](https://github.com/phrdang/enoch-bot/pull/13)
  * `classinfo <code>` - sends information about a class (e.g. course, times, days, meeting links) if the user has that class role or is an administrator
  * `directory` - sends a link to the C4T directory
* [#15](https://github.com/phrdang/enoch-bot/pull/15)
  * `setup member <dept>` - sets up a C4T member on the Code 4 Tomorrow server by adding their primary department role
  * `setup addproj <project>` - adds a project role to a user

#### Major Under the Hood Changes

* Add GitBook docs under `./docs/`
* Hardcode class data
* [123394e](https://github.com/phrdang/enoch-bot/commit/123394e9a5254d206452e0a8b938758eaf547547) Add Enoch Dev Bot functionality to let developers run experimental Enoch commands while the original Enoch bot works
* [8755df7](https://github.com/phrdang/enoch-bot/commit/8755df750cd45f325adfdb7d2058c05dc4191f53) Update name of the Enoch test server to Enoch Developers
* [#14](https://github.com/phrdang/enoch-bot/pull/14) Merge `check_unverified` and `kick_unverified` into single, generalized `handle_unverified` function
* Rename references to "subteam" to "member" to accommodate new organizational model

#### Fixes

* [b45fea8](https://github.com/phrdang/enoch-bot/commit/b45fea88ffda7d68854f761f862cbe99cfb47eae) Fix error message when `setup teacher` used in the wrong server
* [e197177](https://github.com/phrdang/enoch-bot/commit/e19717729d72eb64de351b7c92730b7e4c17ba99) Fix unverified job times (accidentally switched 12 AM and 12 PM PT)
* [2b0306b](https://github.com/phrdang/enoch-bot/commit/2b0306b8d44fc9f7aa1ace97c231ec878366fb7a) Fix `setup name` capitalization bug where hyphenated names weren't capitalized properly

#### TODOs

* Google sheets verification (working on it - [phrdang/enoch-bot:sheets](https://github.com/phrdang/enoch-bot/tree/sheets))
* Update [GitBook docs](https://phrdang.gitbook.io/enoch-bot) for v0.1.0

## v0.0.x

### [v0.0.11-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.11-beta.1)

{% hint style="warning" %}
Pre-release: **Setup Subcommands**
{% endhint %}

#### Bot Updates

* Added checks to commands to restrict their access to trusted parties [#3](https://github.com/phrdang/enoch-bot/pull/3)
  * `slap` command was removed
* Added setup subcommands [#5](https://github.com/phrdang/enoch-bot/pull/5)
  * `diagnose` command works now and has expanded functionality
  * New `course` command for setting up teachers on C4T Teachers server
  * New `setup name` command for changing nickname during server setup
  * `help` command now shows subcommands

#### Under the Hood

* Update function/command docstrings
* Stopped using JSON files because of flake8 warnings when using \* import (see also: [#2](https://github.com/phrdang/enoch-bot/pull/2) )
* Hardcoded class/student/teacher/parent data because there wasn't enough time to learn the Google Sheets API before classes began [#4](https://github.com/phrdang/enoch-bot/pull/4)
* GitHub workflows now only trigger on pull requests because having PRs and push triggers is redundant [#5](https://github.com/phrdang/enoch-bot/pull/5)
* Fix multi-line string concatenation [#5](https://github.com/phrdang/enoch-bot/pull/5)

### [v0.0.10-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.10-beta.1)

* Fix style
* Use black and flake8 workflows
* Add welcome instructions scheduler jobs
* Refactor C4T info variables
* Organize directory structure

### [v0.0.9-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.9-beta.1)

{% hint style="warning" %}
Pre-release: **Enoch is \*actually\* (hopefully) working now**
{% endhint %}

#### Major feature changes

* Fixed `setup` command so that the bot doesn't need to be restarted/readded
  * `setup` command will now remove the **Unverified** role from the user if they completed 100% of the setup
  * `setup` command will now also send a user a "Setup Complete!" DM if they completed 100% of the setup (no errors)
  * `setup` command will now send a user a DM for each class they specified in the command, which contains class info (basically the attributes of each `Class` object)
* Added `on_member_join` event so that custom C4T welcome DM is sent to a user who just joined the server

#### Major under the hood changes

* Added `Class` class to make retrieving class info easier
* Started breaking up the `setup` function into helper functions to reduce complexity
* Started using `.json` files for links and class info instead of `.py` files
* Separated the `Default` cog into 2 cogs: `Links` and `Utility`

### [v0.0.8](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8)

* Finish tutorial part 14 - custom help command, add basic C4T setup functionality

### [v0.0.8-beta.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8-beta.2)

{% hint style="warning" %}
Pre-release: **Enoch bot is actually working now**
{% endhint %}

* Added an `enoch` (hidden) command to the Fun cog
* Added a "Playing Game" status for the bot to display the `help` command

### [v0.0.8-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8-beta.1)

{% hint style="warning" %}
Pre-release: **Enoch Bot Beta**
{% endhint %}

* Enoch bot is here! See features in [#1](https://github.com/phrdang/enoch-bot/pull/1).

### [v0.0.7](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.7)

* Finish tutorial Part 11 - command specific error handling

### [v0.0.6](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.6)

* Finish tutorial Part 10 - introduction to commands

### [v0.0.5](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.5)

* Finish tutorial Part 9 - introduction to cogs

### [v0.0.4](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.4)

* Finish tutorial Part 8 - scheduling tasks

### [v0.0.3](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.3)

* Finish tutorial Part 7 - handling errors

### [v0.0.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.2)

* Finish tutorial Part 6 - sending messages, embeds

### [v0.0.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.1)

* Finish tutorial Part 5 - making the bot run
