-
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update documentation and prepare 2.0 release
- Loading branch information
1 parent
639321c
commit d3b6e08
Showing
14 changed files
with
395 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Introduction | ||
|
||
![HitCount](http://hits.dwyl.com/gideontong/Amy.svg) | ||
|
||
First off, thank you for considering contributing to Amy. It's people like you that make Amy who she is today. Following these guidelines helps to communicate that you respect the time of the developers ([Dudes of 708](https://www.youtube.com/channel/UCdbqUWT3_0WgybqNuCX9uJA)) managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. | ||
|
||
## What We Need | ||
|
||
On the developer side, our main developer, [Gideon Tong](https://gideontong.com) is doing just fine. If you spot a bug or other issue, you can file an issue on the [bug tracker](https://github.com/gideontong/Amy/issues) or submit a [pull request](https://github.com/gideontong/Amy/pull). The team (mostly Gideon) will read through your pull rquest or issue and decide its importance and whether or not to merge any changes you have requested or proposed. | ||
|
||
However, a bigger need that we want to fill is improving documentation and writing tutorials on how to start up and use this bot. Right now, files in the `/docs` folder of this repository are pretty sparse (this is true as of June 20, 2020 and has been true since the inception of this application, when it was originally in Python) and it would be good to expand on how to set up the bot and more in-depth beginner-friendly tutorials and guides to do such a thing. | ||
|
||
Regardless, Amy is an open source project and we love to receive contributions from our community - which includes you! So there are many ways to contribute, and you can even help out by writing a blog post about Amy or trying her out so you can get an idea of what the feature set is and proposing new changes and features that could be added to her eventually as well. | ||
|
||
## What We don't Need | ||
|
||
Please don't use the issue tracker for support questions. Rather, join the [Dudes of 708 Discord server](https://discord.gg/WUGMTcZ) and try to get help from us there instead. In addition, we don't support toxicity or negativity, so if you wish to propogate those kinds of attitudes, we request that you do not get involved in this project. If you believe that such an attitude is present already, please email [Gideon Tong](https://gideontong.com) `<gideon [at] gideontong.com>` directly to take care of the matter. | ||
|
||
## Ground Rules | ||
|
||
This includes not just how to communicate with others (being respectful, considerate, etc) but also technical responsibilities (importance of testing, project dependencies, etc). | ||
|
||
### Responsibilities | ||
|
||
* Create issues for any major changes and enhancments that you wish to make. Discuss things transparently and get community feedback. | ||
* Don't make major changes without input from the community first, unles you are recognized as a major developer. | ||
* Keep feature versions as small as possible, preferrably one new feature per version. | ||
* Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. | ||
|
||
## Your First Contribution | ||
|
||
Learning how to make a pull request for the first time? You can learn how from this [free workshop series](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)! Still confused? Also check out this great resource from [First Timers Only](https://www.firsttimersonly.com/)! | ||
|
||
There might be some language like "pull request" or even "verbose" as words you might not understand. If you can't figure it out from 3-5 minutes of Google searching, feel free to email [Gideon Tong](https://gideontong.com), join the [Dudes of 708 Discord server](https://discord.gg/WUGMTcZ), or even ask for help on common developer forums like Reddit or Stack Overflow. | ||
|
||
### This Guide | ||
|
||
Hey! You made it this far. Truth is, the contribution guide isn't finished yet, and we don't have a code of conduct. Maybe you could write one? In terms of this contribution guide, it would be good to write more tutorials on how to start your first pull request. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,106 @@ | ||
# Amy | ||
|
||
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) | ||
[![Build Status](https://travis-ci.com/gideontong/Amy.svg?branch=master)](https://travis-ci.com/gideontong/Amy) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) ![HitCount](http://hits.dwyl.com/gideontong/Amy.svg) ![Latest Release](https://img.shields.io/github/v/release/gideontong/Amy) ![MIT License](https://img.shields.io/github/license/gideontong/Amy) | ||
|
||
![Amy](https://i.imgur.com/q2YAmF5.png) | ||
|
||
Some information is coming soon! Quick links: [setup process](setup) and [usage](usage). | ||
|
||
## Upcoming Changes | ||
|
||
* *Amy* no longer responds to you if you mention *VALORANT* in a link | ||
|
||
## Upcoming Features | ||
|
||
* *Amy* will now randomly troll you | ||
* The probability for which *Amy* trolls you is configurable (currently 1%) | ||
* What *Amy* trolls you with is configurable | ||
* Added easter eggs to *Amy* | ||
* Added collectible achievements | ||
* Added collectible secret achievements | ||
* Normally, *Amy* will give you the achievement, but there are some special achievements that *Kevin* awards | ||
* Added a new custom about screen when you join a server | ||
* Added a new custom welcome message when you join a server | ||
* Added *Kevin* | ||
* *Kevin* will randomly decide if it's time for you to die | ||
* The probability for which you die by *Kevin* is configurable (currently 3%) | ||
|
||
## Upcoming Commands | ||
|
||
### Amy's Commands | ||
|
||
* `!clear` will now clear recent chat history (**admins only**) | ||
* `!welcome` triggers the new about screen manually (**admins only**) | ||
* `!loadingscreentips` will show you 3 loading screen tips before disappearing (**admins only**) | ||
* `!generateachievement (text)` will generate a test achievement (**admins only**) | ||
* `!grantachievement (ID)` will grant yourself the achievement (**admins only**) | ||
* `!revokeachievement (ID)` will revoke yourself from the achievement (**admins only**) | ||
* `!tell` will force the bot to say something (**admins only**, or if you are Amy) | ||
* `!tell (channel ID) (message)` will send a message to the channel with that specific ID | ||
* `!tell (channel) (message)` will send a message to the channel mentioned | ||
* If you do not specify a message and only a channel, Amy will send the name of the channel to the current channel | ||
* Asking Kevin to send a message to a channel that does not exist will result in doing nothing | ||
* `!printemoji (ID)` will repeat the emoji (**admins only**, or if you are Amy) | ||
* Since this does not provide input validation, it's been reserved for admins until further notice | ||
* `!qr (text, website, or phone number)` will generate a QR code | ||
* `!website` takes you to [Amy's website](https://amyhelps.ml) | ||
* `!joined` will tell you when you joined Discord | ||
* `!docs` will point you to how to use Amy | ||
* `!github` will take you to Amy's source code | ||
* `!accountage` calculates how old your Discord account is | ||
* `!howold` is an alias for `!accountage`, as well as command alias support | ||
* `!howold`, `!accountage`, and `!joined` allow you to check someone else's age or join date by providing an argument | ||
* `!insaneasylum` returns the infamous [Insane Asylum playlist](https://www.youtube.com/playlist?list=PL3q1l2_RQCr7fk0jyOmNwiUp9F6CaDyQd) | ||
* `!youtube` takes you to the [Dudes of 708 YouTube channel](https://www.youtube.com/channel/UCdbqUWT3_0WgybqNuCX9uJA) | ||
* `!rules` returns the list of rules for the server | ||
* `!achievements` will show you your achievement progress | ||
* `!ping` will tell you to ask GreustBot or Akov instead of Amy | ||
* `!8ball` will now show you a 8-ball message after showing you some loading screen tips | ||
|
||
### Kevin's Commands | ||
|
||
* `?tell` will force Kevin to say something (**admins only**, or if you are Kevin) | ||
* `?tell (channel ID) (message)` will send a message to the channel with that specific ID | ||
* `?tell (channel) (message)` will send a message to the channel mentioned | ||
* If you do not specify a message and only a channel, Kevin will send the name of the channel to the current channel | ||
* Asking Kevin to send a message to a channel that does not exist will result in nothing happening | ||
* `?tell` has feature parity with Amy's `!tell` | ||
----- | ||
|
||
🐱🏍 Amy is your personal assisstant, reimagined. In other words, Amy is a Discord bot for the [Dudes of 708 Discord server](https://discord.gg/WUGMTcZ). You can also visit our [YouTube homepage](https://www.youtube.com/channel/UCdbqUWT3_0WgybqNuCX9uJA) to see the kind of content that is relevant to the usage of Amy. | ||
|
||
Amy builds upon over a decade of experience in social interactions at scale using various messaging platforms, with the current platform of choice being [Discord](https://discord.com) as the community comes together to build best-in-class ideas and practices for our own purposes. | ||
|
||
Amy currently runs on [Gideon Tong's Server Network](https://me.gideontong.com) and has been given her own private subdomain space. If you would like to get involved in helping to shape the evolution of not just Amy but also future smart personal assisstants, consider reading the [contributor's guide](CONTRIBUTING.md) to get started. | ||
|
||
----- | ||
|
||
## Table of Contents | ||
|
||
* **README** | ||
* [Contributor's Guide](CONTRIBUTING.md) | ||
* [Security Disclosures](SECURITY.md) | ||
* [Changelog](CHANGELOG.md) | ||
* [Getting Started](usage/README.md) | ||
* [Getting Started for Developers](setup/README.md) | ||
* [Achievements](achievements/README.md) | ||
* [Data Model](storage/README.md) | ||
* [Backups](storage/BACKUP.md) | ||
|
||
----- | ||
|
||
## Features | ||
|
||
* Custom welcome, about, join, and help messages tailored to communities | ||
* Utility commands to find out user information | ||
* Moderation commands to help moderators manage a community and find out user details | ||
* Wipe recent channel history | ||
* Control and manage announcements | ||
* Easter eggs and collectible achievements to create friendly competition between memebers of a community | ||
* Intelligently respond to certain users | ||
* Calls members out when they delete a spicy message (like an image) | ||
* Randomly prank users of a Discord server | ||
* All values, variables, and settings are admin-configurable | ||
* Advanced permissions system with clear hierarchy and inhereitance | ||
* Multiple bot instances controlled via one dashboard | ||
* Automatic multi-process load balancing without dependencies | ||
|
||
Amy is in active development, and if you have a feature request, simply fill out an [issue](https://github.com/gideontong/Amy/issues) and we will get to it as soon as possible. | ||
|
||
### Achievements | ||
|
||
![Achievements](https://i.imgur.com/2k0UDC2.png) | ||
|
||
Amy supports custom achievements, which you can add your own instance of the bot (if you're running a custom instance for a private server), and soon will support admin-configurable achievements as well as default achievements that can be enabled globally (across servers) as well as only within a server. | ||
|
||
## Getting Started | ||
|
||
To get started, simply clone this repository to your hard drive. You'll need [Node 12.x](https://nodejs.org) or another JS code interpreter. Assuming you have Node installed, simply type | ||
|
||
```bash | ||
npm install --production | ||
``` | ||
|
||
and while Node grabs the dependencies for you, move the file in `config/secrets-blank.json` to `config/secrets.json` and replace `token` with your [Discord API key](https://discord.com/developers/applications). Then start the application with | ||
|
||
```bash | ||
npm start | ||
``` | ||
|
||
### Developers | ||
|
||
If you're a developer and would like to get started, see the [setup guide](setup/README.md). | ||
|
||
## Support | ||
|
||
If you need support, you can start with reference guides and Google searches. | ||
|
||
That said, if you have questions, feel free to [reach out to me](mailto:[email protected]) if you have any questions. | ||
|
||
## Contributing | ||
|
||
There are many ways you can contribute to the project, and we greatly appreicate all the work you want to put into helping me making Amy better! For example: | ||
|
||
* [Submit bugs and feature requests](https://github.com/gideontong/Amy/issues), and if you see a bug report, you can help verify it by testing it as well. | ||
* Review the documentation (*this page and more!*), then make a [pull request](https://github.com/gideontong/Amy/pulls) for anything from typos to new content. | ||
* Make comments on upcoming [changes to the source code](https://github.com/gideontong/Amy/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc). | ||
* Contribute to writing more comprehensive [unit tests](https://github.com/gideontong/Amy/tree/master/tests). | ||
|
||
If you'd like to contribute directly to the code base, see the [contributor's guide](CONTRIBUTING.md) before getting started. But thank you so much if you'd like to contribute! Just submit a [pull request](https://github.com/gideontong/Amy/pulls), as I review pull requests thoroughly and would love to see what you can cook up. If you want to just submit an idea instead, feel free to submit an [issue](https://github.com/gideontong/Amy/issues) instead. | ||
|
||
### Feedback | ||
|
||
If you have any feedback, feel free to take this opportunity to become a contributor and open an [issue](https://github.com/gideontong/Amy/issues). Additionally, you can email the maintainer [Gideon Tong](https://gideontong.com) at [[email protected]](mailto:[email protected]). | ||
|
||
### Maintainers | ||
|
||
Amy is maintained by [Gideon Tong](https://gideontong.com), whom you can contact by email at [[email protected]](mailto:[email protected]) if you have any private concerns, security disclosures, or would like professional support. If you feel that you have a security disclosure and would like an encrypted form of transport, you may reach out to me with the PGP key listed in the [security page](SECURITY.md) of this repository. | ||
|
||
#### Special Thanks | ||
|
||
Contributions and feedback from [Amy Nguyen](https://www.github.com/amytnguyen01/), [Max Buydakov](https://github.com/mbuyd), [Kevin Stubbings](https://github.com/Kwstubbs), [Brian Lam](https://github.com/brilam8), [Leo Zhang](https://github.com/Leo10250), and [Jesus Castillo](https://github.com/oscillatingneutrino) have been implemented into this project. | ||
|
||
Their contributions can be found in the contributor's graph, and range from finding typos in strings to creating feature request issues. Special thanks to Amy Nguyen for allowing her namesake to be the inspiration of this project. | ||
|
||
### Licensing | ||
|
||
**Amy** is licensed under the MIT License and is copyrighted by © Gideon Tong 2019-2020. She depends on the [Discord.js](https://discord.js.org), [node-qrcode](https://github.com/soldair/node-qrcode), [node-canvas](https://github.com/Automattic/node-canvas), and [log4js](https://github.com/log4js-node/log4js-node) Node packages, which are both licensed under the Apache-2.0 License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Security Policy | ||
|
||
## Supported Versions | ||
|
||
The following table shows which versions still recieve security updates. As always, the latest version will also recieve feature updates. | ||
|
||
| Version | Supported | | ||
| ------- | ------------------ | | ||
| 2.0.x | :white_check_mark: | | ||
| 1.3.x | :white_check_mark: | | ||
| < 1.2 | :x: | | ||
|
||
As 1.3.x is considered end of life, it will no longer recieve feature updates. However, additional security patches will be added as they are reported. | ||
|
||
If you are looking to deploy, deploy the latest build of version 1.3.x with the expectation to deploy 2.0.x when it releases. They will be both backwards and forwards compatible in configuration and data storage, as the version jump is due to a large addition in features. Reverting versions without backup will not result in failure to run the software, but it may cause sluggish performance or console.log stdout spam. | ||
|
||
## Reporting a Vulnerability | ||
|
||
Use this section to tell people how to report a vulnerability. | ||
|
||
If you find a vulnerability, feel free to use the [issue tracker](https://github.com/gideontong/Amy/issues) to report a bug. If it is a severe vulnerability that may allow something like RCE (remote code execution), email it to me at [[email protected]](mailto:[email protected]) instead. If you wish you encrypt your emails, you can reach me at [[email protected]]([email protected]). | ||
|
||
Sign your emails with the following key: | ||
|
||
```bash | ||
-----BEGIN PGP PUBLIC KEY BLOCK----- | ||
Version: OpenPGP.js v4.10.4 | ||
Comment: https://openpgpjs.org | ||
|
||
xsBNBFygFKIBCAC5APtHaFysyyybjWB5NF/4qW7o2dA7ClxgpaXY+lk6gfJ8 | ||
ZR72MvlRcHztUs3oaOZdMRwFZLplqFzCLnpWOTnqCE9tLUhhxqUpe20SYjz8 | ||
hhnTSZknlydqICJygtFd283SM19q2FCgO4QGYvfWKwktah3r4yWu0hHR2z1f | ||
V1vPnCKm6Tj3u9ZuslCHMTHpUWf47+hCSw4KjkIrdFFpD3hpb+zGTd1aRAS+ | ||
Nx9QBnqSxRS/JfLFqe3LDj9w/LsJA29r9FkRng8cAsN+m39wst4C06Xv8nOI | ||
Ob6ALUP0vyu5amd1ImU9jl4pOc0gkj8ZOizVPl6D3+l8C43bFD4Kn7ajABEB | ||
AAHNNyJnaWRlb250b25nQHByb3Rvbm1haWwuY29tIiA8Z2lkZW9udG9uZ0Bw | ||
cm90b25tYWlsLmNvbT7CwHUEEAEIAB8FAlygFKIGCwkHCAMCBBUICgIDFgIB | ||
AhkBAhsDAh4BAAoJEFxccyogf+mfZK0H/RcSW8el77DJpSNlin0hTCrZeoLq | ||
vikbFqIGNhSURUloYGrFrcOaMzMSblbqxyZ2bzm00zrvTTplo+UW7DdctaKE | ||
p2dlKFZMvIeEi4cAooXYYAKoD9qIMEnTbSD+wMp9qOE+29hO1axT2unXiO4Q | ||
Z1zynV6YpxoxE0RFTnO4mh5E960hn8RpyDJMm6ReJ4MvXcCXkpSP8y3FvZtl | ||
AHh5SmEwaAJoOBu0DBAwo821CaFEh2vtDdTQsEA2AxKXgen7ZK0h4X6czeAp | ||
s1X686XqE+piUNfYHNw5XP4b8aXskTmOeiSLPP8oHvuty4k+7EBJbYCbyPhS | ||
PRgK2M6ulnk5A/jOwE0EXKAUogEIAJ1TDFHi2Jo5N64W9iLpghv5g4rV1jSf | ||
08STsJpnnCzym7TXwk3wbdPnv0+1swjm5eEdfY8ruaeJXbzGlI+tYUFmhneQ | ||
6xLSDFeF5yaTMEKIjjF2pqXT2oyJNwhDVX6LJiv5quIqfVKLRBPPcE6OsQuq | ||
9SOt2P7pTwgPn0XyvuGkz7Qon0fzZ6G5c7h78sDHsfQPNvKVZnT9nDG7E5bM | ||
JzB5qQ3/e1Zeqh2o64bgzbEhBqgQ50xag3TYEKKaUWiLsVxnT8lgxq1U/Mdg | ||
ko3gofwE6fRJUXtgvLE1AGKF0Fh64ZJwUTNKHpOARiEBmhtjhLNn3YefaYQM | ||
XIerYh44rFMAEQEAAcLAXwQYAQgACQUCXKAUogIbDAAKCRBcXHMqIH/pny0f | ||
B/9YvF167tL41NiUtZYJpJKIVXcNC2r9jKALHxV+ji8Ylh3wIiJxs4+72m/5 | ||
Svqtp2ae9DGCdHeRhNQaBON/cCxNhSd0SLH+POhPUwuNPAtKDdoJRSdhmdcB | ||
WtS+XYB4kcsYnH5c4Hyp+SphlyS4jIcI1nigGbwhbhXbHtygZeu6CYVTkw53 | ||
McwC/rfGf9cjYE4hvC00gSw5zAUzMc2F7mLj17HfYfxHmOl3NZ9yKmyIwCaH | ||
nWIhHVlnDLomLffiI1amPMRqbM6PG+BZHbtGiRCG4wUIZ//ib3DnS0qNd94r | ||
eNhxckVFZD2iieJ0oCgEHA6t0vp3GZ+jblbfMQNzsyID | ||
=p6bO | ||
-----END PGP PUBLIC KEY BLOCK----- | ||
``` |
Oops, something went wrong.