ae9945403fadd cat and dog modules
Adrian Malacoda
2018-05-12 02:11:23 -05:00
3a06d98247increment version
Adrian Malacoda
2018-05-12 01:37:20 -05:00
9052a3b26badd method to get vec from config
Adrian Malacoda
2018-05-12 00:41:04 -05:00
4bfe6e2aecinitial attempt at limiting to guilds
Adrian Malacoda
2018-05-12 00:37:03 -05:00
a698450c1eadd ability to specify a list of guilds for discord module. Intent is to be able to filter events to specific guilds.
Adrian Malacoda
2018-05-12 00:28:39 -05:00
0d4718c3f3add a helper trait that extends Table for more convenient value retrieval
Adrian Malacoda
2018-05-12 00:11:44 -05:00
cbf1688bddmake autolink pattern configurable
Adrian Malacoda
2018-05-11 23:57:22 -05:00
138e4edc08add configuration option for autolink searcher
Adrian Malacoda
2018-05-11 22:04:45 -05:00
5fb167a8d0add $sender variable to random response module
Adrian Malacoda
2018-05-06 04:19:54 -05:00
9271c39ce2update irc module
Adrian Malacoda
2018-05-06 04:03:37 -05:00
4e6d648d18fix autolink to use scryfall data type
Adrian Malacoda
2018-05-06 03:55:14 -05:00
1c870b58e4update dependencies
Adrian Malacoda
2018-05-06 03:44:43 -05:00
45031b505ffix get_weekday() to return a better value
master
Adrian Malacoda
2018-04-30 10:30:48 -05:00
c2a8d5b938use ipairs
Adrian Malacoda
2018-04-29 20:35:28 -05:00
a65c36ad9bdailies 1.1
Adrian Malacoda
2018-04-29 17:47:25 -05:00
af59c8d360fix typo
Adrian Malacoda
2018-04-29 17:47:17 -05:00
2414eefc5fadd yugipedia searcher
Adrian Malacoda
2018-04-29 16:23:33 -05:00
fb4e741386fix issue where current_time was being reused
Adrian Malacoda
2018-02-27 08:10:23 -06:00
4ad7c33727add lua module for sending a message on a certain day of the week
Adrian Malacoda
2018-02-26 23:34:53 -06:00
4e8e290730allow 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.
Adrian Malacoda
2018-02-26 23:34:30 -06:00
80bcfe0580initial stab at LuaPush implementation, doesn't currently work right now though. Also don't set type as that is a lua builtin.
Adrian Malacoda
2018-02-26 23:31:17 -06:00
44b6eecd70make it possible to execute an lua file and code block in the same module
Adrian Malacoda
2018-02-25 22:49:18 -06:00
fec6f7f274beef 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.
Adrian Malacoda
2018-02-25 07:28:40 -06:00
b0c2928e78beefed 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.
Adrian Malacoda
2018-02-25 07:04:47 -06:00
c6dc3f15b8add a rudimentary irc module
Adrian Malacoda
2018-02-25 04:47:04 -06:00
906b5709d0expand on readme
Adrian Malacoda
2018-02-25 03:09:53 -06:00
c0ee8b4d6dactually implement config reloading using notify
Adrian Malacoda
2018-02-25 02:52:40 -06:00
6fe20b8b86reimplement 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.
Adrian Malacoda
2018-02-25 02:33:04 -06:00
9295b603aaexpose a sender on the Module so we can send events directly to the module
Adrian Malacoda
2018-02-25 02:20:26 -06:00
6acffb59ccstub out config reloader thread, not currently functional
Adrian Malacoda
2018-02-24 19:13:09 -06:00
a01ad46efamake 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.
Adrian Malacoda
2018-02-24 18:54:44 -06:00
d9cfab7081split off event filtering into own module
Adrian Malacoda
2018-02-23 00:08:13 -06:00
72eadd4549add more events, dry up event filter code
Adrian Malacoda
2018-02-23 00:03:05 -06:00
93ee23c831give the discord module the ability to recieve events and transmit messages
Adrian Malacoda
2018-02-22 23:43:46 -06:00
a37b6ab627increment version
Adrian Malacoda
2018-02-22 21:44:40 -06:00
69c16ccd5fexample of trout slap command
Adrian Malacoda
2018-02-22 20:55:38 -06:00
c774988fc9overhaul random module to use regex instead of prefix match
Adrian Malacoda
2018-02-22 20:52:47 -06:00
240fb7f70erules is now Optional
Adrian Malacoda
2018-02-22 03:19:05 -06:00
42fc884a58add bulbapedia autolinker
Adrian Malacoda
2018-02-22 03:14:21 -06:00
6446bb87dbthere was a better way to do it
Adrian Malacoda
2018-02-22 03:13:03 -06:00
bcbc14ed17implement a simple cache for autolink module
Adrian Malacoda
2018-02-22 03:07:27 -06:00
ca6f3391d4simplify even more; just return an EventLoop (will probably be renamed something like Handler)
Adrian Malacoda
2018-02-22 02:50:49 -06:00
5c87b9001asimplify Envelope type, just have event loop threads generate Events which are then wrapped by Envelopes transparently
Adrian Malacoda
2018-02-22 02:40:22 -06:00
055a323d64simplify loops, less work done in dispatcher thread
Adrian Malacoda
2018-02-22 02:30:54 -06:00
56ca5ae767move to a model of one thread per dispatcher, instead of one main thread
Adrian Malacoda
2018-02-22 02:04:09 -06:00
fcc86a671erearchitect event transmission so that the parents/children of each module are explicitly specified and we establish the linkages between them
Adrian Malacoda
2018-02-22 01:09:39 -06:00
3614c7eb5dupdate all dependencies to latest version. Need to wait for discord-rs to update though
Adrian Malacoda
2018-02-18 16:29:30 -06:00
0b289b6956prefer if let where possible, removes empty blocks and reduces nesting
Adrian Malacoda
2017-05-17 21:23:00 -05:00
c69cc61114prefer if let when possible
Adrian Malacoda
2017-05-16 21:35:05 -05:00
25d247f299New filters implementation. "tags" are removed and replaced with an implementation that filters directly on the event, using an object/map instead of strings.
Adrian Malacoda
2017-05-11 01:29:33 -05:00
8cd8756722add todo
Adrian Malacoda
2017-05-10 02:28:04 -05:00
97cc215f05more tags
Adrian Malacoda
2017-05-10 02:16:05 -05:00
2c0e5170f4properly implement discord channels, dry up code
Adrian Malacoda
2017-05-10 02:13:56 -05:00
bb25846566Add GCL to interwiki list
Adrian Malacoda
2017-05-10 01:16:04 -05:00
495e3129d4split logic for filtering out events into Subscription struct
Adrian Malacoda
2017-05-10 01:13:52 -05:00
7c26e0294aAdd tag filters. This is a primitive way to screen out events that do not match a certain criteria (e.g. from user Dave)
Adrian Malacoda
2017-05-10 00:17:22 -05:00
6dda3e227fadd "Logger" module which logs all received events
Adrian Malacoda
2017-05-09 23:39:21 -05:00
2baffdacd3implement Debug for all structs, provide implementation for message senders
Adrian Malacoda
2017-05-09 23:36:56 -05:00
e8b944b836implement run() which just forwards to event loop
Adrian Malacoda
2017-05-09 22:48:04 -05:00
9e9da11f79begin tenquestionmarks 0.0.2. Separate Module trait into Module struct (which holds metadata and config about the module) and EventLoop trait, which implements the event loop. The constructors still return Modules, but they are structs and not boxes.
Adrian Malacoda
2017-05-09 22:44:33 -05:00
23e32f28feupdate to discord 0.8.0
Adrian Malacoda
2017-05-09 19:50:33 -05:00
21b312543byugioh rules text shouldn't be bolded
Adrian Malacoda
2017-03-12 18:58:20 -05:00
33e83d63d9expand on mtg/ygo autolink
Adrian Malacoda
2017-03-12 18:48:34 -05:00
4888029affData YES (thanks Ikewise)
Adrian Malacoda
2017-03-05 17:18:00 +00:00
9112b4ada6add some yeses to balance out the nos
Adrian Malacoda
2017-03-05 05:29:26 +00:00
8c57bd6eb7initial working implementation of autolink module
Adrian Malacoda
2017-02-26 18:05:45 -06:00
5551ebd552WIP for autolinker module. Currently can't use stc and tqm together because of conflicting dependencies, so this is a placeholder.
Adrian Malacoda
2017-02-26 17:17:22 -06:00
a7b9d801a1Require echobox to have a parameter
Adrian Malacoda
2017-02-26 03:05:40 -06:00
fd1aecf4d3add support for "general" config in the module loader. The "general" config is found under the "general" heading and is passed to each module constructor.
Adrian Malacoda
2017-02-26 02:44:53 -06:00
0a45cbb9f2"general" as a header is reserved
Adrian Malacoda
2017-02-26 02:19:46 -06:00
d9ab75a607Initial implementation of lua module.
Adrian Malacoda
2017-02-26 02:10:28 -06:00
41fa36cccfTransmit selfjoin event on connect
Adrian Malacoda
2017-02-25 23:52:43 -06:00
109a9131f0Parse loglevel from environment variable
Adrian Malacoda
2017-02-25 23:52:31 -06:00
709eff63e0add timestamp to log message
Adrian Malacoda
2017-02-25 23:34:01 -06:00
57b52772f5set default loglevel to info
Adrian Malacoda
2017-02-25 23:25:09 -06:00
8dad1fc4aaDo not send events to their originators, or to any event not specified in the "to" list.
Adrian Malacoda
2017-02-25 21:31:32 -06:00
1fbba2554dreplace Sender with ExtSender from transformable_channels. Now we can tag each outgoing envelope with the name of its sender
Adrian Malacoda
2017-02-25 21:11:25 -06:00
544974117frename various sender/receiver variables to be clearer
Adrian Malacoda
2017-02-25 20:38:09 -06:00
4d5a412395we're sending Envelope and transmitting Arc<Envelope>, since we're wrapping the Envelope in an Arc to transmit it, we (probably) don't need to wrap the Event in an Arc too
Adrian Malacoda
2017-02-25 20:33:47 -06:00
f22e4755d3remove unused variable
Adrian Malacoda
2017-02-25 20:20:01 -06:00
37a9645f5bSimplify module trait by combining produce/consume event methods into a single run method that runs in the module's own thread and can produce and/or consume events. Introduce an Envelope struct that encapsulates event + to/from so we can (eventually) tag every event and also limit where events are sent (e.g. you can have a specific module configured to talk or listen only to a certain other module).
Adrian Malacoda
2017-02-25 20:17:46 -06:00
442b617f31now with amazing echobox powers
Adrian Malacoda
2017-02-22 23:40:30 -06:00
2c893926c3can finally commit more helpful example config
Adrian Malacoda
2017-02-20 15:11:13 -06:00
96bc25234emore event types
Adrian Malacoda
2017-02-19 18:21:11 -06:00
ce35368676tag senders/receivers with module names so we can eventually associate individual events to module names
Adrian Malacoda
2017-02-19 17:31:37 -06:00
0f945ec604create a dedicated Message struct and implement reply(&str) on there, since it seems to be a commonly used thing. Begin implementing helpers for command parsing.
Adrian Malacoda
2017-02-19 05:37:56 -06:00
b9d5b7916ccleanup
Adrian Malacoda
2017-02-19 05:06:55 -06:00
9b00500a77pvn dependency
Adrian Malacoda
2017-02-19 04:49:26 -06:00
c5a88b8405initial pvn module implementation
Adrian Malacoda
2017-02-19 04:49:06 -06:00
84d2921f8fsend/receive Arc<Event> instead of Event so we don't have to clone objects all over the place. This might also enable us to be a bit more flexible with what we send with Events, and might simplify things elsewhere.
Adrian Malacoda
2017-02-19 02:55:30 -06:00
1a69349557Add ability to specify the "playing" status string (with tenquestionmarks default)
Adrian Malacoda
2017-02-17 02:44:00 -06:00
5fc231eec6Add logging
Adrian Malacoda
2017-02-17 02:38:15 -06:00
166805d1c2actually add random module
Adrian Malacoda
2017-02-16 13:00:17 -06:00
26e56ebee9Add random response module
Adrian Malacoda
2017-02-16 02:00:38 -06:00
2c87c586e2Remove hello module
Adrian Malacoda
2017-02-16 01:07:19 -06:00
0a51c7294frename plugin -> module
Adrian Malacoda
2017-02-16 01:05:33 -06:00
bdee07143bfinally a working implementation of Discord sender
box_messagesender
Adrian Malacoda
2017-02-16 00:27:53 -06:00
7581521b61try arc instead of box
Adrian Malacoda
2017-02-16 00:16:48 -06:00
b238b98b82start actually implementing discord plugin
Adrian Malacoda
2017-02-15 23:45:14 -06:00