Commit Graph

788 Commits

Author SHA1 Message Date
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
Chris Sexton c20b4c8b17 countdown: fix timer 2020-12-31 12:36:48 -05:00
Chris Sexton eefd5974d2 update gpt2 interface 2020-12-07 17:45:01 -05:00
Chris Sexton 9dbdd1f9a3 connectors: add translation layer
* URLs can be translated to slack/discord compatible
* Emojy have a connector-specific translation configuration
* Advent of Code plugin respects emojy and URLs
* Config can be wrapped in `` for JSON
2020-12-02 09:53:57 -05:00
Chris Sexton aa9dc12c9b countdown: maybe use actually January 2020-11-30 14:59:05 -05:00
Chris Sexton f57487868a github: fix commenter fields 2020-11-22 14:04:59 -05:00
Chris Sexton 7b98da6286 github: convert filter to array 2020-11-14 08:35:36 -05:00
Chris Sexton 05ba571f34 github: fix github event URLs and owners 2020-11-09 03:34:40 -05:00
Chris Sexton 910b28666b github: add issue events 2020-11-08 11:55:13 -05:00
Chris Sexton 3e8a474f13 meme: make bully position default to botright even for bad configs 2020-11-02 11:01:23 -05:00
Chris Sexton 9617e02d72 meme: make bully positionable 2020-11-02 11:01:23 -05:00
Chris Sexton 8817df15f0 nerdepedia: fix failing tests and add config 2020-10-24 14:12:13 -04:00
Chris Sexton af5717e9c1 meme: maybe fix the bully meme 2020-10-24 13:47:45 -04:00
Chris Sexton a30be0df8f meme/bot: add ephemeral messages 2020-10-24 10:04:53 -04:00
Chris Sexton fed1951e66 meme: add missing error check 2020-10-23 10:10:20 -04:00
Chris Sexton ac3d037fa4 meme: fix default config 2020-10-23 09:54:33 -04:00
Chris Sexton 789409e159 meme: add web config 2020-10-21 16:03:04 -04:00
Chris Sexton 250ce836bf meme: add configurable memes 2020-10-21 11:24:03 -04:00
Chris Sexton bd2e28f72a first: disallow empty messages 2020-10-19 21:32:00 -04:00
Chris Sexton 021cbee40a meme: add extra split for discord 2020-10-13 09:43:04 -04:00
Chris Sexton c8d01029ea admin: enforce admin status of users 2020-10-09 13:14:25 -04:00
Chris Sexton 2fb84219a0 whitelist: add whitelist of plugins 2020-10-09 12:00:10 -04:00
Chris Sexton 4ba240c37d go: fix some format strings 2020-10-09 10:54:09 -04:00
Chris Sexton 51592724c8
Merge branch 'master' into discord 2020-09-09 13:31:16 -04:00
Chris Sexton a9937d9b8e discord: add discord functionality
* added discord connector
* modified user to support image avatars instead of URL avatars
* modified meme to send IDs instead of names
2020-09-09 13:21:39 -04:00
Chris Sexton 33cea91f6f gpt2: add customizable error message 2020-08-31 12:27:59 -04:00
Chris Sexton cdeae1b019 gpt2: clean up text 2020-08-21 10:22:50 -04:00
Chris Sexton c6cb8053c0 gpt2: add plugin 2020-08-20 17:23:51 -04:00
Chris Sexton d69d708245 reaction: add emojy language model 2020-07-24 12:36:30 -04:00
Chris Sexton 030d0371f9 countdown: add NYE countdown 2020-07-13 17:02:21 -04:00
Chris Sexton f6b7bcf4ff goals: add remaining/ahead text 2020-07-13 11:38:48 -04:00
Chris Sexton 7b3179fe1d beers: reorder checkin logic 2020-06-17 14:31:30 -04:00
Chris Sexton 45adb3a242 meme: handle bad URL errors 2020-06-10 15:37:54 -04:00
Chris Sexton 12ca34006f bot: add ability to disable plugins per channel
admin: use 'enable/disable plugin <name>'
2020-06-09 13:52:23 -04:00
Chris Sexton c68ca70964 goals: fix register bug 2020-05-26 12:09:04 -04:00
Chris Sexton ccfdb5a715 goals: mostly done, time to try it 2020-05-26 11:41:28 -04:00
Chris Sexton b1f46d6517 goals working-ish 2020-05-26 11:41:28 -04:00
Chris Sexton b13385774e beers: host your own images 2020-05-25 14:47:02 -04:00
Chris Sexton 645a533f49 add text if missing 2020-05-21 15:02:22 -04:00
Chris Sexton 4cefc8a784 sms: register somebody else 2020-05-17 11:16:32 -04:00
Chris Sexton 6c1a8c13fc sms: add help text 2020-05-17 11:00:47 -04:00
Chris Sexton e78b22e93e sms: send and receive 2020-05-17 10:56:48 -04:00
Chris Sexton 0b78b99ee9 sms: rudimentary sms sending 2020-05-17 10:56:48 -04:00
Chris Sexton 280bb39125 sms: add skeleton 2020-05-17 10:56:48 -04:00
Chris Sexton d5a2bec582 meme: okay, scale the right thing with respect to the right thing 2020-05-08 18:05:57 -04:00
Chris Sexton 10a1745502 meme: add signature icon 2020-05-08 17:49:55 -04:00
Chris Sexton 0057f91ce6 connectors: add profile to get user icon 2020-05-08 17:49:55 -04:00
Chris Sexton c6559530e7 meme: add rm and bully 2020-05-05 16:25:33 -04:00
Chris Sexton 2395f7b33d meme: empty text 2020-05-04 17:31:28 -04:00
Chris Sexton b0aa04ce78 meme: add placeholder text in web form 2020-05-04 13:46:15 -04:00
Chris Sexton d7b0bed0db untappd: defer checkins without media 2020-05-04 13:46:15 -04:00
Chris Sexton 07c4950b2d admin: forbid better 2020-05-01 12:34:09 -04:00
Chris Sexton 8d775e95f2 meme: add web interface 2020-05-01 12:34:09 -04:00
Chris Sexton 3ad15c5f3e meme: fix another crash 2020-05-01 10:42:24 -04:00
Chris Sexton 699532d789 meme: fix a crash 2020-05-01 09:13:56 -04:00
Chris Sexton cee267dbb8 admin: leave and come back 2020-04-29 17:48:55 -04:00
Chris Sexton 1166fc732e admin: add setkey 2020-04-29 17:48:55 -04:00
Chris Sexton c7810e9f33 meme: resize images 2020-04-29 15:37:46 -04:00
Chris Sexton dcb6c3740d meme: change fonts 2020-04-29 12:14:24 -04:00
Chris Sexton 49991e530a meme: font size selection and top text 2020-04-29 12:01:01 -04:00
Chris Sexton bcb5d43ea6 meme: rm images after a while 2020-04-29 11:33:28 -04:00
Chris Sexton a5f0380585 meme: make messages commands 2020-04-29 11:33:28 -04:00
Chris Sexton 66460159cd meme: fix shortcuts 2020-04-28 15:16:45 -04:00
Chris Sexton 9704406fe5 meme: text 2020-04-28 15:00:44 -04:00
Chris Sexton 5a1e572645 meme: use urls 2020-04-28 14:58:23 -04:00
Chris Sexton 2e746f7b80 meme: add user name 2020-04-28 11:48:39 -04:00
Chris Sexton 13a3af1e55 meme: add plugin 2020-04-28 11:39:33 -04:00
Chris Sexton c7a3200a23 achievements: add message for invalid awarding 2020-04-24 16:29:43 -04:00
Chris Sexton e91d0bdf95 achivements: first draft 2020-04-24 16:29:43 -04:00
Chris Sexton 888216647f achievements: add award struct and db table 2020-04-24 16:29:43 -04:00
Chris Sexton 30077d1b6c achievements: sketch 2020-04-24 16:29:43 -04:00
Chris Sexton 21d4b11df9 admin: add reboot command 2020-04-21 16:54:03 -04:00
Chris Sexton d0998d0a63 emojifyme: don't crash when github isn't available
Note: we probably need some command to re-slurp this address or a
command to restart the bot in the event that something went terribly
wrong.
2020-04-21 16:54:03 -04:00
Chris Sexton d99ee28370 counter: add rmalias and some help 2020-04-20 06:22:53 -04:00
Scott Kiesel 4a45b21ffb Merge branch 'master' into ImpossibleGame 2020-03-26 15:51:00 -04:00
Scott Kiesel 788e6bdb4a add ability to give up 2020-03-26 15:48:06 -04:00
Chris Sexton 7148848f77 twitter: stop trying to filter RTs
* Also remove a %w causing warnings
2020-03-26 14:02:53 -04:00
Scott Kiesel fcfec95c2f go fmt because apparently we're all too amazing to handle ill-formatted code, wimps 2020-03-13 10:33:16 -04:00
Scott Kiesel 3cb54e6262 A great stupid plugin where you guess the random wikipedia article 2020-03-13 10:33:16 -04:00
Scott Kiesel 6c27e0cafd go fmt because apparently we're all too amazing to handle ill-formatted code, wimps 2020-03-13 10:23:00 -04:00
Scott Kiesel 859fb258d2 A great stupid plugin where you guess the random wikipedia article 2020-03-13 10:16:32 -04:00
Chris Sexton a4fd340a53 newsbid: sort reverse 2020-03-11 13:15:12 -04:00
Chris Sexton e2352a214b newsbid: sort scores by score 2020-03-11 12:29:36 -04:00
Chris Sexton 81cc0dc55b config: add push command
* you can now run `push <setting> <value>` to add values to a setting
2020-01-29 12:35:34 -05:00
Chris Sexton 4275619e49 twitter: filter out retweets 2020-01-28 14:50:55 -05:00
Chris Sexton fc18fba2d8 counter: use absolute value for counter 2020-01-24 16:56:22 -05:00
Chris Sexton 7f183b4f2a counter: make matched things decrement sometimes 2020-01-21 16:29:43 -05:00
Chris Sexton 99817ad621 picker: make pick a command 2020-01-08 08:20:50 -05:00
Chris Sexton 595492a16b fact: add image verb
This will attach the last URL it sees as an image attachment. It will
fail if that is not a valid image (IDK, slack will get mad) and if no
image is found, it will send as text. The text in the message that is
not a URL will be sent as the image title.
2019-12-30 10:30:37 -05:00
Chris Sexton 47c3def722 newsbid: make the !bids command look nicer 2019-12-22 09:05:27 -05:00
Chris Sexton 2625671ed6 bid: show string in bid list 2019-12-22 08:07:02 -05:00
Chris Sexton 408794fe58 newsbid: improve display of news items 2019-12-22 08:07:02 -05:00
Chris Sexton 7b8f37d67d wip 2019-12-22 08:07:02 -05:00
Chris Sexton b3f3e09d89 hn: remove more scrapes 2019-12-22 08:07:02 -05:00
Chris Sexton af9fc12038 hn: use api 2019-12-22 08:07:02 -05:00
Chris Sexton 958a454271 aoc: add link to leaderboard 2019-12-07 21:46:08 -05:00
Chris Sexton 95cbada51d aoc: filter for users that have stars 2019-12-03 10:14:52 -05:00
Chris Sexton 4c69cefa39 aoc: add plugin 2019-11-30 23:59:52 -05:00
Chris Sexton 72da1d3c78 git: order gitea commits 2019-11-29 11:10:59 -05:00
Chris Sexton 6e66498d25 git: add filter for branches on github 2019-11-26 17:53:11 -05:00
Chris Sexton b2136c1b41 counter:add unicde filter to getItem 2019-11-25 14:31:54 -05:00
Chris Sexton 3ad86f2308 pick: fix broken pick
* simplified picking regex
* added test case for previously broken message
2019-11-22 11:55:58 -05:00
Chris Sexton 905da629b9 bids: get a vote:comment ratio for scoring
* Ratio defaults to 1.0 on error
* Ratio bonus if a 0 comment article wins
* Remove buggy tests
* Add example scraping util for debugging
2019-11-14 10:15:39 -05:00
Chris Sexton 30cd91079c react: add searched reactions 2019-11-11 18:13:05 -05:00
Chris Sexton a31d2b446e go fmt 2019-11-08 10:20:01 -05:00
Chris Sexton 4b749d316d bids: mark bids instead of deleting them 2019-11-08 10:20:01 -05:00
Chris Sexton 3a4d69bae0 git: move icons to each commit/event 2019-11-04 08:19:51 -05:00
Chris Sexton 7f5f62d04a git: fix icon 2019-11-03 08:27:50 -05:00
Chris Sexton 97ca444df9 git: don't show empty changeset 2019-11-03 08:10:01 -05:00
Chris Sexton d1149e7022 git: actually do the thing 2019-11-03 07:59:53 -05:00
Chris Sexton 6ada638968 git: add icons
Also break services out into individual files
2019-11-03 07:47:45 -05:00
Chris Sexton 6e62ccf00d webshit: add links to articles 2019-11-02 18:21:40 -04:00
Chris Sexton 8d74baddba git: fix gitea formatting 2019-11-02 18:21:40 -04:00
Chris Sexton f1f5fb3c12 git: add nicer repo addition & gitea support
Also added an `!unset` command for configurations.
2019-10-26 17:43:31 -04:00
Chris Sexton 6a332bcd8e gitlab: fix event URL 2019-10-26 15:40:49 -04:00
Chris Sexton 6393d8bb22 git: change message formatting 2019-10-26 15:40:49 -04:00
Chris Sexton 686ba1d662 git: only respond to PR opened event
Probably will need to check this on other events too.
2019-10-26 15:40:49 -04:00
Chris Sexton 2694463964 git: add git hook support for github & gitlab 2019-10-26 15:40:49 -04:00
Chris Sexton 134d5ea47b first: put the order back in 2019-10-26 11:51:07 -04:00
Chris Sexton 44b0a4f9f3 first: add leaderboard 2019-10-26 11:31:09 -04:00
Chris Sexton 0112b23aa5 twitter: fix persistence 2019-10-20 21:03:13 -04:00
Chris Sexton 1d40a53c51
Merge branch 'master' into tweetpersist 2019-10-20 10:54:03 -04:00
Chris Sexton 47fadc984f twitter: persist last tweet id 2019-10-20 10:53:07 -04:00
Chris Sexton 68118136f2 fuck: stop he-who-must-not-be-named's antics
* verify instruction limit setting
* truncate output buffer
2019-10-20 10:39:31 -04:00
Chris Sexton 3966fd55f7 fuck: add a brainfuck interpreter to the bot 2019-10-20 09:21:27 -04:00
Chris Sexton 42c083314c twitter: add plugin 2019-10-17 09:40:40 -04:00
Chris Sexton fa512bc90b pick: add delimiter support
* Default is still `,`
* Can choose any string directly after pick, for example `pick- {a- b- c}`
2019-10-08 18:15:07 -04:00
Chris Sexton 1efedb7e60 tell: add troll 2019-10-08 17:09:12 -04:00
Chris Sexton 7152c1543e tell: make it db backed 2019-10-08 16:50:29 -04:00
Chris Sexton 4fd0683a8d zork: make path to exec and dat configurable
zork: squash pkgPath err

zork: add flag support
2019-10-01 14:43:36 -04:00
Chris Sexton 631a0c2b0c untappd: switch text line for image descriptions
Checking out a reorder of the args too.
2019-09-28 14:24:45 -04:00
Chris Sexton 3ba71cf9f6 untappd: fix badge image to match json 2019-09-28 13:45:53 -04:00
Chris Sexton 267ec1a8bf untappd: split badge between msg and images 2019-09-28 13:18:23 -04:00
Chris Sexton 5cb6f9ad7e untappd: add badge support
Note: this may not work on the first try. I'm not going to sit around
waiting for a badged checkin in #test.
2019-09-28 13:14:15 -04:00
Chris Sexton 258a3370d7 reaction: add sentiment analysis; remove harass
The harass stuff may come back later.
2019-09-27 10:39:43 -04:00
Steve McCoy bd99f95345 Add emoji tags to the week's winner(s) 2019-08-24 14:36:24 -04:00
Chris Sexton 72a0f4f249 fix integer multiplation bug 2019-08-13 16:14:48 -04:00
Chris Sexton a0bb4c7d1e newsbid: divide all bids amongst winners
* No more negative scores
* Winners divide all points based on their bets
2019-08-11 15:05:15 -04:00
Chris Sexton c71e2beb34 Merge branch 'webshit_urls' of github.com:velour/catbase into webshit_urls
* 'webshit_urls' of github.com:velour/catbase:
  bid: disallow negative bids
2019-08-08 10:20:22 -04:00
Chris Sexton 4ef471eff2 webshit: add missing test update 2019-08-08 10:19:52 -04:00
Chris Sexton 729eb61dee
Merge branch 'master' into webshit_urls 2019-08-08 10:15:52 -04:00
Chris Sexton 705aa294d5 webshit: fix URL matching to use query string 2019-08-08 10:13:24 -04:00
Chris Sexton a7fbc8590b bid: disallow negative bids 2019-07-18 14:57:24 -04:00
Chris Sexton ffde8e2492 bid: add title to !bid command response 2019-07-16 15:55:38 -04:00
Chris Sexton f8ee4224a1 bid: change to matching by URL
And fix URL scraping of the n-gate RSS.
2019-07-16 15:49:35 -04:00
Chris Sexton bdfd6060a0 bid: fix losing story mode; pretty it up a little 2019-07-15 22:00:19 -04:00
Chris Sexton 286582417b bid: connect scores/bids/etc to the chat 2019-07-15 16:55:35 -04:00
Chris Sexton dd0f9efeae bid: add check routine 2019-07-15 14:57:23 -04:00
Chris Sexton 04239ec807 bid: add some tests and tables 2019-07-15 13:40:34 -04:00