100 Commits

Author SHA1 Message Date
Adrian Malacoda
5fb167a8d0 add $sender variable to random response module 2018-05-06 04:19:54 -05:00
Adrian Malacoda
9271c39ce2 update irc module 2018-05-06 04:03:37 -05:00
Adrian Malacoda
4e6d648d18 fix autolink to use scryfall data type 2018-05-06 03:55:14 -05:00
Adrian Malacoda
1c870b58e4 update dependencies 2018-05-06 03:44:43 -05:00
Adrian Malacoda
45031b505f fix get_weekday() to return a better value 2018-04-30 10:30:48 -05:00
Adrian Malacoda
c2a8d5b938 use ipairs 2018-04-29 20:35:28 -05:00
Adrian Malacoda
a65c36ad9b dailies 1.1 2018-04-29 17:47:25 -05:00
Adrian Malacoda
af59c8d360 fix typo 2018-04-29 17:47:17 -05:00
Adrian Malacoda
2414eefc5f add yugipedia searcher 2018-04-29 16:23:33 -05:00
Adrian Malacoda
fb4e741386 fix issue where current_time was being reused 2018-02-27 08:10:23 -06:00
Adrian Malacoda
4ad7c33727 add lua module for sending a message on a certain day of the week 2018-02-26 23:34:53 -06:00
Adrian Malacoda
4e8e290730 allow discord channel id to have a # in front. This is mainly to work around a problem in the lua module where a string channel id becomes a float and loses precision, but to also allow for a use case where we allow channel names and not just ids. 2018-02-26 23:34:30 -06:00
Adrian Malacoda
80bcfe0580 initial stab at LuaPush implementation, doesn't currently work right now though. Also don't set type as that is a lua builtin. 2018-02-26 23:31:17 -06:00
Adrian Malacoda
44b6eecd70 make it possible to execute an lua file and code block in the same module 2018-02-25 22:49:18 -06:00
Adrian Malacoda
fec6f7f274 beef up stdin module too. This can serve two purposes, to test/interact with other modules (e.g. like a one-person chatroom) or to bridge to irc/discord. 2018-02-25 07:28:40 -06:00
Adrian Malacoda
b0c2928e78 beefed up lua scripting support, the message is now presented as a table/struct/object and lua now has access to a sender object which it can use to send messages downstream. 2018-02-25 07:04:47 -06:00
Adrian Malacoda
c6dc3f15b8 add a rudimentary irc module 2018-02-25 04:47:04 -06:00
Adrian Malacoda
906b5709d0 expand on readme 2018-02-25 03:09:53 -06:00
Adrian Malacoda
c0ee8b4d6d actually implement config reloading using notify 2018-02-25 02:52:40 -06:00
Adrian Malacoda
6fe20b8b86 reimplement reconfigure as an event that is transmitted to all modules whenever the config file changes. THis allows reconfiguration to be done in a threadsafe and relatively simple way. 2018-02-25 02:33:04 -06:00
Adrian Malacoda
9295b603aa expose a sender on the Module so we can send events directly to the module 2018-02-25 02:20:26 -06:00
Adrian Malacoda
6acffb59cc stub out config reloader thread, not currently functional 2018-02-24 19:13:09 -06:00
Adrian Malacoda
a01ad46efa make it (theoretically) possible to reconfigure a module. Might have some sort of file watcher thread which periodically checks to see if config file has been modified and reconfigures if necessary. 2018-02-24 18:54:44 -06:00
Adrian Malacoda
d9cfab7081 split off event filtering into own module 2018-02-23 00:08:13 -06:00
Adrian Malacoda
72eadd4549 add more events, dry up event filter code 2018-02-23 00:03:05 -06:00
Adrian Malacoda
93ee23c831 give the discord module the ability to recieve events and transmit messages 2018-02-22 23:43:46 -06:00
Adrian Malacoda
a37b6ab627 increment version 2018-02-22 21:44:40 -06:00
Adrian Malacoda
69c16ccd5f example of trout slap command 2018-02-22 20:55:38 -06:00
Adrian Malacoda
c774988fc9 overhaul random module to use regex instead of prefix match 2018-02-22 20:52:47 -06:00
Adrian Malacoda
240fb7f70e rules is now Optional 2018-02-22 03:19:05 -06:00
Adrian Malacoda
42fc884a58 add bulbapedia autolinker 2018-02-22 03:14:21 -06:00
Adrian Malacoda
6446bb87db there was a better way to do it 2018-02-22 03:13:03 -06:00
Adrian Malacoda
bcbc14ed17 implement a simple cache for autolink module 2018-02-22 03:07:27 -06:00
Adrian Malacoda
ca6f3391d4 simplify even more; just return an EventLoop (will probably be renamed something like Handler) 2018-02-22 02:50:49 -06:00
Adrian Malacoda
5c87b9001a simplify Envelope type, just have event loop threads generate Events which are then wrapped by Envelopes transparently 2018-02-22 02:40:22 -06:00
Adrian Malacoda
055a323d64 simplify loops, less work done in dispatcher thread 2018-02-22 02:30:54 -06:00
Adrian Malacoda
56ca5ae767 move to a model of one thread per dispatcher, instead of one main thread 2018-02-22 02:04:09 -06:00
Adrian Malacoda
fcc86a671e rearchitect event transmission so that the parents/children of each module are explicitly specified and we establish the linkages between them 2018-02-22 01:09:39 -06:00
Adrian Malacoda
3614c7eb5d update all dependencies to latest version. Need to wait for discord-rs to update though 2018-02-18 16:29:30 -06:00
Adrian Malacoda
0b289b6956 prefer if let where possible, removes empty blocks and reduces nesting 2017-05-17 21:23:00 -05:00
Adrian Malacoda
c69cc61114 prefer if let when possible 2017-05-16 21:35:05 -05:00
Adrian Malacoda
25d247f299 New filters implementation. "tags" are removed and replaced with an implementation that filters directly on the event, using an object/map instead of strings. 2017-05-11 01:29:33 -05:00
Adrian Malacoda
8cd8756722 add todo 2017-05-10 02:28:04 -05:00
Adrian Malacoda
97cc215f05 more tags 2017-05-10 02:16:05 -05:00
Adrian Malacoda
2c0e5170f4 properly implement discord channels, dry up code 2017-05-10 02:13:56 -05:00
Adrian Malacoda
bb25846566 Add GCL to interwiki list 2017-05-10 01:16:04 -05:00
Adrian Malacoda
495e3129d4 split logic for filtering out events into Subscription struct 2017-05-10 01:13:52 -05:00
Adrian Malacoda
7c26e0294a Add tag filters. This is a primitive way to screen out events that do not match a certain criteria (e.g. from user Dave) 2017-05-10 00:17:22 -05:00
Adrian Malacoda
6dda3e227f add "Logger" module which logs all received events 2017-05-09 23:39:21 -05:00
Adrian Malacoda
2baffdacd3 implement Debug for all structs, provide implementation for message senders 2017-05-09 23:36:56 -05:00