Commit Graph

760 Commits

Author SHA1 Message Date
FoxxMD
9ef58dfd27 feat(filter): Implement testing for which moderator approved or removed an activity
Extends removed/approved criteria to accept a string, strings, or object with testing behavior and names
2022-04-14 13:31:56 -04:00
FoxxMD
e4a9e47d6a fix(filter): Handle scenario where submissionState is incorrectly used on submission itemIs
* Check for found criteria results when building summary
* change log level from debug to warn when submissionState is detected on submission itemIs
2022-04-14 12:10:41 -04:00
FoxxMD
bda4d82191 feat: Implement filtering subreddits by own profile
isOwnProfile in SubredditState allows checking if any Activity belongs to the user profile of the Author of the Activity being checked
2022-04-12 12:13:34 -04:00
FoxxMD
26a563def3 fix: Correct display text for generic value comparison
Check if percent capture group is undefined OR empty
2022-04-12 08:53:55 -04:00
FoxxMD
f0eb1f040e feat(usernote): Make user note wiki edit reason actually useful
Include the note type, user affected, submission/comment id, and preview of text in edit reason
2022-04-07 09:53:33 -04:00
FoxxMD
5896623822 fix(ui): Improve action data parsing and fix undefined type 2022-04-07 09:26:49 -04:00
FoxxMD
3c6bd9f1e4 fix(ui): Fix passed value for instance id when no friendly name is set
Fixes #85
2022-04-07 09:17:11 -04:00
FoxxMD
af28ab5291 fix: Explicitly set sorting method for author activities
Don't rely on default sort chosen by reddit as comment/overview are sorted by new but submitted is sorted by hot (why??). Make sure requests always sort by new to prevent inconsistencies.
2022-04-06 19:03:45 -04:00
FoxxMD
27786d9e6f refactor(usernotes): Ensure notes subreddit is entirely independent of any parent object
To prevent any accidental referenced object property re-assignment only use subreddit name to construct subreddit for usernotes. Want to make sure notes don't get read/written to different subs by mistake...this shouldn't be happening but just to be double extra sure.
2022-04-06 13:26:40 -04:00
FoxxMD
dc25078b01 fix(cache): Fix missing re-hydration of cached subreddits 2022-04-06 13:03:16 -04:00
FoxxMD
b01e2a98f9 feat(contributor): Implement subreddit contributor functionality
* Add action to add/remove subreddit contributor
* Add 'isContributor' author criteria
* Use cache to store subreddit contributors
2022-03-18 11:38:04 -04:00
FoxxMD
b2a6ae440e fix(schema): Update schema to include new snoowrap options 2022-03-18 10:19:38 -04:00
FoxxMD
935d983626 feat(client): Implement snoowrap retry on timeout errors
Makes CM less sensitive to random blips in reddit API by enabling snoowrap to retry some network-issue related error codes alongside status codes

* Add timeoutCodes as an operator configurable array of error codes that is passed to extended snoowrap
* Patch snoowrap to check for timeout codes on request error and use retry logic if found
* Additionally, add retryErrorCodes (status codes) to operator configuration
2022-03-16 12:31:04 -04:00
FoxxMD
f6fb0dc877 docs: Add development instructions for mocking reddit api network issues 2022-03-16 12:02:30 -04:00
FoxxMD
3dd16bba79 fix(config): Fix snoowrap options not being passed to bot 2022-03-16 12:01:03 -04:00
FoxxMD
c46fe6f128 feat(dispatch): Add cancel action in ui for delayed actions 2022-03-14 12:06:43 -04:00
FoxxMD
074c3c7340 fix(migrations): Escape prefix value before parsing to regex 2022-03-11 15:25:12 -05:00
FoxxMD
8cd8374bbe feat(filters): Add more options for filtering by flair
* Add boolean options to test for "any" or "no" flair on author or submission
* Cleanup flair testing logic
2022-03-11 15:08:37 -05:00
FoxxMD
aa0541f09b refactor(author filter): Improve caching for author filter
* Refactor main author filter logic into subredditresources to take advantage of cache provider
* Implement methods to retrieve and cache subreddit moderators and author information
2022-03-11 14:21:16 -05:00
FoxxMD
eee166467d feat(ui): Improve live stats utilization
* Refactor live stats to work for "All Subreddits" as well as individual subs
* Refactor live stats to take place of opStats and update almost all bot stats live now (only cache breakdown TODO)
* Refactor opstats to return status of bots/subreddits only for ui indicators in tabs
2022-03-11 12:41:59 -05:00
FoxxMD
95b0e529e2 fix(schema): Relax schema for source type due to issues with generation 2022-03-10 14:58:08 -05:00
FoxxMD
45be87a72a fix(item filter): Fix unknown value results
* For unknown value on activity use correct reason and add to property map
* Test for undefined property in property map (shouldn't happen)
2022-03-10 13:04:16 -05:00
FoxxMD
d632364c7d fix(item filter): Fix multiple and unknown criteria
* Log different statements based on whether value or key was undefined
* Fix for-loop break when testing multiple criteria
2022-03-10 12:49:35 -05:00
FoxxMD
9e660214eb feat(schema): Add annotations for dispatched/source 2022-03-10 12:48:27 -05:00
FoxxMD
14340b3a65 fix(ui): Include dayjs plugin for sameOrAfter comparison 2022-03-10 12:47:50 -05:00
FoxxMD
b07402628e fix(dispatch): Push activity from user through firehose so delayed activities get same behavior as from polling 2022-03-10 11:42:30 -05:00
FoxxMD
035283a596 refactor(item filter): Improve source comparison
* Move activity source normalization and verification into own function (thrown on invalid source string)
* Correct source-filter comparison by comparing source to filter rather than other way around to make sure inclusive filter is passed
2022-03-10 11:41:36 -05:00
FoxxMD
cc46f00a22 refactor(dispatch): Rename everything associated with rerun to dispatch
* Also rename item filter from 'dispatch' to 'dispatched' to match verb tense of other state properties
* Simplify identifier property name in config to just 'identifier' -- there's enough context for what it is already
2022-03-10 11:05:21 -05:00
FoxxMD
27263928cd Merge branch 'edge' into rerun 2022-03-10 10:14:58 -05:00
FoxxMD
0f122466ad feat(editor): Retrieving config schema from local URL instead of github
So that our schemas finally match whats in our code!
2022-03-10 10:12:31 -05:00
FoxxMD
32cdb29515 fix(ui): Only fetch reddit status if status element is present on page 2022-03-10 10:11:51 -05:00
FoxxMD
fe311ced32 feat(testing): Add suites for testing activity state 2022-03-09 17:15:40 -05:00
FoxxMD
e41bea7e6b fix(util): Always return false for filtered activity check if user is not a moderator 2022-03-09 17:15:21 -05:00
FoxxMD
9d169cebf3 Add test js/maps to gitignore 2022-03-09 17:14:53 -05:00
FoxxMD
ff3e704cdf fix(client): Simplify client logging to ui and fix instance name
* Correctly render system logs to html
* Simplify websocket logging so it matches how logs are received o browser from server
* Fix instance redirect name when no friendly is set for api config
2022-03-09 12:11:14 -05:00
FoxxMD
caaeb2eefb fix(ui): Set system logs as seen in special case 2022-03-09 12:09:05 -05:00
FoxxMD
8991797d35 feat(testing): WIP added initial testing framework and some util tests
Using mocha, chai, and nyc

* tests for parsing string for numeric value comparison
* tests for parsing string for durations and duration comparisons
* tests for parsing reddit entity (subreddit/user) from string
* tests for parsing submission/comment id from reddit permalink string
* tests for initial config parsing/merging

Still can't get nyc to get coverage for everything in src using "all" -- causes reporting to show 0 for everything??
2022-03-09 10:59:43 -05:00
FoxxMD
aa95c26b2a Merge branch 'edge' into rerun 2022-03-08 21:30:53 -05:00
FoxxMD
11cc90e2d5 feat: Add modnote oauth permission for auth helper 2022-03-08 21:30:37 -05:00
FoxxMD
d11e511f67 Merge branch 'edge' into rerun 2022-03-08 13:02:25 -05:00
FoxxMD
a3708ca279 refactor(ui): Improve live stats usage and add delayed item info
* Update activities and bot usage stats (just overview) with live data from websocket
* Add Delayed count with tooltip to show delayed items overview
2022-03-08 13:00:40 -05:00
FoxxMD
14d0417a25 refactor(dispatch): Rename rerun to dispatch action 2022-03-07 17:04:55 -05:00
FoxxMD
f4103206db docs: some clarifications in flow control wording 2022-03-07 13:17:17 -05:00
FoxxMD
c9b1bfed40 fix(docs): mermaid issue was being inside closed detail block
For some reason. Removing blocks fixed rendering error
2022-03-07 13:11:45 -05:00
FoxxMD
7f764b4d99 fix(docs): Replace colon causing issues with mermaid diagram rendering 2022-03-07 13:06:12 -05:00
FoxxMD
fb7ddbba70 docs: Add overview for runs and flow control #73 2022-03-07 13:02:17 -05:00
FoxxMD
85b1d13718 docs: Refactor docs to use runs syntax
* Add Runs to main docs readme and concepts
* Add high level diagram in main docs readme to show CM lifecycle
* Refactor subreddit/rule examples to use runs syntax
2022-03-07 10:28:48 -05:00
FoxxMD
7f2191a11a fix: Fix bug where submission identifier was accessed via 'id' instead of 'name' property
* Was causing uncaught promise rejection in userflairaction because it should have been accessing name instead of id
* Wrap all as/is utility functions where value may be from cache (plain object) or proxy (from snoowrap) with try-catch to prevent any more uncaught promise rejections -- would rather swallow silently (for now) than crash the entire application
2022-03-06 19:30:25 -05:00
FoxxMD
c4adf4f495 feat(ui): More identifier readability and succinctness improvements 2022-03-04 21:50:48 -05:00
FoxxMD
95d146a504 feat(ui): Make dispatch action context in actioned event more succinct
Move summary into tooltip and add relevant details to header
2022-03-04 21:39:41 -05:00