Commit Graph

843 Commits

Author SHA1 Message Date
Chris Sexton dd262f524e twitch: Add IRC-Discord bridge
* Should connect a bridge to streamer's channel any time a stream starts
* Should disconnect when stream ends
* Add `track` and `untrack` commands to manually modify bridge
* Adds support for creating Discord threads
2022-09-18 17:49:27 -04:00
Chris Sexton a9a4c9274c pagecomment: omit user if using slash 2022-09-07 10:59:14 -04:00
Chris Sexton b670ecc647 pagecomment: add useragent and check for no title 2022-09-07 10:41:35 -04:00
Chris Sexton b8a199faba pagecomment: add /url command
* Updated discord library
* Added an author embed but it's not useful just yet
2022-09-06 17:26:07 -04:00
Chris Sexton 9e386cbd70 reminder: add missing line 2022-08-31 14:38:56 -04:00
Chris Sexton 8090d4209a reminder: add snooze functionality 2022-08-31 13:42:18 -04:00
Chris Sexton b59d84b301 topic: fix newline issue 2022-08-16 20:08:39 -04:00
Chris Sexton cf5e52c2b6 topic: add plugin 2022-08-16 19:57:29 -04:00
Chris Sexton f28026436a twitch: separate into regex commands and add user check 2022-08-09 08:14:36 -04:00
Chris Sexton 37e4dcb5c8 bot: add rate limiting
- emojy: lazy load images so they don't break/spam the server
2022-08-04 09:20:29 -04:00
Chris Sexton 7c0a777737 twitch: add reauthentication
- refactored secrets to be in config
- added missing format string to bot
2022-08-03 21:12:08 -04:00
Chris Sexton 45103cec62 admin: fix nick regex 2022-08-02 13:42:35 -04:00
Chris Sexton 7af94f3473 admin: conditionally require admin for nick change 2022-08-02 13:35:50 -04:00
Chris Sexton e92c89891f bot: add ability to change nick 2022-08-02 13:35:50 -04:00
Chris Sexton 3482c0c8e4 roles: enable the set offering command 2022-07-29 07:07:31 -04:00
Chris Sexton c3e1a72f9a bot: fix admin to respect ID instead of nick 2022-07-29 07:07:31 -04:00
Chris Sexton 1488033c52 why is this file here? 2022-07-28 17:51:42 -04:00
Chris Sexton ad3b264a89 roles: make toggle case insensitive 2022-07-28 17:51:42 -04:00
Chris Sexton 09cc6f75c3 emojy: reorder the stats page 2022-07-23 12:58:33 -04:00
Chris Sexton bffc1589c2 emojy: add a threshold for stats page 2022-07-23 12:58:33 -04:00
Chris Sexton b1cec209fe emojy: show names on stats page 2022-07-23 12:42:58 -04:00
Chris Sexton 668b0dcb7b emojy: sort the emojy list page 2022-07-23 09:49:27 -04:00
Chris Sexton 4c1a02e9fb cowboy: reuse some code 2022-07-23 09:27:21 -04:00
Chris Sexton 274d8f6966 cowboy: fix original url 2022-07-23 09:10:38 -04:00
Chris Sexton 51da6187b0 emojy: swap in emojy command 2022-07-23 09:02:57 -04:00
Chris Sexton 0453c5ec24 cowboy: show the emojy when its made 2022-07-23 08:59:32 -04:00
Chris Sexton 3297878421 cowboy: fix overlay capture bug 2022-07-23 00:39:45 -04:00
Chris Sexton 93cfc0ddfb cowboy: optionally disable overlay command for now 2022-07-23 00:22:13 -04:00
Chris Sexton a64f4800b1 cowboy: add slash command 2022-07-23 00:22:13 -04:00
Chris Sexton 2ce2b01295 cowboy: use cache to set bounds 2022-07-23 00:22:13 -04:00
Chris Sexton 112ccea89a cowboy: add cache 2022-07-23 00:22:13 -04:00
Chris Sexton ba99b2113c discord: add slash command structure 2022-07-23 00:22:13 -04:00
Chris Sexton 22658949a8 emojy: update web UI a bit
- cards on list
- add text name to stats
2022-07-22 10:18:52 -04:00
Chris Sexton cf19a2bc15 cowboy: anchor emojy pages to URLs
This also refactored a bunch of junk and eliminated about 4k calls to
the config/database on emojy listing.
2022-07-22 10:18:52 -04:00
Chris Sexton 79cdd0f828 cowboy: stop scaling the base image so much 2022-07-22 09:16:54 -04:00
Chris Sexton 1d30a25277 cowboy: rm the original message 2022-07-21 11:42:48 -04:00
Chris Sexton f548f74be9 cowboy: make plugin 2022-07-21 11:29:45 -04:00
Chris Sexton b2ec081d51 counter: trim some spaces near aliases 2022-07-18 21:47:03 -04:00
Chris Sexton 2e0be87dd9 counter: fix ID null string regression
Also remove shared DB cache as it seems to not be necessary.
2022-07-17 14:46:09 -04:00
Chris Sexton 96229c9e11 counter: change http rate limiter criteria 2022-07-17 14:46:09 -04:00
Chris Sexton 72c32e1c16 counter: fix bug where anything but the right password worked 2022-07-17 14:46:09 -04:00
Chris Sexton df0b5d709b counter: fix bug where user ID was not passed to resolveUser 2022-07-17 14:46:09 -04:00
Chris Sexton aa7d377c08 counter: update model to reflect that the ID may be null 2022-07-17 14:46:09 -04:00
Chris Sexton 60678fcad2 add rate limit middleware 2022-07-07 11:28:22 -04:00
Chris Sexton 56120b168c emojy: add swap and disallow upload overwrites 2022-06-08 21:24:44 -04:00
Chris Sexton feb42b8293 emojy: allow creation and removal of emojy
- includes a web interface for uploading new images
- includes a web interface for viewing 'possible' images
2022-06-08 21:03:21 -04:00
Chris Sexton 2f8bf0edcb emojy: trim some characters here and there 2022-06-07 10:30:07 -04:00
Chris Sexton 61cdb66546 emojy: indicate if an emojy is on the server 2022-06-06 10:49:27 -04:00
Chris Sexton e8c7e1e07e emojy: make the web page nicer
- show custom emojy
- categorize by source type
- record emojy used in messages
2022-06-06 10:24:54 -04:00
Chris Sexton aa88ef44f5 emojy: redo database schema
- record emojy as timestamped log instead of a count
2022-06-02 11:03:45 -04:00
Chris Sexton 4e3cbbafad factoid: refactor and ignore reaction
- factoid is a mess, but I at least split it into a few parts
- need to move config values from factoid to fact
- need to rename the whole thing to fact
- probably need to go over it with a fine toothed comb
- 5 seconds, why 5 seconds? I still don't know
- added kind to the message type so we can filter reactions out
2022-05-31 11:27:34 -04:00
Chris Sexton 46e61f69d0 counter: use blank ID if none found
This fixes an issue where if the user hasn't spoken since the bot
restarted, the counter can't increment.
2022-05-30 19:15:17 -04:00
Chris Sexton 1c22632a41 emojy: create plugin
- added reaction type and event for discord connectors
- added web page to view emojy usage
- added new table for counting emojy
2022-05-30 16:38:05 -04:00
Chris Sexton 104f48b1c3 meme: configify the default meme config 2022-05-25 15:16:26 -04:00
Chris Sexton 69cee328e7 twitch: fix web server 2022-05-20 17:16:31 -04:00
Chris Sexton a4108ecc82 twitch: change some names to match the API 2022-05-18 10:46:37 -04:00
Chris Sexton 32cca1497a counter: add increment by N api 2022-05-05 18:15:38 -04:00
Chris Sexton 3964e1f4b2 meme: disable direct URL memes
GitHub noticed this is a security problem, so I am disabling it.
2022-03-22 20:30:07 -04:00
Chris Sexton 471c3ecff4 all: update to go1.18 and any interface 2022-03-21 21:36:04 -04:00
Chris Sexton 3af3633559 web: fix vue version references
3.x came out and @latest busted everything.
2022-02-18 07:20:02 -05:00
Chris Sexton 63c850f9ce beers: catbase more woke than you. bask in his virtue 2022-01-17 10:12:31 -05:00
Chris Sexton d036aacc0a mayi: add a should clause 2022-01-03 16:15:23 -05:00
Chris Sexton c5a13116fa roles: add help 2022-01-03 07:41:44 -05:00
Chris Sexton d89569cdc6 mayi: fix regex 2021-12-17 08:49:10 -05:00
Chris Sexton 9670e0e657 counter: reorder goal and count 2021-12-04 16:05:19 -05:00
Chris Sexton 6d004d8d1f counter: fix api and add a message when one exists 2021-11-28 14:22:22 -05:00
Chris Sexton 2a9ae13560 roles: add plugin 2021-11-20 15:34:38 -05:00
Chris Sexton d2c5489634 first: stop spitting out dumb logs 2021-11-19 13:35:30 -05:00
Chris Sexton 7af715aee9 gpt3: add stop configuration 2021-11-19 13:23:11 -05:00
Chris Sexton 46b2b0b57f gpt3: add plugin 2021-11-19 11:26:54 -05:00
Chris Sexton 338293cf42 counter: use channel in api update 2021-11-18 17:21:04 -05:00
Chris Sexton fd670339c0 counter: api should update goals 2021-11-18 16:50:50 -05:00
Chris Sexton 3343a98802 pubsub: add counter pub 2021-11-15 20:51:40 -05:00
Chris Sexton 4f9b50f47a impossible: eff these broken tests 2021-11-08 09:46:22 -05:00
Chris Sexton fc27096a6d impossible: change locale to time.Local 2021-11-08 09:46:22 -05:00
Chris Sexton fff478a9f6 meme: add font support 2021-10-22 16:48:59 -04:00
Chris Sexton 6bcf1142c4 mayi: add coinflip plugin 2021-10-13 21:15:14 -04:00
Chris Sexton 373929646c history: record history in bot 2021-10-05 19:12:35 -04:00
Chris Sexton 2cfca47d7d ngate: fix formatting for all platforms 2021-09-18 10:27:33 -04:00
Chris Sexton 6cacff4513 rest: add post and help 2021-09-16 18:23:53 -04:00
Chris Sexton 646282b233 rest: bypass jq when it's convenient
Adding a custom parser for GPT-2 queries because it's easier this way.
2021-09-03 09:51:28 -04:00
Chris Sexton da69df36d4 first/last: filter channels 2021-08-26 10:09:49 -04:00
Chris Sexton 5773141b1c goals: send goal messages to the correct channel 2021-08-23 11:47:57 -04:00
Chris Sexton d214fe0c45 goals: fix remaining regex 2021-08-23 11:34:39 -04:00
Chris Sexton cf30dad055 goals: fix goal reporting 2021-08-23 11:34:39 -04:00
Chris Sexton ba0f38b342 beers: change default beer item 2021-08-21 08:44:54 -04:00
Chris Sexton 02837bf136 first: fix time to use local 2021-08-21 07:27:31 -04:00
Chris Sexton cd5018af77 quotegame: tell us who it was when we lost 2021-08-11 12:43:11 -04:00
Chris Sexton b0dd44687a quotegame: remove debug, add time report 2021-08-11 12:25:00 -04:00
Chris Sexton 24668cf774 quotegame: add game 2021-08-11 12:12:26 -04:00
Chris Sexton 99abd9bb2f slack: update library 2021-08-11 12:12:26 -04:00
Chris Sexton 7464a7c84c quotegame: draft of game 2021-08-11 12:12:26 -04:00
Chris Sexton 792f8681ab beers: fix URL parameters for images 2021-08-05 11:02:19 -04:00
Chris Sexton 13e16c9f01 web: change to embedded pages
counter: embed counter page

admin: move vars and apppass to embedded

secrets: move to embedded

cli: move to embed

meme: move to embed

fact: move to embed

bot: move to embed

fix write command
2021-07-29 13:00:33 -04:00
Chris Sexton 7ba9d94ac2 counter: add api, bot: change routes
* many routes changed by adding the chi router
* counter has an authenticated API to increment and decrement
2021-07-28 11:41:01 -04:00
Chris Sexton c47a4f7c6f web: migrate endpoint registration to chi 2021-07-28 11:41:01 -04:00
Chris Sexton 31fe84b0ba apppass: add password generation page 2021-07-21 09:59:43 -04:00
Chris Sexton 64bce99455 first: add configurable jitter
This should prevent Slack's scheduled messages from gaming first
2021-07-03 13:11:52 -04:00
Chris Sexton 1619a7f7d4 achievements: add a list function 2021-06-17 16:24:01 -04:00
Chris Sexton 825a8d267f goals: fix default channel reporting 2021-06-17 14:26:19 -04:00
Chris Sexton 9eb801f570 newsbid: filter zero balances 2021-06-17 13:04:15 -04:00
Chris Sexton ec47c31a80 rest: add testwire, remove some secret leaks 2021-05-20 18:36:20 -04:00
Chris Sexton a1c5a4c580 secrets: add plugin
Also modify rest to use secrets plugin
2021-05-20 10:03:07 -04:00
Chris Sexton 0cd1b5e7ed rest: add jq parsing instead of field selection 2021-05-19 14:01:36 -04:00
Chris Sexton 086bc9f0f9 gpt2: remove plugin 2021-05-19 11:55:20 -04:00
Chris Sexton 1e5a82d281 rest: create plugin
RestPlugin allows users to dynamically create transports and integrate services
from outside of catbase.

New commands:
* wire `regex` to URL `field`
* list wires
* rm wire ID
2021-05-19 11:55:20 -04:00
Chris Sexton 2045fc4591 goals: fix ordering of commands 2021-05-04 14:08:33 -04:00
Chris Sexton e1250dd25e last: don't report a last if none exists 2021-04-30 09:11:38 -04:00
Chris Sexton 850f5248ef last: fix schema 2021-04-28 17:15:22 -04:00
Chris Sexton c5d468c723 last: add multichannel support
This
* ensures the last is between yesterday and yesterday
* adds a channel check to the query
* adds a command to check a specific channel
2021-04-28 16:52:07 -04:00
Chris Sexton 802911203f last: fix crash 2021-04-28 12:52:32 -04:00
Chris Sexton 19cbf5efd9 last: add filters for invalid messages 2021-04-28 12:15:09 -04:00
Chris Sexton 4c669e520f last: create plugin 2021-04-27 12:45:52 -04:00
Chris Sexton 40d057b6a6 your: refactor
Ref #346
2021-03-23 13:45:11 -04:00
Chris Sexton 67c88190ab giph: add not found message 2021-02-28 23:19:43 -05:00
Chris Sexton 5a7544d828 giph: add plugin 2021-02-28 23:19:43 -05:00
Chris Sexton fe5e9a6226 remember: refactor 2021-02-19 13:25:48 -05:00
Chris Sexton c7c315ad8c reaction: refactor 2021-02-19 12:23:40 -05:00
Chris Sexton 8cd79d486e picker: refactor 2021-02-19 12:14:59 -05:00
Chris Sexton defeb9b3b1 meme: maybe fix discord maybe not 2021-02-18 18:01:45 -05:00
Chris Sexton 91ac29d085 meme: memes generated at request time
* Moved meme generation to the URL service
* URLs now contain the meme configurations
* Cached by config (expires with bot restart)
2021-02-18 17:41:38 -05:00
Chris Sexton 332d992d05 counter: use IDs when available
This should help alleviate user name changes, but may not fix it
entirely. Had to update beers and goals to match an ID search.

Note: this will bust badly for IRC
2021-02-14 17:00:56 -05:00
Chris Sexton 4e0c308253 refactor: nerdepedia the lazy way 2021-02-07 15:12:45 -05:00
Chris Sexton 7dfa5bf891 meme: refactor
impossible: fix bug where it was eating all messages
2021-02-07 15:09:52 -05:00
Chris Sexton 0891713523 leftpad: refactor 2021-02-07 14:23:18 -05:00
Chris Sexton 353f289cae impossible: refactor 2021-02-07 14:03:34 -05:00
Chris Sexton ca97a07a4d goals: refactor 2021-02-07 13:33:30 -05:00
Chris Sexton c802b52a3b inventory: refactor and fix regexes 2021-02-05 11:37:43 -05:00
Chris Sexton 8f391ee7bc git: refactor 2021-02-04 08:17:50 -05:00
Chris Sexton 1f954f301c fuck: refactor by removal 2021-02-03 21:02:59 -05:00
Chris Sexton 4a0ba76b89 first: refactor and add clear command 2021-02-03 20:38:21 -05:00
Chris Sexton 1d3748ed06 csw: refactor 2021-02-03 19:56:33 -05:00
Chris Sexton 9345e83adf picker: make picker less fair 2021-02-02 16:05:14 -05:00
Chris Sexton 8cb6b485cb fact: refactor 2021-02-01 21:28:58 -05:00
Chris Sexton 55a206760f dice: refactor 2021-02-01 15:59:46 -05:00
Chris Sexton 2b47654302 beers: add dynamic drinking word feature 2021-02-01 15:20:51 -05:00
Chris Sexton 41a757cd8b beers: refactor 2021-02-01 15:20:51 -05:00
Chris Sexton a6847a996f babbler: refactor 2021-02-01 10:48:06 -05:00
Chris Sexton b7576bd855 gpt2: refactor 2021-02-01 07:40:33 -05:00
Chris Sexton dfbcfafab9 aoc: refactor 2021-02-01 07:16:21 -05:00
Chris Sexton 951c345666 admin: refactor tests 2021-02-01 06:39:43 -05:00
Chris Sexton 8e4129ecb3 admin: refactor 2021-02-01 06:39:43 -05:00
Chris Sexton 00dae33e8a achievements: refactor
Refs #346
2021-01-31 22:17:59 -05:00
Chris Sexton e7ec092c64 counter: update tests 2021-01-31 21:53:48 -05:00
Chris Sexton 1292eaa564 counter: refactor into regex matchers 2021-01-31 21:53:48 -05:00
Chris Sexton 75a12ca9a5 zork: remove zork
ref #343
2021-01-31 18:24:42 -05:00
Chris Sexton 0e5f7eb2d5 newsbid: refactor 2021-01-31 18:24:42 -05:00
Chris Sexton aad4ecf143 bot: refactor callback handlers
New system:
* Each callback can filter for a regex
* Backwards compatability using a `.*` generic regex
* Handlers now accept a request object instead of bare arguments

All new plugins should use this new system.
2021-01-31 16:54:07 -05:00
Chris Sexton ba47710b46 meme: add confirm to deletion button 2021-01-11 17:30:09 -05:00
Chris Sexton 33372ed770 meme: add default to all new memes 2021-01-11 16:30:18 -05:00