No description
Find a file
Alyssa Batula c350665076 Automatically mute users who attempt to post a slur, fixes #8062 (#8177)
* Initial psuedo-code for checking for slurs in messages

* Initial working prototype for blocking posting of slurs. Moved check from group.js to the chat api. Still needs: to permanently revoke chat privileges, to notify the moderators, a better method for checking for the blacklisted words, and a way to get the real list of words to check.

* Permanently revoke chat privileges when attempting to post a slur.

* Removed console logs

* Fixing rebase

* Do not moderate private groups

* Moved slur check to a generic check for banned words function

* Moved list of slurs to a separate file, fixed misplacement of return in ContainsBannedWords() function

* Slurs are blocked in both public and private groups

* Added code to send a slack message for slurs

* Fixed formatting issues

* Incorporated tectContainsBannedWords() function from PR 8197, added an argument to specify the list of banned words to check

* Added initial tests for blocking slurs and revoking chat priviliges

* Uncommented line to save revoked privileges

* Check that privileges are revoked in private groups

* Moved code to email/slack mods to chat api file

* Switched to BadRequest instead of NotFound error

* Restore chat privileges after test

* Using official placeholder slur

* Fixed line to export sendSubscriptionNotification function for slack

* Replaced muteUser function in user methods with a single line in the chat controller file

* Reset chatRevoked flag to false in a single line

* Switched method of setting chatRevoked flag so that it is updated locally and in the database

* First attempt at the muteUser function: revokes user's chat privileges and notifies moderators

* Manual merge for cherry-pick

* Initial working prototype for blocking posting of slurs. Moved check from group.js to the chat api. Still needs: to permanently revoke chat privileges, to notify the moderators, a better method for checking for the blacklisted words, and a way to get the real list of words to check.

* Permanently revoke chat privileges when attempting to post a slur.

* Removed console logs

* Created report to be sent to moderators via email

* Do not moderate private groups

* Moved slur check to a generic check for banned words function

* Moved list of slurs to a separate file, fixed misplacement of return in ContainsBannedWords() function

* Slurs are blocked in both public and private groups

* Added code to send a slack message for slurs

* Fixed formatting issues

* Incorporated tectContainsBannedWords() function from PR 8197, added an argument to specify the list of banned words to check

* Added initial tests for blocking slurs and revoking chat priviliges

* Uncommented line to save revoked privileges

* Check that privileges are revoked in private groups

* Moved code to email/slack mods to chat api file

* Switched to BadRequest instead of NotFound error

* Restore chat privileges after test

* Using official placeholder slur

* Fixed line to export sendSubscriptionNotification function for slack

* Replaced muteUser function in user methods with a single line in the chat controller file

* Reset chatRevoked flag to false in a single line

* Switched method of setting chatRevoked flag so that it is updated locally and in the database

* Removed some code that got re-added after rebase

* Tests for automatic slur muting pass but are incomplete (do not check that chatRevoked flag is true)

* Moved list of banned slurs to server side

* Added warning to bannedSlurs file

* Test chat privileges revoked when posting slur in public chat

* Fix issues left over after rebase (I hope)

* Added code to test for revoked chat privileges after posting a slur in a private group

* Moved banned slur message into locales message

* Added new code to check for banned slurs (parallels banned words code)

* Fixed AUTHOR_MOTAL_URL in sendTxn for slur blocking

* Added tests that email sent on attempted slur in chat post

* Created context for slur-related-tests, fixed sandboxing of email. Successfully tests that email.sendTxn is called, but the email content test fails

* commented out slack (for now) and cleaned up tests of sending email

* Successfully tests that slur-report-to-mods email is sent

* Slack message is sent, and testing works, but some user variables seem to only work when found in chat.js and passed to slack

* Made some fixes for lint, but not sure what to do about the camel case requirement fail, since that's how they're defined in other slack calls

* Slack tests pass, skipped camelcase check around those code blocks

* Fixed InternalServerError caused by slack messaging

* Updated chat privileges revoked error

* fix(locale): typo correction
2017-07-19 14:06:15 -07:00
.ebextensions Node 6 and NPM 4 (#8081) 2016-12-12 21:51:53 +01:00
.github Clean up references to repo as HabitRPG/habitrpg (#8742) 2017-06-06 18:51:54 -07:00
database_reports Clean up references to repo as HabitRPG/habitrpg (#8742) 2017-06-06 18:51:54 -07:00
gulp Client Tasks v1 / Bootstrap configurable (#8822) 2017-06-16 18:58:34 +02:00
keys/google change Google iap-live for Android mobile app gem purchases, at negue's request 2015-12-03 06:22:59 +10:00
kubernetes Kubernetes support for dev environments (#8753) 2017-07-01 09:30:08 -07:00
migrations feat(content): Orca Pets and Splashy Pals 2017-07-11 21:31:26 +00:00
scripts Added new web profile for checkout (#8699) 2017-07-06 15:16:54 -07:00
test Automatically mute users who attempt to post a slur, fixes #8062 (#8177) 2017-07-19 14:06:15 -07:00
vagrant_scripts Updated vagrant script to fix bcrypt missing error (#8670) 2017-05-07 07:57:50 +10:00
webpack client: fix production path for chunks 2017-06-08 19:17:35 -07:00
website Automatically mute users who attempt to post a slur, fixes #8062 (#8177) 2017-07-19 14:06:15 -07:00
.babelrc API v3 [WIP] (#6144) 2016-05-23 13:58:31 +02:00
.bowerrc rename website/client to website/client-old 2016-09-14 15:06:32 +02:00
.buildpacks refactor(tasks) improve UI consistency 2014-11-27 10:32:57 +00:00
.codeclimate.yml Only list javascript in .codeclimate.yml 2015-08-02 17:54:05 +02:00
.dockerignore Docker improvements (#8297) 2016-12-28 09:33:24 +01:00
.editorconfig Create .editorconfig 2016-09-07 08:44:57 -05:00
.eslintignore Upgrade lodash to v4 and lint more files (#8495) 2017-03-01 17:10:48 +01:00
.eslintrc fix: eslint: re-order packages 2016-12-26 16:04:36 +01:00
.gitignore Vue Store (#8071) 2016-09-29 13:32:36 +02:00
.nodemonignore Vue Project Setup (#8018) 2016-09-18 21:51:20 +02:00
.nvmrc Node 6 and NPM 4 (#8081) 2016-12-12 21:51:53 +01:00
.travis.yml Include apidoc in test script (#8797) 2017-06-08 10:40:10 -07:00
apidoc.json chore: Remove versioning from apidoc 2016-05-25 11:11:39 -05:00
bower.json upgrade hello.js to use Facebook API v2.7 2017-03-11 12:25:38 +01:00
config.json.example Added new web profile for checkout (#8699) 2017-07-06 15:16:54 -07:00
docker-compose.dev.yml Docker improvements (#8297) 2016-12-28 09:33:24 +01:00
docker-compose.yml Docker improvements (#8297) 2016-12-28 09:33:24 +01:00
Dockerfile Renamed production docker file (#8850) 2017-07-05 13:29:25 -07:00
Dockerfile-Production Merge branch 'release' into develop 2017-07-13 22:29:35 +00:00
Gruntfile.js New Client: working navigation (#8131) 2016-11-18 19:20:25 +01:00
gulpfile.js fix gulp in production 2017-06-17 19:02:03 +02:00
LICENSE Fix grammar mistakes in license file 2016-06-21 06:42:20 -05:00
npm-shrinkwrap.json 3.101.2 2017-07-10 20:07:46 +00:00
package.json 3.104.0 2017-07-19 18:38:43 +00:00
Procfile API v3 [WIP] (#6144) 2016-05-23 13:58:31 +02:00
README.md update / delete outdated README.md files (#8719) 2017-05-14 14:40:13 +10:00
VAGRANT.md HabitRPG -> Habitica text changes 2015-07-31 18:05:10 +10:00
Vagrantfile.example Change install_node.sh to install npm 3 instead. Default RAM for vagrant box is now 4 GB. (#7478) 2016-05-28 11:53:39 +10:00

Habitica Build Status Code Climate Coverage Status Bountysource

Habitica is an open source habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.

We need more programmers! Your assistance will be greatly appreciated.

For an introduction to the technologies used and how the software is organized, refer to Guidance for Blacksmiths.

To set up a local install of Habitica for development and testing on various platforms, see Setting up Habitica Locally.