Commit Graph

836 Commits

Author SHA1 Message Date
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
Chris Sexton c4605cfb77 git: don't unfurl links 2021-01-09 16:58:18 -05:00
Chris Sexton bca96b6dcd meme: fix empty meme issue 2021-01-09 16:48:55 -05:00
Chris Sexton 841d4c000e meme: remove URL and format config on meme page 2021-01-09 16:30:49 -05:00
Chris Sexton 8408da48d4 meme: add config and delete
This updates the web view to provide a screen to edit any particular
config in a text area, update the image URL, and remove a meme.

fixes #330
2021-01-09 16:18:56 -05:00
Chris Sexton 8d52a3d1bd meme: add capitalization to configs, true default
fixes #331
2021-01-09 15:27:32 -05:00
Chris Sexton bbf5b27790 web: remove go template dependency
All vue pages now request `/nav` to get a JSON array of navigation
instead of relying on the Go template to have the nav built in. This
cleans up all of the crufty `{{ "{{ thing }}" }}` that was making it
hard to wriet vue.

This also paves the way to using the new Go resource embedding so that
the pages don't need to be wrapped in Go files.
2021-01-09 13:46:28 -05:00
Chris Sexton 44159c26fc newsbid: update for season 2
Fixes #326
2020-12-31 14:08:38 -05:00