dngfx
80cbf2d66e
Add 8ball module
2018-09-01 11:04:51 +01:00
dngfx
0a96a79077
Cosmetic enhancement for ducks and dice.
2018-09-01 10:52:04 +01:00
dngfx
3f66940e77
Remove superfluous code from ducks.py and introduce dice.py (DND rolling function .roll 1d20)
2018-09-01 10:22:44 +01:00
dngfx
3d3cb9a598
Switch print() to log.info() for next-duck-wave information.
2018-09-01 09:09:02 +01:00
dngfx
e5d298af60
Fix this back to channel.send_message(), stdout just no.
2018-09-01 02:21:57 +01:00
dngfx
cc21f1d9a3
Set a timer for sending out ducks randomly, and change some messages to stdout.
2018-09-01 01:56:07 +01:00
dngfx
4a9d823d54
Adjust timing for production.
2018-08-31 18:31:46 +01:00
dngfx
06466187b6
Introduce .killers for ducks.py
2018-08-31 18:23:46 +01:00
dngfx
7e06e06ee0
THE OVERLORD DEMANDS I TRASH IT
2018-08-31 17:04:15 +01:00
dngfx
4b654ed12d
Change to stdout because i'm a pillock.
2018-08-31 17:02:46 +01:00
dngfx
95d1475f2c
.friends support! Yay, lets be friends.
2018-08-31 16:58:25 +01:00
dngfx
6e400a5470
Just duck things~
2018-08-31 16:06:11 +01:00
dngfx
bce8cef524
Migrate duck data to user_channel_settings.
2018-08-31 14:36:25 +01:00
dngfx
0f1e683cd3
Where on earth did this PHP relic come from?
2018-08-31 14:16:27 +01:00
dngfx
0bb3ae9273
Fix decoys stacking up and attempting to take over irc.
2018-08-31 14:10:20 +01:00
dngfx
309b119ec5
That commit was just a decoy.
2018-08-31 14:00:09 +01:00
dngfx
a6d2f4cd5b
Decoy Fiddling
2018-08-31 13:58:44 +01:00
jesopo
6f2da2c40f
Remove print in ducks.py
2018-08-31 13:44:39 +01:00
jesopo
b7cf524e98
Give modules event objects with "context"s, to facilitate purging all the event
...
hooks for a module
2018-08-31 13:44:39 +01:00
dngfx
90ce92dc39
Revert "Reformat"
...
This reverts commit abed9cf
2018-08-31 10:51:47 +01:00
dngfx
abed9cf4ea
Reformat
2018-08-31 10:50:37 +01:00
dngfx
391671185d
A start on .decoy for ducks.
2018-08-31 06:27:41 +01:00
dngfx
301d3cb45a
Revert the god awful database edits I made and make ducks.py convert to int. Might be an idea to make a make_int function?
2018-08-31 05:48:53 +01:00
dngfx
a635b1f0a0
Apparently i auto-reformatted the code. Either way I fixed ducks spawning endlessly.
2018-08-31 04:35:42 +01:00
dngfx
8d6f0fffa9
Make channel values being inserted into SQLite integers if they're numbers.
...
Update ducks.py, you can now .bef and .bang! Coming soon: .friends, .killers, and .ducks
Update google to use gb instead of us. We're British goddamnit.
2018-08-31 04:14:56 +01:00
dngfx
e272d50f49
Update strax generator with a bunch of new phrases and attacks.
2018-08-30 18:11:17 +01:00
jesopo
d37fc44343
use assure_call for trakt.py and lastfm.py
2018-08-30 18:07:50 +01:00
dngfx
377b7d39df
Update strax generator with a bunch of new phrases and attacks.
2018-08-30 16:57:45 +01:00
dongfix
b13c971507
Update strax generator to make more sense when exclaiming instead of questioning.
2018-08-30 16:17:15 +01:00
jesopo
dceeef8648
Add missing comma in strax.py
2018-08-30 16:15:24 +01:00
dongfix
f6f183c2bd
Fix strax.py to randomise other things and fix random choice 1,2
2018-08-30 16:03:54 +01:00
dongfix
fd94b939e0
Add strax.py .strax command.
2018-08-30 15:55:57 +01:00
jesopo
ebd3ab47c8
Add missing "," in channel_op.py
2018-08-30 11:15:57 +01:00
jesopo
2d4a1d42ce
Only get highlight-spam-threshold setting when there's more than one highlight
...
in a line
2018-08-30 11:14:19 +01:00
jesopo
49cc4d8d7b
Add help and usage for commands in channel_op.py
2018-08-30 11:13:26 +01:00
jesopo
ceb73f586c
Only show 2 biggest units in !seen
2018-08-29 15:52:04 +01:00
jesopo
669aa32c31
Report actual topic setter (use 333, not 332)
2018-08-29 15:17:06 +01:00
jesopo
3ec521538a
Print topics in print_activity.py
2018-08-29 14:57:40 +01:00
jesopo
76d7a8de36
Delete "permissions" setting when it's empty
2018-08-29 14:34:52 +01:00
jesopo
6ecae3b261
Add the ability to only require authentication if your nickname is registered
2018-08-28 18:16:19 +01:00
jesopo
b9d4e11b77
Add !givepermission and !removepermission to permissions.py
2018-08-28 16:53:21 +01:00
jesopo
672b22e62c
Change command.py to use call_limited
2018-08-28 16:35:07 +01:00
jesopo
4922ee8f4a
Allow users to see their internal IDs and channel IDs
2018-08-28 15:33:56 +01:00
jesopo
f8a6aa087b
Save when a user sends their "first" words (won't be correct for old users)
2018-08-28 15:33:41 +01:00
jesopo
9a78dabcc2
80 cols!
2018-08-28 15:15:04 +01:00
jesopo
b2259c2ea8
Added !channelsetoverride in set.py
2018-08-28 14:55:57 +01:00
jesopo
b62cd4be84
.log -> .buffer, i missed this one!
2018-08-28 14:55:35 +01:00
jesopo
b699c120a0
Change how specific events assure their hooks gets the event independant of
...
loading order
2018-08-28 14:55:08 +01:00
jesopo
1b8c663c1a
Made "you need to be authenticated" message more helpful
2018-08-28 12:48:08 +01:00
jesopo
5aa73cd64b
Only allow users to send coins to users that have had coins before
2018-08-28 12:45:42 +01:00
jesopo
d8466ecf6d
Require authentication to use or potentially lose coins
2018-08-28 12:42:10 +01:00
jesopo
2806a915bc
Add !resetcoins in coins.py
2018-08-28 12:39:16 +01:00
jesopo
e5a5fa5c4b
modules/logging.py -> IRCLogging.py; IRCLog.py -> IRCBuffer.py; change logging
...
to be an object on the server object instead of an event call
2018-08-28 12:23:57 +01:00
jesopo
ea9b6f32dc
Prevent users sending coins to themselves
2018-08-25 20:09:44 +01:00
jesopo
1ae1206b8a
.add -> .append typo in channel_save.py
2018-08-19 00:20:24 +01:00
jesopo
9a3f2e5de6
Change the database to give channels and users ids and use those in the settings
...
tables
2018-08-19 00:19:53 +01:00
jesopo
88eb7b695f
show uptime in 1w1d1h1m1s format
2018-08-18 21:54:12 +01:00
jesopo
33b48f5ea3
.wrote -> .write typo in words.py
2018-08-18 18:29:06 +01:00
jesopo
4da8a4ac39
Added code to preprocess check a command that only requires authentication, not
...
a permission
2018-08-18 18:28:41 +01:00
jesopo
054a98c0c8
Added !resetkarma in karma.py
2018-08-18 18:28:27 +01:00
jesopo
dacf74e2b1
Show spin colour, make sure there's bet amounts for all bets, fix street regex,
...
show total winnings and support low/high for !roulette in coins.py
2018-08-18 18:26:47 +01:00
jesopo
84a793caf2
Support multiple bets in one go with !roulette in coins.py
2018-08-16 11:54:51 +01:00
jesopo
8ef02fdbd8
Added streets and big/small to !roulette
2018-08-15 18:33:14 +01:00
jesopo
eb3155d3e0
implemented !roulette in coins.py
2018-08-15 17:55:05 +01:00
jesopo
bc6278f9df
username -> lastfm_username
2018-08-15 10:34:58 +01:00
jesopo
51cf5c56d4
save !to commands for the target user, not the user sending the command!
2018-08-13 18:19:17 +01:00
jesopo
0f09184e48
Add setting to prevent sending a random quote on quit
2018-08-13 16:04:27 +01:00
jesopo
63418dc0f3
Don't show actual lastfm name unless it was explicitly provided
2018-08-13 16:04:08 +01:00
jesopo
b369f5d6e8
Use regex match to avoid coin values less than 0.01
2018-08-13 16:01:06 +01:00
jesopo
d89fcbfe46
Round up when checking zeroness
2018-08-10 14:00:33 +01:00
jesopo
6709fa1878
Prevent highlighting users in !wordusers and !richest
2018-08-10 13:56:45 +01:00
jesopo
fed2d64739
don't permit 0-coin flips
2018-08-10 13:56:00 +01:00
jesopo
b24e37fed6
fixed filtering out bankrupt users from !richest
2018-08-10 12:59:06 +01:00
jesopo
922ff5ac84
Fix "decimal" typo in !richest
2018-08-10 12:54:19 +01:00
jesopo
a385270cb9
Switch to using Decimal in coins.py, floats are weird!
2018-08-10 12:22:41 +01:00
jesopo
155bf689ea
Have 2 decimal places for coins!
2018-08-10 10:28:43 +01:00
jesopo
8d50b702f3
A 10 second interval for interest rates is not good
2018-08-10 10:28:24 +01:00
jesopo
760b46979d
stderr not stdout, int() interest rates and actually redo interest rates every
...
hour
2018-08-09 18:02:29 +01:00
jesopo
a114390cde
Allow users to see other people's coins
2018-08-09 16:37:55 +01:00
jesopo
1cc83a4a38
Fix more issues with referencing "server" in interest() in coins.py
2018-08-09 16:13:17 +01:00
jesopo
e477e8f04f
"wins/loses %d coin(s)!" instead of "wins/loses %d!"
2018-08-09 16:11:46 +01:00
jesopo
e113ec23d9
Add help strings for stats.py
2018-08-09 15:16:35 +01:00
jesopo
4502256263
Fix wrong method of referencing server in timer callback
2018-08-09 15:16:15 +01:00
jesopo
67e030155d
Added interest rates in coins.py, filter out 0 for !richest
2018-08-09 14:22:25 +01:00
jesopo
213bf999b9
Changed find_all_by_setting to not return setting, added !richest
2018-08-09 13:49:44 +01:00
jesopo
3e8f10dff5
More grammar
2018-08-09 13:35:31 +01:00
jesopo
f6058594f6
Round up redeem-delay time, allow users to send coins
2018-08-09 13:18:05 +01:00
jesopo
beb2b4a606
Only allow !redeemcoins when you have no coins
2018-08-09 12:34:12 +01:00
jesopo
7c1fce17cd
Remove print in coins.py, fixed grammar a little
2018-08-09 12:29:51 +01:00
jesopo
c1193774f0
Added coins.py
2018-08-09 12:24:09 +01:00
jesopo
e424e3b294
fixed typos in !channelget
2018-08-08 20:49:34 +01:00
jesopo
ee86848b62
Added !get and !channelget
2018-08-08 20:45:57 +01:00
jesopo
fda3d65d53
Added a setting to disable ctcp responses
2018-08-08 13:41:25 +01:00
jesopo
2e9ce67586
Also track BitBot's words in words.py
2018-08-08 10:33:33 +01:00
jesopo
bb53f6f565
get highlight-spam-protection setting before highlight-spam-threshold
2018-08-06 14:27:49 +01:00
jesopo
0ab7c11cb8
use TimeRotatingFileHandler in logging.py
2018-08-05 20:44:35 +01:00
jesopo
400aaf43d0
also empty command stdout when there's no !more
2018-08-05 20:43:52 +01:00
jesopo
b128eb170b
Grammar is important
2018-08-05 20:43:42 +01:00
jesopo
6a7369f7de
changed words.py to use new user_channel_settings table
2018-08-05 17:16:15 +01:00
jesopo
7114bb7155
only get "sed" setting when a message that looks like a sed command comes in
2018-08-05 15:35:23 +01:00
jesopo
c2c60e309a
Improve using correct nickname capitalisation in words.py
2018-08-05 13:14:40 +01:00
jesopo
7698105761
When a user is online, use correct capitalisation in !wordusers
2018-08-05 13:12:07 +01:00
jesopo
1af821123b
only set autojoin when we've joined a channel not in our autojoin list
2018-08-05 12:57:19 +01:00
jesopo
38a518f1fa
Change to.py to use user_channel_settings in to.py and set priority to MEDIUM to
...
avoid !to to one's self sending two messages
2018-08-05 12:53:02 +01:00
jesopo
6b1641c438
Put milliseconds in logging.py
2018-08-05 12:13:25 +01:00
jesopo
06289171fa
Actually add event hook for CRITICAL
2018-08-05 11:54:24 +01:00
jesopo
4962b11199
Add CRITICAL log level to logging.py
2018-08-05 11:52:50 +01:00
jesopo
f143169cb5
only try to delete !to messages when there are any
2018-08-05 11:42:40 +01:00
jesopo
5e42608ead
Improved logging, added TRACE logging in Database.py to see how it performs
2018-08-05 11:30:43 +01:00
jesopo
fbd6975351
Remove debug print, improve wikipedia.py
2018-08-04 12:48:38 +01:00
jesopo
65feaef283
Add help for !words
2018-08-03 16:25:27 +01:00
jesopo
45dca53497
it's "#--ignore" not "#!--ignore"
2018-08-03 14:29:37 +01:00
jesopo
e2e395c352
Revamped words.py to track words per user per server so we're not writing a huge
...
json string to sqlite every time someone says a tracked word
2018-08-03 13:44:50 +01:00
jesopo
7caf45e77e
Grammer is important
2018-08-03 11:40:33 +01:00
jesopo
84ea92fea8
get user permissions every time they try to use a command that requires
...
permissions, instead of caching their permissions when they sign in
2018-08-02 23:00:42 +01:00
jesopo
1c50a27564
Added missing ")" in print_activity.py
2018-07-31 08:48:37 +01:00
jesopo
b8145dd60d
support optional data in upc.py
2018-07-25 13:43:13 +01:00
jesopo
f751d85824
add !gtin to upc.py
2018-07-25 13:06:31 +01:00
jesopo
a7a28adde7
Add upc.py
2018-07-25 13:05:37 +01:00
jesopo
46e124a5db
Included notices in print_activity, don't always print channel name
2018-07-23 10:20:00 +01:00
jesopo
ad68527688
remove debug print in books.py
2018-07-22 20:55:16 +01:00
jesopo
8cf45c2432
rating, date and authors are optional in google's book apis
2018-07-22 20:53:44 +01:00
jesopo
e73d056b34
include quit reasons in print_activity if present
2018-07-20 13:12:55 +01:00
jesopo
270bfe58ed
Ban formats aren't bools
2018-07-20 13:12:41 +01:00
jesopo
6213ba5f61
added a way to prevent bitbot accepting invites
2018-07-19 14:39:29 +01:00
jesopo
e99671aced
Added a channel setting for banmask, added !unban
2018-07-19 14:39:10 +01:00
jesopo
d0ef4432b3
move sending CAP sasl request to sasl.py
2018-07-16 21:41:39 +01:00
jesopo
d385d73dab
use PRIORITY_URGENT in perform.py
2018-07-16 00:41:08 +01:00
jesopo
2012a388da
move sasl logic to it's own module
2018-07-15 23:56:06 +01:00
jesopo
2b30ffc71b
fix print_activity still using old EventManager priority location
2018-07-15 23:55:21 +01:00
jesopo
66397cb24a
Made part/quit print_activity functions more uniform
2018-07-15 15:22:37 +01:00
jesopo
d3e8920e2a
Use QUOTES.items() in quit.py
2018-07-15 15:19:11 +01:00
jesopo
68298bbccf
Added EventHook.call_for_result to get a result or default from an event
2018-07-15 15:15:52 +01:00
jesopo
06de65b1c1
Move quit quotes to it's own module
2018-07-15 15:09:11 +01:00
jesopo
01f9f51ef2
print_messages->print_activity, print more things!
2018-07-15 14:14:20 +01:00
jesopo
718da30728
skip !more's out/err, added a way to split messages from their prefixes for
...
logging purposes
2018-07-14 09:50:12 +01:00
jesopo
7d9f3dc6e4
Allow translate source/target languages to be more than 2 chars
2018-07-14 09:06:52 +01:00
jesopo
d12b61620d
Implemented delimited "event chains" and changed pong.py to use it
2018-07-08 11:18:55 +01:00
jesopo
84cc65526f
Track user channel modes by user object, not nickname
2018-07-02 16:15:26 +01:00
jesopo
ae9d715e55
Added guid functionality to random_number.py
2018-07-02 14:45:25 +01:00
jesopo
dc0babe599
Accept http and https soundcloud urls
2018-07-02 14:34:46 +01:00
jesopo
50bf76d795
Add logic in soundcloud.py to accept urls and search back through log for urls
2018-07-02 14:33:38 +01:00
jesopo
b27610e23d
Fixed translate.py
2018-07-02 12:51:36 +01:00
jesopo
7affd3b9f3
Add missing on_kick event hook in channel_save
2018-07-02 12:51:18 +01:00
jesopo
cb486d6122
random.py -> random_number.py due to name collision (stdlib)
2018-07-02 11:09:49 +01:00
jesopo
3c138c1d18
If BitBot is kicked from a channel, remove from channel_save
2018-07-02 11:09:22 +01:00
jesopo
464510cd80
OMDBAPI now needs an api key
2018-07-02 11:09:02 +01:00
jesopo
d84cb62180
Added first version of print_message to prettyprint log certain activities
2018-05-02 07:30:16 +01:00
jesopo
11ddb1fca5
Remove rickroll
2018-05-02 07:20:52 +01:00
jesopo
dcd0c0a542
Use IRCServer.original_nickname in perform.py as we might not have our "given" nickname yet
2018-05-02 07:20:13 +01:00
Evelyn
b85d7bd3b5
NR: Don't titlecase Eagle station names. This is already done.
2018-02-04 09:42:09 +00:00
Evelyn
840fbcdb10
Merge branch 'master' of github.com:jesopo/bitbot
2018-02-04 09:27:54 +00:00
Evelyn
922ba20117
NR: Eagle endpoints are now under /json/ going forward
2018-02-04 09:27:35 +00:00
jesopo
5794b3cd92
Added option to ban highlight spammers instead of just kicking them
2017-12-26 13:51:10 +00:00
jesopo
14ffa6716d
Added highlight spam detection/prevention logic to channel_op
2017-12-26 11:50:18 +00:00
jesopo
0cc72d5d66
Added a "replay" system to EventManager hooks, to replay missed .calls
2017-12-26 10:32:36 +00:00
Evelyn
62ac516d1f
NR: Indicate interesting activity at locations
2017-12-10 15:20:48 +00:00
Evelyn
c6572bd6f4
NR: 0000 if headcode None
2017-12-04 18:28:13 +00:00
Evelyn
0f1b87a8c9
NR: Work with Eagle's new and improved format
2017-12-04 17:50:11 +00:00
Evelyn
6bdeccac03
NR: bool.get, what
2017-11-03 19:24:27 +00:00
Evelyn
93862e0347
NR: Don't die if Eagle's not here
2017-11-03 19:20:12 +00:00
Evelyn
9588b7520a
NR: change eagle ~branding~
2017-11-02 22:56:00 +00:00
Evelyn
0894d642bb
typo
2017-11-01 14:27:36 +00:00
Evelyn
1f09d69a75
Abandon capability request if an empty ACK (a spec violation but okay) is received
2017-11-01 14:25:52 +00:00
Evelyn
c833d9dbb6
NR: Formatting improvements for external, don't reference non-existent summaries
2017-11-01 12:03:36 +00:00
Evelyn
57dfb56ba7
NR: slightly simplify association summaries
2017-10-31 23:13:16 +00:00
Evelyn
e669b7c2e6
NR: Indicate direction for associations
2017-10-31 11:57:22 +00:00
Evelyn
2055b6656d
NR: Full association summaries for SCHEDULE, LDB
2017-10-31 10:58:05 +00:00
Evelyn
6008cbac2c
NR: Add date filter
2017-10-29 12:00:08 +00:00
jesopo
0df7abb03e
Handle empty CAP, additional IRCLog feature, better tls, better channel_save logic, add sed-sender-only setting
...
Signed-off-by: jesopo <github@lolnerd.net>
2017-10-27 13:15:33 +01:00
Evelyn
72b2f3bc29
Amber Rudd
2017-10-27 09:40:26 +01:00
Evelyn
aa6529ab0c
NR: Use the same association descriptions for LDB and SCHEDULE
2017-10-23 18:41:00 +01:00
Evelyn
b35a64ae48
NR: Don't assume associations present in eagle output
2017-10-23 16:18:10 +01:00
Evelyn
fa8f7da166
NR: Use SCHEDULE associations
2017-10-23 16:13:58 +01:00
Evelyn
b289909bcc
NR: Multiline support for head, include ferry services in nrtrains
2017-10-14 23:11:42 +01:00
Evelyn
a8ea18202e
Signals: Glenn Moramarco quote
2017-10-10 10:54:38 +01:00
Evelyn
1e644e78f3
Signals: Add Turnball
2017-09-29 21:45:48 +01:00
Evelyn
249a3b40b3
Make the telegram module vaguely optional
2017-09-06 00:17:55 +01:00
Evelyn
84bfe81182
Bitbot can do Telegram now, I guess
2017-09-05 20:50:20 +01:00
Evelyn
5dcbfe588d
Increase default period
2017-09-03 06:20:41 +01:00
Evelyn
48fd351089
NR: Shorten times
2017-09-02 12:54:20 +01:00
Evelyn
267edd7c0b
NR: Allow displaying CRS only for arrivals/departures
2017-09-02 12:37:08 +01:00
Evelyn
3a7937d0e2
NR: Support Eagle API keys, don't assume platforms are available
2017-09-02 10:11:26 +01:00
Evelyn
f00f1bda94
NR: Eagle now provides a best name via the combined TIPLOC set as 'name', use that
2017-09-01 10:07:21 +01:00
Evelyn
d3d2be44cb
NR: Use the actual name field
2017-08-31 19:39:04 +01:00
Evelyn
0822d323bc
NR: Take platforms from SCHEDULE if not available in LDB
2017-08-31 19:08:09 +01:00
Evelyn
a78b713268
NR: List delayed trains properly, strip prefix
2017-08-29 22:53:49 +01:00
Evelyn
e69a0c3937
NR: Expand period
2017-08-27 14:46:16 +01:00
Evelyn
f6766ae477
Implement 'time' parameter
2017-08-27 14:41:11 +01:00
Evelyn
bb8d73d9d1
Signals: add quote
2017-08-25 10:57:54 +01:00
Evelyn
78c80a71dd
Signals: Don't take Hitler out of context, add 'tear down this wall' etc
2017-08-24 17:00:55 +01:00
Evelyn
9d62e6f301
Add power/inferred tops filtering to nrtrains
2017-08-11 10:03:05 +01:00
Evelyn
69b1a6bd9b
'Death solves all problems - no man, no problem.' was in fact written by Anatoly Rybakov, not Stalin
2017-08-10 00:18:45 +01:00
Evelyn
e232ad5dae
Add IRCv3→SASL support for nickserv auth, added optional module whitelist, added server option for recording channel keys, increased flexibility for event raising in linehandler, probably other things too
2017-07-12 10:00:45 +01:00
Evelyn
81edacfba6
Sun Tzu*2, optimism (ha)
2017-06-23 21:13:31 +01:00
Evelyn
a740ccbb61
add quote
2017-06-17 11:29:54 +01:00
Evelyn
36816af1d8
Dag Hammarskjöld quote somewhat relevant to our lives at present
2017-06-16 14:04:04 +01:00
Evelyn
bc94c862c1
NR: Allow null scheduled times, add inferred power/class if available in both modes, titlecase scheduled only location names
2017-06-05 14:25:05 +01:00
Evelyn
9ef5af3894
NR: Prefer LDBSVWS for headcodes
2017-05-30 22:25:12 +01:00
Evelyn
7e19fbe047
NR: I really hate SOAP. Don't break if you don't have a LDBSVWS query
2017-05-30 22:17:30 +01:00