Commit Graph

159 Commits

Author SHA1 Message Date
Chris Sexton a1e170aa40 slackApp: stop racing to serve on the http port 2019-02-07 14:45:59 -05:00
Chris Sexton a20839cdd7 bot: Invert RegisterWeb 2019-02-07 11:30:42 -05:00
Chris Sexton 980b079bf3 slackApp: create new connector for an app
* Using a library because I'm lazy.
* Fixed a few noisy things in Twitch and Untappd
* Moved connectors to a common place
2019-02-05 22:52:49 -05:00
Chris Sexton a25d7b9eff bot: get rid of a string
I introduced reflection earlier. I may as well go whole hog now.
2019-02-05 16:10:36 -05:00
Chris Sexton 4b5b66dd6d bot: unroll args 2019-02-05 15:24:49 -05:00
Chris Sexton f661d7dca2 bot: update callback registry types
Unfortunately, we can't hash the plugins. I went ahead and hashed the
types instead.
2019-02-05 15:13:32 -05:00
Chris Sexton 5ee5f33e36 tests: refactor for new system 2019-02-05 15:02:15 -05:00
Chris Sexton 933e514ddd bot: switch plugins to matching instance
instead of string
2019-02-05 13:58:12 -05:00
Chris Sexton 82dcf410f2 bot: hook connectors up to events
This includes a full test of `admin`
2019-02-05 13:42:15 -05:00
Chris Sexton d85c855d47 bot: rename a few things 2019-02-05 12:25:31 -05:00
Chris Sexton 1f69a653a9 tests: refactor mock to match new interface 2019-02-05 11:37:33 -05:00
Chris Sexton 3620208f33 irc: Update IRC connector to new structure 2019-02-05 11:20:43 -05:00
Chris Sexton e7c88c0c9c events: refactor
Combining all of the various send/recv functions into one
2019-02-05 10:54:13 -05:00
Chris Sexton 0593b4f164 config: set some defaults 2019-01-21 19:16:57 -05:00
Chris Sexton 742c76f562 config: add defaults checking where necessary 2019-01-21 14:24:03 -05:00
Chris Sexton 15168f5db0 config: all tests passing
* Using in-memory but shared DB. ALL TESTS MUST CLEAR RELEVANT TABLES
* Removed problematic reminder test
2019-01-21 12:36:55 -05:00
Chris Sexton a8d0f3fd34 stats: remove unused plugin
config: checkpoint

config: checkpoint all but two tests passing

config: checkpoint all but one test suites pass
2019-01-21 12:36:56 -05:00
Chris Sexton 3a7651d184 fact: add reaction type facts
If a user creates a fact with the verb <react>, catbase will try to
react with the emojy that the user specifies. It filters things with
spaces and fixes colons, but does not check if the emojy actually
exists. There will be no feedback in this case, which should probably
get fixed but meh.

* Updated mock bot to check reactions, and do filtering correctly.
* Added a couple tests of the react functionality.
2019-01-20 12:33:19 -05:00
Chris Sexton e15122cfe9 bot: refactor all rand seeds into main.go 2018-07-23 13:00:19 -04:00
Chris Sexton c639d460ac go fmt 2018-05-02 07:02:04 -04:00
skkiesel 1ac566c2c2 sokobass. 2017-11-02 16:32:02 -04:00
skkiesel 54b83cd444 listening to thread responses to rpg threads only 2017-10-31 14:14:45 -04:00
skkiesel d9bb7ec3c0 sometimes you have an id, sometimes a message, we should support relpying to both 2017-10-31 10:16:41 -04:00
skkiesel 3009a646e6 support replies 2017-10-31 10:07:20 -04:00
skkiesel d6c35b94ec cleanup! 2017-10-31 09:40:03 -04:00
Scott Kiesel 34e2404e8b hacked poc for edits as an animation mechanism 2017-10-31 06:22:36 -04:00
cws 9600e0dc63 inventory: initial sketch
Fixes #2
2017-09-29 00:58:21 -04:00
cws e56604f507 bot: change serve() to return an error
slack: don't fatal on EOF, reconnect
irc: don't fatal, just return error
2017-09-07 00:32:53 -04:00
cws 755cfc38cd slack: mark channels read, keep a current marker 2017-07-25 13:58:04 -04:00
Scott Kiesel e059b51fcf Merge branch 'master' into emojifyme 2017-07-25 06:17:11 -04:00
skkiesel 1b09106356 Add missing methods (React and GetEmojiList) to mockbot 2017-07-25 06:15:44 -04:00
skkiesel c6e1769f0f Parse incoming messages to see if we can annoy eaburns with emoji word replacements 2017-07-24 15:09:27 -04:00
cws d5bc4d8f45 bot: add missing mock func to fix tests
skiesel forgot.
2017-07-24 07:38:03 -04:00
skkiesel 1bf6997144 initial implementation and POC to getting reactions pushed into slack via catbase 2017-07-24 07:38:03 -04:00
skkiesel 8728d96639 initial implementation and POC to getting reactions pushed into slack via catbase 2017-06-17 16:20:06 -04:00
cws ef0afc2ee0 Fix detection of users on incoming messages 2017-01-05 09:48:57 -05:00
cwsexton 0badd5f2ce Add multiple command character support.
Now you can use ¡!
2016-09-27 12:42:00 -04:00
Chris Sexton 079c6ab2ec Fix variable support 2016-05-20 16:28:48 -04:00
Chris Sexton e6324ad5a2 babbler: Add all users in chan, add cfg'd users
Also misc small updates to the mock object for easier config usage
2016-05-10 21:15:52 -04:00
Chris Sexton 8485ed9fe3 Fix Whoing a channel and factoid timer 2016-04-21 11:19:38 -04:00
Chris Sexton e449a82001 YOLO: DEAL WITH IT
Refactored a bunch of junk.
2016-04-01 10:20:26 -04:00
Chris Sexton ef40d335eb Make testing great again! Add examples in counter
* Made bot.Bot an interface and added a mock with an in-memory database
for plugins to use.
* Remove logger nonsense
* Rename Counter New
2016-03-30 12:41:22 -04:00
Chris Sexton a34afa97ad Switch web query to a regex 2016-03-29 12:34:04 -04:00
Chris Sexton dc793a18c9 Fix help command to only respond when there is a space afterwards 2016-03-21 18:05:51 -04:00
Chris Sexton 2a702c7061 Fix license tags 2016-03-19 15:32:51 -04:00
Chris Sexton ae5d7dec2e Migrate to sqlx; modularize counters 2016-03-19 14:02:46 -04:00
Chris Sexton dc1239783e Initial slack worky worky 2016-03-10 21:11:52 -05:00
Chris Sexton 51d7f7f067 Move IRC stuff to its own package 2016-03-10 13:37:07 -05:00
Chris Sexton 74e981eedf Fix imports; Use SSL by default
Fix imports to point to github instead of code.google
2016-01-17 22:51:11 -05:00
Chris Sexton d261fcc406 AlePale -> Catbase => velour 2016-01-17 13:00:44 -05:00
Chris Sexton 56c6d84813 Add TODO, small fix to factoid web interface 2016-01-17 12:45:07 -05:00
Chris Sexton 782d074bdf Get the bot online; make counters work
Mostly just silly stuff to get everything working.
2016-01-15 08:59:51 -05:00
Chris Sexton 1efa7ebcd4 Initial mongo->sqlite move
Tons of bugs, I'm sure. This commit  mostly gets the bot moving towards
SQLite. It builds, but many plugins have a log.Fatal to prevent their
use and it has not been tested.
2016-01-15 08:17:26 -05:00
Chris Sexton d298dac814 Fixes #30: Lowercasing the search 2014-04-20 21:12:08 -04:00
Chris Sexton a07a6adc0d Fixes #46: Filter self out of user list 2014-04-20 21:06:42 -04:00
Chris Sexton 1827765a4d Fixes #56 again because I did it wrong. 2014-04-20 15:08:24 -04:00
Chris Sexton 7f093b003e Added AUTHORS file and info in all files.
Thanks to https://github.com/eaburns/license
2013-12-10 18:37:07 -05:00
Chris Sexton 449b9ca499 Fixing user assignment bug 2013-09-02 13:38:27 -04:00
Chris Sexton d7389dfc5d Removing debug stuff 2013-09-02 13:35:38 -04:00
Chris Sexton d35fba2f87 Fixing admin rights & user entries 2013-09-02 13:34:20 -04:00
Chris Sexton 9e1d3de25c Changing to match many people 2013-08-30 22:09:45 -04:00
Chris Sexton 0627f8a015 Fixes #41: Don't require a space for a command 2013-08-26 12:18:57 -04:00
Chris Sexton 0acd004e59 Fixing self remembering problems stemming from lib change. 2013-06-17 00:04:10 -04:00
Chris Sexton 76e6644b8b One more fix to the fact spitter.
Turns out channels have case.
2013-06-16 22:40:30 -04:00
Chris Sexton eff200ee15 Fixing multi-channel factoid squirts. 2013-06-16 21:03:43 -04:00
Chris Sexton 2c0dc55452 Big overhaul again! Replaced fluffle's goirc library with velour/irc.
Hopefully this new library will provide me with some benefits such as being able
to actually get and respond to a WHO message. Yet to do is to fix sendMessage to
be a channel on Bot with a goroutine that formats and sends messages on. Also,
figuring out how to handle the WHO response and populate users.
2013-06-01 22:06:31 -04:00
Chris Sexton 2fc9fd1c84 Making index page a bit better 2013-06-01 13:39:17 -04:00
Chris Sexton 242be51029 Making the web interface a bit better 2013-06-01 13:29:12 -04:00
Chris Sexton edd941fe46 Initial (ugly) web interface 2013-06-01 13:10:33 -04:00
Chris Sexton 13fa9dd079 Removing unused variable 2013-05-07 20:58:20 -04:00
Chris Sexton 75e2c53bd1 Returning command check back to messy if/else. regexp was not good. 2013-05-07 20:56:09 -04:00
Chris Sexton c3c19dda5f Fixed crash on startup with empty message from server 2013-05-07 20:23:35 -04:00
Chris Sexton 42c934f091 Fixes #10: Bot can quote and count himself 2013-05-07 20:08:18 -04:00
Chris Sexton 46fa81cd68 Making the counters aware of the bot itself. 2013-05-07 19:32:03 -04:00
Chris Sexton 076b985716 Adding the bot to its own list of users. (future usage) 2013-05-07 19:05:40 -04:00
Chris Sexton 03a20d0446 Fixes #11: Change addressing scheme.
Check to be sure there's something other than a space after the bot's name for
addressing purposes.
2013-05-07 18:56:33 -04:00
Chris Sexton d87f7779ab Renaming project to reflect bot's actual name. 2013-05-06 01:11:54 -04:00
Chris Sexton ea60a899c7 Converting imports to github, added license & full readme 2013-05-06 01:11:54 -04:00
Chris Sexton cc58de580a Enabling new stuff 2013-05-06 01:11:53 -04:00
Chris Sexton 84e7001165 Added a say command to talker 2013-05-06 01:11:53 -04:00
Chris Sexton 13b77ad2b1 Fixing case issues 2013-05-06 01:11:52 -04:00
Chris Sexton 2cb0eba9b8 Added new mode support for downtime. Some of the additions in main are not needed, and it may be breaking other plugins. 2013-05-06 01:11:50 -04:00
Chris Sexton 66e2c8265d Added functionality for downtime tracking 2013-05-06 01:11:50 -04:00
Chris Sexton ae42e62872 Fixed the name of the bot to always be current (could remove from config.json) 2013-05-06 01:11:50 -04:00
Chris Sexton 8ffac9291b Whoops, we want nicks not users 2013-05-06 01:11:50 -04:00
Chris Sexton 4280440028 Added die roller, fixed bot command addressing. 2013-05-06 01:11:49 -04:00
Chris Sexton 83b28412a7 Changed random quote functionality to only spit out a quote minutes after somebody (other than the quote timer) has said something. The channels may be a bit buggy, but they don't seem to get stuck or spam, so it should be okayish. 2013-05-06 01:11:48 -04:00
Chris Sexton 0970ee980f Quieting down the console 2013-05-06 01:11:47 -04:00
Chris Sexton 273b41fa3f Fixed 2013-05-06 01:11:47 -04:00
Chris Sexton ac8bc9a145 Added helptext to list variables 2013-05-06 01:11:47 -04:00
Chris Sexton b418096bf6 Added dynamic variables (I'm sure this is going to backfire) 2013-05-06 01:11:47 -04:00
Chris Sexton 281b910dd6 Added <action> to factiod (or at least action actually working) 2013-05-06 01:11:47 -04:00
Chris Sexton 6f3c817e7f Initial version of factoids seems to work. Probably some bugs to work out. Added
some $vars.
2013-05-06 01:11:46 -04:00
Chris Sexton 94063c3967 Added plugin ordering so that all queries are handled by the correct plugin 2013-05-06 01:11:46 -04:00
Chris Sexton 1551463c7f Added short user name complaining 2013-05-06 01:11:46 -04:00
Chris Sexton 3e7f8d4248 Reduced the messages on the console 2013-05-06 01:11:45 -04:00
Chris Sexton 9c721a0f58 Added generic Event handling to plugins, made Talker handle the OCD hivemind 2013-05-06 01:11:45 -04:00
Chris Sexton e4c755faaa Made the bot a bit less verbose (axed some debug printing) 2013-05-06 01:11:45 -04:00
Chris Sexton a71e743e79 Fixed bugs found on initial unveiling in beers and the handler code.
Beers now counts correctly and does not die when it can't find a user. The code
for nonexistant users was bogus and the code for setting beers was not counting
dates.

Handlers were not breaking after finding users (linear scan, ack). This should
probably be switched to a map[string]user type.
2013-05-06 01:11:45 -04:00
Chris Sexton 3953f0a831 Massive improvements to the remember plugin, fixed some help issues, added ACTION parsing. 2013-05-06 01:11:45 -04:00