Commit Graph

993 Commits

Author SHA1 Message Date
FoxxMD
2f93774346 fix: Fix unnecessary subreddit fetch call on init
Snoowrap doesn't add fetch property to objects from listings so even though subreddit may already be fetched it always re-fetches, using an api call. Do a dirty fetch check here to prevent wasting calls when we are sure the subreddit is fetched.
2022-07-11 12:18:30 -04:00
FoxxMD
e2f6a92a90 fix(filter): Fix logic for assigning number of reports to compare 2022-07-11 10:01:58 -04:00
FoxxMD
36c6f7f1b8 feat(ban): Implement templating for ban note/reason 2022-07-08 10:51:47 -04:00
FoxxMD
0379ad17b9 feat: Add more Activity data to templating data #94
* Add votes, reports, upvote ratio, nsfw, op, and spoiler
* Update templating documentation
2022-07-08 10:24:10 -04:00
FoxxMD
02ed9f91f9 feat: Improve api health monitoring
* Potentially fix #30
* Break out api sampling and output into own function
* Add influx metrics for used calls and sample faster
* Fix default tags inheritance
2022-07-07 13:05:14 -04:00
FoxxMD
9fcc3db7b2 fix(modnote): Use correct activity identifier for reddit_id 2022-07-07 09:43:25 -04:00
FoxxMD
65ea84a69d refactor(database): Move Event creation to earlier in activity handling function for a more accurate processing time 2022-07-06 17:41:14 -04:00
FoxxMD
a4b8d3a8ef feat(database): Add api health measurement to influxdb 2022-07-06 17:11:38 -04:00
FoxxMD
2692a5fecb fix(database): Fix processing/queued time value 2022-07-06 16:48:39 -04:00
FoxxMD
192c1659a0 feat(database): Initial influx db implementation #84 2022-07-06 15:14:58 -04:00
FoxxMD
cc241e41f4 refactor(logging): Improve log retention performance 2022-07-05 12:30:51 -04:00
FoxxMD
b6dedae7a1 fix(usernote): Fix regression with note types
Can use a custom note type so don't restrict to only the documented ones
2022-07-01 12:06:48 -04:00
FoxxMD
f2783bd7a4 feat(config): More error handling and internal improvements to config fragment parsing
* Refactor config fragment parsing function to always return an array for simpler usage in hydrate function
* Add error handling to all fragment calls so user can get a clear description of which fragment failed, contextually
2022-07-01 11:46:54 -04:00
FoxxMD
2efe41eadd fix(cache): Use correct cache key and improve external url cache re-use
* Fix incorrect variable used for cache key that prevented cache from working at all (oops)
* Don't add subreddit context to ext url cache key so it can be re-used from any subreddit
2022-07-01 11:45:11 -04:00
FoxxMD
ebd60b9abe feat(config): Support config fragments as array of fragments #76 2022-07-01 10:20:53 -04:00
FoxxMD
2a16df49a4 feat(config): Implement cache control for config fragments #76 2022-06-30 14:44:04 -04:00
FoxxMD
0d6841259b feat(config): Initial implementation for partial configs #76 2022-06-30 13:04:02 -04:00
FoxxMD
8c0755c8c2 working when no includes in config 2022-06-30 12:39:57 -04:00
FoxxMD
5e1da5bc5d feat(bot): Implement better in-situ subreddit add/removal
* Refactor manager build/init from bot to be independent of bot init process
  * Remove/destroy managers for subreddits no longer moderated by bot account or not in operator list
  * Add/create managers for subreddits that should be moderated
* Run manager build function during heartbeat to sync managers
2022-06-28 13:24:56 -04:00
FoxxMD
242c6a49b5 docs(usernote): Document usernote types in schema and in documentation 2022-06-27 09:33:57 -04:00
FoxxMD
d7cab4092d fix(ui): Hide save reason input when user cannot save 2022-06-16 14:25:06 -04:00
FoxxMD
0370e592f9 feat(ui): Add text input to specify reason for wiki edit on config page 2022-06-16 09:43:27 -04:00
FoxxMD
116d06733a fix(ui): Stop trying live stats if an error is encountered 2022-06-14 22:33:12 -04:00
FoxxMD
22a8a694a7 fix(modnote): Fix initial implementation bugs
* Improve action criteria to FullCriteria function
  * Don't include undefined properties
  * Iterate entries with switch to simplify property transformations
* Fix mod action test switch case matching to be case-insensitive (same as key)
* Fix missing/bad assignments for filtering mod actions
* Fix typo usage of foundNoteResult in modActions case block
* Throw error if mod action criteria isn't recognized as note/log instead of silently falling back to log
2022-06-14 12:55:35 -04:00
FoxxMD
2ed24eee11 fix(logging): Fix missing modAction property transformation for filter summary 2022-06-14 12:51:47 -04:00
FoxxMD
8822d8520a fix(check): Fix check data used to determine trigger text hint 2022-06-14 12:51:02 -04:00
FoxxMD
7a86c722fa feat(author criteria): Add temporal filtering to usernotes and mod notes 2022-06-13 13:42:57 -04:00
FoxxMD
2ca4043c02 chore(organization): Move comparison and comparison parsing functions into Comparisons file 2022-06-13 12:13:20 -04:00
FoxxMD
4da8a0b353 feat(author criteria): Refactor criteria test order to optimize api usage #92
* Test props in order of least likely to use an API call
  * Enables simplifying shadowbanned test and allows testing for more properties on shadowbanned user
2022-06-13 11:50:12 -04:00
FoxxMD
492ff78b13 chore(modnotes): Cleanup interfaces and add missing activityType to modnote criteria 2022-06-10 13:34:04 -04:00
FoxxMD
64a0b0890d feat: Improve/fix bot addition
* Fix existing bot removal
* Return response to client after testing client rather than after managers build to avoid long response time if bot has many subreddits
2022-06-10 12:31:56 -04:00
FoxxMD
546daddd49 feat(config): granularly merge bot data into yaml operator config 2022-06-10 12:15:46 -04:00
FoxxMD
f91d81029f feat(modnote): Implement modnotes as part of author criteria 2022-06-09 15:28:29 -04:00
FoxxMD
68ee1718e0 feat(modnote): Prevent getting modnotes for subreddit not currently moderated 2022-06-09 12:58:29 -04:00
FoxxMD
c0d19ede39 feat(modnote): Improve handling of modnote data and implement caching
* Normalize (depopulate from snoowrap) mod note raw data so it can be constructed agnostic of source (cache or api)
* Implement cache GET for modnotes with default TTL of 60 seconds
* Refactor mod note action and implement cache PUT when new notes are added
2022-06-09 12:54:23 -04:00
FoxxMD
bb05d64428 feat: Improve reddit entity type guards
* Use 'in' operator to avoid triggering snoowrap proxy
* Add subreddit type guard
* Fix missing undefined check for names
2022-06-09 12:17:51 -04:00
FoxxMD
1977c7317f fix(modnote): Fix modnote mapping from created response 2022-06-07 14:36:36 -04:00
FoxxMD
6f784d5aa2 feat(modnote): Implement fetching modnotes and refactor to get in sync with edge 2022-06-07 14:29:33 -04:00
FoxxMD
4b5c9b82e4 Merge branch 'edge' into modnote
# Conflicts:
#	src/Action/ActionFactory.ts
#	src/Action/index.ts
#	src/Common/types.ts
#	src/Schema/Action.json
#	src/Schema/App.json
#	src/util.ts
2022-06-07 12:52:58 -04:00
FoxxMD
0315ad23ae feat(ui): Prevent indexing by robots 2022-06-02 13:45:39 -04:00
FoxxMD
da70753f42 feat(database): Add missing indexes to improve event retrieval performance
I was under the impression primary keys were always indexed but that is not the case, at least for postgres. This migration explicitly creates uniques indexes for all tables that use random ids and adds other indexes to filter/premise/result tables on other FK strings. Improves event retrieval timing dramatically.
2022-05-26 14:36:15 -04:00
FoxxMD
d59f1b63d1 chore: Bump version 2022-05-26 09:59:17 -04:00
FoxxMD
7542947029 feat(sentiment): More improvements to sentiment and language processing
* Implement separate language detection functionality
* Clearer/simpler sentiment processing
* Add languageHints to help coerce low confidence language detection
* Add test cases for lang detection, sentiment detection, and sentiment tests
* Fix neutral range -- was not using normalized score range
2022-05-25 12:59:37 -04:00
FoxxMD
2d02434e7e feat(sentiment): Better use of NLPjs and more robust language detection
* Build NLP container ad-hoc so only supported languages are included from npm
* Use vader/wink as heuristics for detecting language when content is very short
* Add languageHint option for sentiment config to make coercing a confident sentiment easier
* Refactor lang processing to fail the sentiment test rather than throwing an error when language is not support/not confident -- provides more insight into outcome
2022-05-24 16:34:37 -04:00
FoxxMD
90b8f481ec chore: Remove unused dependencies #88 2022-05-24 09:33:29 -04:00
FoxxMD
9ad9092e9e feat(dispatch): Fix regression introduced when removing processing state from dispatch action lifecycle
Should have removed entire check for processing but only removed part of if condition, resulting in matched activities never being returned
2022-05-23 14:23:16 -04:00
FoxxMD
12adfe9975 fix(approve): Improve activity type detection and add more result output 2022-05-23 14:22:01 -04:00
FoxxMD
83dceddae8 feat(ui): Simplify live stats by moving into browser logic
* Refactor to use interval in browser to call to api proxy endpoint and get live stats directly instead of using websockets. Generally simplifies things.
* Remove empty/superfluous data from cache stats returned for live data
2022-05-23 14:13:28 -04:00
FoxxMD
99b46cb97f fix(polling): Improve logic for returning only 'new' Activities from polling sources
Prevents CM from iterating through n+1 pages of polling sources (mostly unmoderated) due to a source-of-truth change

See comments for scenario this helps avoid
2022-05-23 12:35:42 -04:00
FoxxMD
3ac07cb3e2 fix(cache): Fix cache init bug caused by passing additional (unnecessary) args 2022-05-23 11:12:51 -04:00