3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-26 05:49:27 +01:00
Commit Graph

2139 Commits

Author SHA1 Message Date
Pragmatic Software
274193bed7 Allow quote grabbers to delete their own grabs 2013-10-26 02:39:54 +00:00
Pragmatic Software
b7b9ce76ca Fix potential infinite loop due to not restoring pos value after regex 2013-10-25 07:33:43 +00:00
Pragmatic Software
e1588491e3 Improve error messages for grab command 2013-10-22 21:30:56 +00:00
Pragmatic Software
1155205f0e Bot now keeps message history for itself -- can now be grabbed for quotegrabs 2013-10-22 18:57:08 +00:00
Pragmatic Software
111847340e Make c2english output slightly more clean 2013-10-19 18:42:05 +00:00
Pragmatic Software
c6e67200c1 Run code through gcc for syntax checking before attempting to parse to english 2013-10-19 17:56:43 +00:00
Pragmatic Software
aeec4fb2f5 Restore missing "$keyword is $result" when triggering factoid without $ref_from 2013-10-14 17:22:06 +00:00
Pragmatic Software
a4def7d653 Fix potential race-condition check-ban issue where a server could send a message immediately after someone is banned, causing them to be falsely detected as evading a ban 2013-10-14 11:53:34 +00:00
Pragmatic Software
6bb3e86f33 Minor improvements to html export css so links aren't as ugly 2013-10-13 10:56:01 +00:00
Pragmatic Software
d374fdfc01 Skip channels without factoids in html export 2013-10-13 10:23:49 +00:00
Pragmatic Software
b6a09e50e3 Add table of contents to quotegrabs html export 2013-10-13 10:23:20 +00:00
Pragmatic Software
7cf8e91ab2 Fix export command factoids/quotegrabs argument 2013-10-13 10:14:20 +00:00
Pragmatic Software
32385ec691 Fix wrong quote-type for #include derp 2013-10-12 16:35:23 +00:00
Pragmatic Software
c91a8e5c3d Fix /say substitution derp that allowed "/say /msg foo bar" to actually invoke /msg rather than saying "/msg foo bar" 2013-10-12 15:06:27 +00:00
Pragmatic Software
02ebf106a8 Add table of contents to factoids html export 2013-10-12 13:52:12 +00:00
Pragmatic Software
37dca64465 Add missing closing html tags to quotegrabs html export 2013-10-12 13:36:36 +00:00
Pragmatic Software
aab27f4797 Improve factoids export to use tablesorter 2013-10-12 13:35:57 +00:00
Pragmatic Software
fd12d228d8 Improve author(s) column in quotegrab html export 2013-10-12 11:00:29 +00:00
Pragmatic Software
3d233dcdfe Add tablesorter javascript library and related css 2013-10-12 04:39:24 +00:00
Pragmatic Software
ba5042259f Improve quotegrab export and touch-up database 2013-10-12 04:35:01 +00:00
Pragmatic Software
701e554ecf Improve quotegrab html export with sortable columns 2013-10-11 18:17:07 +00:00
Pragmatic Software
174e7f71e4 Fix issues with quoted literals and #include statement 2013-10-11 14:50:29 +00:00
Pragmatic Software
272e13236f Preserve empty lines in source 2013-10-07 05:03:03 +00:00
Pragmatic Software
bd9e53e77a Split multi-context grabbed nicks to show first nick when displaying such quotegrabs 2013-10-04 22:14:16 +00:00
Pragmatic Software
2cb74ecf95 Add functionality to grab multiple nicks in one quotegrab 2013-10-04 04:55:45 +00:00
Pragmatic Software
dc1390fca2 Improve formatting 2013-09-16 10:35:32 +00:00
Pragmatic Software
7decfdf28a Correct devalidation and QUIT event issues 2013-09-14 01:56:00 +00:00
Pragmatic Software
23d2e57527 Added ability to lock factoids to prevent editing; improved detection of ban-evasion by devalidating accounts on part/quit and devalidating existing accounts that match a banmask when a ban occurs 2013-09-13 21:48:19 +00:00
Pragmatic Software
d739415a29 Fix show/undo/replace/etc (need args stripped first); undo once again updates last-code record 2013-09-13 11:32:15 +00:00
Pragmatic Software
2720071dbd compiler_vm:
Add compiler flags section to web-pasted output
  Clean up output section in web-pasted output
  Save cc-specific flags (-paste, -nomain, etc) to last-code
2013-09-13 11:03:50 +00:00
Pragmatic Software
8d882a4240 compiler_vm: -paste and -nomain arguments no longer need to be first arguments; fix issue with replace command 2013-09-13 09:29:24 +00:00
Pragmatic Software
a6a3129171 Preserve comments in code/paste 2013-08-27 12:49:14 +00:00
Pragmatic Software
522b9770dd compiler_vm:
Fix comment stripping logic regarding C89 comments versus C99 comments in code like `int i = 10 //**/ 2\n;`
  Code history now includes argument flags
  Improved regex parsing of diff tags
2013-08-27 00:42:17 +00:00
Pragmatic Software
4adedc2a90 Show "No difference." when code is the same in cc diff 2013-08-24 15:01:31 +00:00
Pragmatic Software
cb74a9be1e Improved matching of tags in cc diff to be less greedy 2013-08-23 22:26:32 +00:00
Pragmatic Software
e6ae49fd4f Improve handling of spaces in cc diff 2013-08-23 18:26:43 +00:00
Pragmatic Software
36e48cb703 Added cc diff command 2013-08-22 20:41:54 +00:00
Pragmatic Software
0e783365d1 Misc updates to modules/compiler_vm 2013-08-16 17:28:17 +00:00
Pragmatic Software
a6f608cda5 Don't remove ban_timeout on -q (only +b/-b are tracked); use wildcard host when banning for evasion instead of specific host 2013-08-06 19:56:28 +00:00
Pragmatic Software
2a332d6415 Improve ban-evasion detection 2013-08-03 17:26:49 +00:00
Pragmatic Software
edff4b6c4c Update ref_user to use full hostmask instead of just nick; add edited_by/edited_on to factoid metadata levels hash 2013-07-31 13:48:50 +00:00
Pragmatic Software
d2d5695dda Add edited_by/edited_on fields when changing factoids; Use full hostmasks instead of just nick for owner/edited_by fields when adding/editing factoids 2013-07-31 13:29:37 +00:00
Pragmatic Software
67e0833f93 Bug-fixes to recent commits 2013-07-30 13:12:21 +00:00
Pragmatic Software
2509bcec64 Fix splitting of IPv6 masks in modes in IRC/Connection.pm
Include channel in "Unbanning ..." message in unban_user
Set target_nickserv_account if accounts match in check_bans
2013-07-30 09:50:59 +00:00
Pragmatic Software
7f2cefea7a Don't check for ban evasion on PARTs 2013-07-28 14:12:57 +00:00
Pragmatic Software
d170f75924 Improve ban evasion detection 2013-07-28 10:31:12 +00:00
Pragmatic Software
416115f12f Ban timeouts hash converted to DualIndexHashObject to properly group masks by channels 2013-07-24 12:35:40 +00:00
Pragmatic Software
58d45480a5 Using grab command without arguments now properly displays help text 2013-07-24 12:34:13 +00:00
Pragmatic Software
553eceeb77 Fix interpretation of /me commands 2013-07-24 12:33:19 +00:00
Pragmatic Software
2a62729fcc Fix potential infinite loop in "replace all"; show line numbers in diagnostics if using "-paste"; other misc fixes 2013-06-17 22:25:05 +00:00
Pragmatic Software
8d6c2587a8 Show number of matching quotes only if more than one match 2013-06-09 00:04:20 +00:00
Pragmatic Software
0f234734b8 Prepend "/me" to ACTION messages; update Quotegrabs to recognize "/me" messages 2013-06-04 17:09:30 +00:00
Pragmatic Software
8586038f03 Misc updates 2013-06-03 17:04:24 +00:00
Pragmatic Software
dc52430044 Add SSL support, and other misc updates 2013-02-25 02:27:24 +00:00
Pragmatic Software
abd9fafb87 Update factoids and quotegrabs database 2013-02-13 07:23:01 +00:00
Pragmatic Software
57166ff734 compiler_vm: Handle --version flag 2013-02-05 11:14:19 +00:00
Pragmatic Software
3d492ed76b Allow function argument list to be empty; e.g., int main() { code } 2013-02-01 23:35:11 +00:00
Pragmatic Software
e846f24716 Rename -naked to -nomain; fix issue with function prototypes 2012-12-30 08:14:27 +00:00
Pragmatic Software
9205736b3f Don't add {}'s around single statements following if/for/etc; add -naked flag to prevent wrapping code with a main function 2012-12-29 16:19:51 +00:00
Pragmatic Software
e93ac26062 compiler_vm: Warn about #defines not terminated with \n 2012-11-21 19:01:10 +00:00
Pragmatic Software
d5e5f2c728 Reposition * character in function regex to be consistent 2012-11-19 15:57:54 +00:00
Pragmatic Software
c8d77ed230 Replace A-Z0-9_ in function regex with \w to slightly improve readability 2012-11-19 15:52:07 +00:00
Pragmatic Software
a6a2b3eeb3 Minor clean-up of previous commit to remove unnecessary substitutions 2012-11-19 15:45:13 +00:00
Pragmatic Software
1d7791d9a5 compiler_vm: Improve extraction of function parameters containing parentheses 2012-11-18 19:18:56 +00:00
Pragmatic Software
3f771df8bc compiler_vm: added -paste flag to send formatted source/output to paste site and show link instead of output; e.g. cc -paste <code> --> http://somepastesite.com 2012-11-14 18:36:04 +00:00
Pragmatic Software
39a38b58f8 Triggering non-existent factoids now attempts to factfind (for keywords and text) before trying a levenshtein closest match (of keywords) 2012-11-04 20:42:38 +00:00
Pragmatic Software
b8d2d0797e compiler_vm: Show output from program when using paste command
google search: Show "No results found" if no results found
c99std/c11std: Minor clean-up of output
2012-11-02 22:08:20 +00:00
Pragmatic Software
208f89837f Improve handling of auto-op and op-commands on per-channel basis
Restore functionality to log out admins when they part/quit
Improve display of quit messages in log
2012-10-27 21:03:10 +00:00
Pragmatic Software
f16dedf680 compiler_vm: add script to mount/umount qcow2 for editing 2012-10-24 12:29:00 +00:00
Pragmatic Software
4602c3b732 compiler_vm: Pass host date to guest
Replace "Killed" with "[Killed]"
             Don't print empty '' after unprintable char values
             Set default language in compiler_client.pl to C11
2012-10-24 12:26:18 +00:00
Pragmatic Software
7f8b39d20a compiler_vm: Limit cpu usage and kill processes using excess cpu 2012-10-07 17:48:18 +00:00
Pragmatic Software
f61bb61aeb Channels: Properly check for arguments to chanadd/chanrem
HashObject: Fix potential divide by zero
compiler_vm: Limit cpu usage and kill processes using excess cpu
             Unbuffer stdout
2012-10-05 01:59:04 +00:00
Pragmatic Software
65660625c2 Added dice_roll.pl module, and updated others 2012-09-18 01:32:07 +00:00
Pragmatic Software
bf91c67346 compiler_vm: improve parsing/function extraction 2012-09-17 07:12:16 +00:00
Pragmatic Software
2b5ff48a4c Interpreter: tell <nick> about <command> now case-insensitive
AntiFlood: Correct use of ignore list
IgnoreList: Ignoring user without args now permanent instead of 5 mins
            Save time when ignore expires instead of seconds remaining
            Improve output of `ignore list` command for readability
2012-09-06 10:09:44 +00:00
Pragmatic Software
a0bcdfef2f compiler_vm: improve parsing of cpp and functions (properly handle \n) 2012-09-03 18:48:47 +00:00
Pragmatic Software
7ed26f928e compiler_vm: fix \n after #include directives 2012-09-03 07:02:17 +00:00
Pragmatic Software
a4cf4136ee compiler_vm: Improve handling of \n in quoted literals 2012-09-01 05:20:01 +00:00
Pragmatic Software
ccf1d35a54 Improvements in interpreter; tell <nick> about <command>; etc 2012-08-23 22:50:07 +00:00
Pragmatic Software
09cb762c6f compiler_vm: update client to remove duplicate warnings/infos; typeof('a') should be int; misc output clean-ups 2012-08-18 03:28:10 +00:00
Pragmatic Software
da3e05bc72 Prevent gcc from optimizing away gdb() call 2012-08-16 01:17:28 +00:00
Pragmatic Software
6b35dc210c Skip message containing grab command when grabbing own nick; match brackets for compiler-block; etc 2012-08-12 16:41:38 +00:00
Pragmatic Software
cb770d81ac Grab most recent quote by regex instead of oldest first 2012-08-01 11:06:01 +00:00
Pragmatic Software
876d9fb5c6 Improved grab command to accept regex for history 2012-08-01 09:57:43 +00:00
Pragmatic Software
52b23418e2 Updated factoids and quotegrabs data 2012-07-22 19:27:37 +00:00
Pragmatic Software
8a70c06096 Misc bug fixes and tweaks 2012-07-22 19:22:30 +00:00
Pragmatic Software
dad1bf978e compiler_vm: improved function extraction (missed a spot) 2012-03-21 16:02:02 +00:00
Pragmatic Software
0e957ba414 compiler_vm: improved function extraction 2012-03-21 15:58:07 +00:00
Pragmatic Software
2fc11ea1fd compiler_vm: disregard this commit 2012-03-21 15:54:43 +00:00
Pragmatic Software
5066f348a1 compiler_vm: added support for splint 2012-03-12 03:33:54 +00:00
Pragmatic Software
b30216d8ec compiler_vm: restored stdin input, improved error output, reset vm only on timed-out for improved speed 2012-02-29 01:10:12 +00:00
Pragmatic Software
38166bd14d compiler_vm: reset vm only on time-outs to improve response speed 2012-02-25 08:30:49 +00:00
Pragmatic Software
58a592c86f compiler-vm: use astyle with file instead of stdin to avoid astyle bug; add lorem ipsum default -input text 2012-02-15 22:00:58 +00:00
Pragmatic Software
4e52d77f61 compiler_vm: improved macro parsing; replace newlines outside of quoted text 2012-02-11 05:05:49 +00:00
Pragmatic Software
a2e2d15fc7 compiler_vm: added libc fatal errors; trace program only on signal 2012-02-09 18:48:45 +00:00
Pragmatic Software
4efa96dbbe docs: updated PBot.html 2012-02-05 18:27:04 +00:00
Pragmatic Software
11923967cf compiler_vm: watchdog debug output includes commands sent to gdb, fflush stdout on breakpoints 2012-02-04 20:34:55 +00:00
Pragmatic Software
e3ec59322e compiler_vm: watchdog wraps more gdb output with <> 2012-02-04 06:02:52 +00:00
Pragmatic Software
56bd0e9101 compiler_vm: added trace() macro to trace function calls 2012-02-03 17:54:52 +00:00
Pragmatic Software
e2e54079ae compiler_vm: improved abormal signal handling 2012-02-02 18:28:24 +00:00
Pragmatic Software
fd1f18850a compiler_vm: updates (needs refactoring, pronto) 2012-02-02 04:14:38 +00:00
Pragmatic Software
22b43f21bf compiler_vm: updated gdb parsing (still needs refactoring) 2012-01-31 05:32:24 +00:00
Pragmatic Software
d56aaeebca compiler_vm: updated to show local vars if no output, etc 2012-01-29 23:50:33 +00:00
Pragmatic Software
84f2f979a6 compiler_vm: rewrote watchdog to execute within gdb; added dump(), ptype(), watch() macros 2012-01-28 07:39:13 +00:00
Pragmatic Software
2830147338 Added missing encode_entities to c99/c11std generation 2012-01-23 22:33:13 +00:00
Pragmatic Software
59e100a44c Updated c99std and c11std to index footnotes 2012-01-23 22:24:51 +00:00
Pragmatic Software
e5028eded6 Updated genstd.pl and n1256.txt/n1570.txt to improve parsing/detection of unparsed sections 2012-01-17 02:07:01 +00:00
Pragmatic Software
4e9774422b Updated c11std and c99std to properly index appendices 2012-01-17 00:08:26 +00:00
Pragmatic Software
1ba8750e0b Adding n1256.html and n1570.html 2012-01-16 15:40:30 +00:00
Pragmatic Software
0c8bc4f682 Added c99std and c11std commands. Now indexes FOREWORD, INTRODUCTION and appedices. 2012-01-16 15:34:32 +00:00
Pragmatic Software
0c9a9cccd2 google search module: decode HTML entities in result titles 2012-01-05 11:04:55 +00:00
Pragmatic Software
cf0fead036 compiler-vm: added -input flag for providing stdin input; added %b printf specifier to print base-2; bug-fixes 2011-12-30 23:20:29 +00:00
Pragmatic Software
dd7f84ceff bantracker: track +q and +b separately to prevent loss of information
bantracker: do not ban someone if their hostmask matches their +q mask
bantracker: remove ban timeouts on -q/-b
antiflood: unbanme will not work if manual ban/quiet set in place
2011-12-17 11:43:21 +00:00
Pragmatic Software
1d691caeb9 factoids: don't show nick prefix if has action_with_args; updated factoids
interpreter: don't expand $nick in result for all commands
2011-12-17 00:30:44 +00:00
Pragmatic Software
d7dc16346c ban-tracker: track whether ban is +q or +b; do not ban evaders of generic +b bans ending with !*@*
anti-flood: improved logic of catching ban evaders
2011-12-15 06:18:10 +00:00
Pragmatic Software
49561130e5 factoids: improved 8ball response, etc 2011-12-15 06:13:21 +00:00
Pragmatic Software
3d0f763253 factoids: added hugs/hugs_response; aliased pokes, pets, spanks, slaps, hugs, etc 2011-12-13 04:43:57 +00:00
Pragmatic Software
036ae7cdfb antiflood: do not check accounts if no account 2011-12-12 23:33:39 +00:00
Pragmatic Software
fa01bdde6f antiflood: fixed code indentation 2011-12-12 19:40:54 +00:00
Pragmatic Software
2fb0598a0e ban evasion: fixed whitelist logic 2011-12-12 16:40:22 +00:00
Pragmatic Software
016aba76db pbot.sh: strange behavior with &> -- using 2> instead 2011-12-12 06:01:51 +00:00
Pragmatic Software
acbed6810f 2011-12-12 05:39:38 +00:00
Pragmatic Software
3b0b04f6e1 Corrected inverted ternary herp 2011-12-12 04:21:59 +00:00
Pragmatic Software
6dee494ffd bantracker: fixed derp 2011-12-12 04:17:03 +00:00
Pragmatic Software
e10d81b769 lagchecker: use immediate elasped duration instead of average when no pong has been received yet 2011-12-12 00:31:31 +00:00
Pragmatic Software
44bef4bdb3 anti-flood: check for ban evasion on nick changes 2011-12-12 00:19:34 +00:00
Pragmatic Software
242a0d5dfc lagchecker: updated lagcheck bot command to use pong_received 2011-12-11 23:44:04 +00:00
Pragmatic Software
60ad02c9af lagchecker: include elapsed time from last ping sent in average if no pong yet received 2011-12-11 23:33:01 +00:00
Pragmatic Software
44ba3001cb Updated mode +q list tracking to updated freenode syntax; added ban whitelist (for evasion allowing) 2011-12-11 22:56:57 +00:00
Pragmatic Software
7ddf495f58 Updated version, removed -I from google search script shebang 2011-12-11 18:29:55 +00:00
Pragmatic Software
314eabaf3e Quotegrabs: added more information to getq (grab owner and timestamp)
Interpreter: remove leading and trailing whitespace from text to improve parsing
AntiFlood: Remove some log output, improve some other log output
2011-12-04 01:13:21 +00:00
Pragmatic Software
df42b242e4 Fixed unban command; misc bug-fixes 2011-10-31 19:56:08 +00:00
Pragmatic Software
4a552e2935 ban-tracker: dump more information when nickserv account matches existing ban 2011-02-17 23:49:42 +00:00
Pragmatic Software
a57394c762 factoids: oops, broke global channel searching, fixed (exact_channel restored) 2011-02-14 08:09:50 +00:00
Pragmatic Software
bede029261 factoids: probably adds/remove upper/lowercase keywords 2011-02-14 07:25:15 +00:00
Pragmatic Software
438b62552f anti-flood bantracker now more properly handles detection of proxying in multiple channels 2011-02-14 06:23:22 +00:00
Pragmatic Software
cb20ac607e anti-flood bantracker now more properly handles detection of proxying in multiple channels 2011-02-13 23:44:05 +00:00
Pragmatic Software
cdaf433966 updating factoids and quotegrabs data 2011-02-13 10:37:28 +00:00
Pragmatic Software
a0c11ac1d4 irchandlers: remove dumping of event on mode change 2011-02-13 09:07:11 +00:00
Pragmatic Software
ea198bcab1 irchandlers: now handles multiple modes; e.g. -bbb-o
chanops: moved flushqueues to inside loop
anti-flood/bantracker: now tracks quiets as well as bans
anti-flood: should now ban proxied hosts using a banned nickserv account -- untested
2011-02-13 09:05:48 +00:00
Pragmatic Software
b16b5f6275 anti-flood: nick changes now linked to same account via reference 2011-02-13 08:02:27 +00:00
Pragmatic Software
3c6288920e Added channel ban tracking 2011-02-13 05:07:02 +00:00
Pragmatic Software
b07306f530 IRC: wait for NickServ NOTICE before identifying 2011-02-12 05:30:44 +00:00
Pragmatic Software
9c17b4bc5a anti-flood: made some log messages more terse and readable 2011-02-11 06:52:43 +00:00
Pragmatic Software
c4ed12b0cb anti-flood, IRC, etc: added support for tracking NickServ accounts; refactored flood message history to be keyed on hostmask instead of nick; placed message history channels into its own sub-key 2011-02-11 02:46:35 +00:00
Pragmatic Software
1f4b6bba50 admin commands: added sl command to send raw commands to IRC server 2011-02-10 08:40:14 +00:00
Pragmatic Software
f76dcacca7 [module] c standard: improve output 2011-02-10 07:11:51 +00:00
Pragmatic Software
0655598d4a interpreter: improved long message truncation semantics 2011-02-10 07:10:50 +00:00
Pragmatic Software
bb05ab5274 compiler_vm: do not extract potential functions from within string literals or comments, if no main function is provided 2011-02-08 01:24:12 +00:00
Pragmatic Software
d28903f05f doc: updated PBot.html 2011-02-02 10:08:13 +00:00
Pragmatic Software
c8bc14183b compiler_vm: updated to run properly on Linux; untested on Cygwin 2011-02-02 07:46:03 +00:00
Pragmatic Software
80b50559bb compile_vm: added missing cc script 2011-02-01 02:47:16 +00:00
Pragmatic Software
346f291c29 doc: updated PBot.html documentation 2011-02-01 01:17:14 +00:00
Pragmatic Software
da8671a9bf version: updated VERSION.pm 2011-02-01 00:59:10 +00:00
Pragmatic Software
cd8791a854 factoids: better handling of triggering factoids in other namesapces; actions_with_args fixed 2011-01-30 07:18:28 +00:00
Pragmatic Software
845dff008e factoids: levenshtein search working again; rate-limit working again 2011-01-30 06:29:05 +00:00
Pragmatic Software
e4019895d3 factoids: added comments explaining namespace handling 2011-01-30 03:55:09 +00:00
Pragmatic Software
805832d977 pbot: allowed bot trigger to be customizable from pbot.pl; bot registry coming soon... 2011-01-30 03:22:00 +00:00
Pragmatic Software
cb2c17f636 factids: er, it is fact <location> <keyword> not fact <keyword> <location>, oops 2011-01-30 03:06:45 +00:00
Pragmatic Software
ffdecba6ee factoids: be more clear about how to choose factoids from another channel if ambiguous keyword; find_factoid searches channel namespace better 2011-01-30 03:03:31 +00:00
Pragmatic Software
221a698ecb factoids: if unknown keyword is triggered inadvertedly, .e.g. by referencing the bot by name, and the args dont look like a nick then do not spit out the levenshtein matches text 2011-01-30 02:44:56 +00:00
Pragmatic Software
514484a1e6 compiler_vm: do not automatically pull in #include prelude if #include detected in code 2011-01-29 20:50:44 +00:00
Pragmatic Software
3255bdcd93 factoids: updated database -- moved more POSIX factoids into ##posix namespace 2011-01-29 08:50:38 +00:00
Pragmatic Software
f92da35b34 factoids: updated database -- moved more factoids into more namespaces 2011-01-29 08:33:00 +00:00
Pragmatic Software
a6252da15a factoids: updated factoids database -- moved C-related factoids to ##c namespace 2011-01-29 05:03:18 +00:00
Pragmatic Software
9336428ea2 factoids: improved handling of factoids belonging to other channels; significantly 2011-01-29 01:21:17 +00:00
Pragmatic Software
65920bbe33 registerable: removed unnecessary array size check 2011-01-28 23:16:50 +00:00
Pragmatic Software
8d524089db anti-flood: added last offense timestamp; decrease offense counter once every 24 hours without offense 2011-01-27 06:17:39 +00:00
Pragmatic Software
31ae068202 factoid commands: removed unnecessary direct privmsg call 2011-01-27 01:51:16 +00:00
Pragmatic Software
5d0f2f5b98 updated VERSION.pm information 2011-01-27 01:23:47 +00:00
Pragmatic Software
bd3d69872e factoids: updated database 2011-01-27 00:51:01 +00:00
Pragmatic Software
1e74e36dd7 factoid commands: updated top20 to work with new factoid structure 2011-01-27 00:49:36 +00:00
Pragmatic Software
3cb15235e5 factoids: removed some uninteresting factoids from database 2011-01-26 22:48:16 +00:00
Pragmatic Software
8983a53732 pbot: slightly improved readability/flow of PBot.pm 2011-01-26 10:13:06 +00:00
Pragmatic Software
aaa261b66e pbot: correct default config directory 2011-01-26 10:04:55 +00:00
Pragmatic Software
d62e77c29d factoids: updating factoids; added some more action_with_args entries to existing factoids 2011-01-26 09:41:25 +00:00
Pragmatic Software
e6e89023a0 pbot: made PBot.pm more readable and concise 2011-01-26 09:40:08 +00:00
Pragmatic Software
1fcd6d07c1 config: updated example in admins file 2011-01-26 02:34:55 +00:00
Pragmatic Software
93658e0f6f modules: added compiler virtual machine scripts; use to set up your own environment for !cc/compiler_client.pl 2011-01-26 01:59:19 +00:00
Pragmatic Software
b2a1dec56c updated Changes file for Net::IRC/PBot::IRC 2011-01-26 00:37:01 +00:00
Pragmatic Software
da84e6fd33 documentation: added doc folder, moved README to it, and copied Candide wiki page as PBot.html with some minor edits 2011-01-26 00:25:04 +00:00
Pragmatic Software
747392e23a updated factoids database; !help with arguments now displays link to command ala !h 2011-01-25 23:52:55 +00:00
Pragmatic Software
44b737a8c3 factoids: allow factset/factunset by regular users; factset/factunset now has list of metadata levels, and does ownership checking; added action_with_args metadata field to be substituted for action if factoid triggered with arguments 2011-01-25 22:40:22 +00:00
Pragmatic Software
45a2a66d0f Moved lag-checking code to LagChecker.pm; improved output of !lagcheck command 2011-01-24 23:56:55 +00:00
Pragmatic Software
a619f8fe9b factoids: Dont break factoids if used from stdin 2011-01-24 23:46:07 +00:00
Pragmatic Software
ed797ca5cf antiflood: change banfoward timeout first offense to start from 8 hours instead of 32 hours 2011-01-24 22:21:29 +00:00
Pragmatic Software
22c1673f3d factoids: dont remove trailing colon and/or comma from keywords in interpreter 2011-01-24 01:30:19 +00:00
Pragmatic Software
c29a694359 antiflood: do not check flood if lag is uninitialized or is significant 2011-01-22 09:45:16 +00:00
Pragmatic Software
1f45da7615 antiflood: do not do anti-flood if lag is two seconds or greater 2011-01-22 09:39:39 +00:00
Pragmatic Software
b11b660929 antiflood/pbot: added basic support for lag detection 2011-01-22 09:26:04 +00:00
Pragmatic Software
e3655749fd Added Net::IRC as PBot::IRC in order to support PONG events and possible future customisation 2011-01-22 08:35:31 +00:00
Pragmatic Software
c1439c5b7a quotegrabs: updated table 2011-01-22 08:32:22 +00:00
Pragmatic Software
d5ba966c53 antiflood: corrected check against double-banning chat floods 2011-01-22 04:42:38 +00:00
Pragmatic Software
d2640f8bcb antiflood: remove generate_random_number; ping timeouts/excess floods no longer treated aggressively, now treated same as other quit/parts 2011-01-22 04:17:35 +00:00
Pragmatic Software
e943790827 Updated factoids; added compiler_client.pl module 2011-01-20 01:16:08 +00:00
Pragmatic Software
023dd4bd09 ideone compiler: added run command to interactive editor 2011-01-20 00:55:45 +00:00
Pragmatic Software
0d5bf85f46 Added empty unban_timeouts file 2011-01-20 00:30:59 +00:00
Pragmatic Software
3bea3949a5 cstd module: fix issue with formatting 2011-01-20 00:21:54 +00:00
Pragmatic Software
9523600366 horoscope module: List valid signs of Zodaic 2011-01-20 00:19:58 +00:00
Pragmatic Software
b405f8b88e Quotegrabs: Lowercase nick when grabbing 2011-01-20 00:15:58 +00:00
Pragmatic Software
7eea052b36 Updated BotAdmins to use DualIndexHashObject 2010-08-15 08:25:35 +00:00
Pragmatic Software
0f47100dc9 Rate-limit now per-channel (sort of) 2010-08-14 09:45:58 +00:00
Pragmatic Software
dd8f0e1811 Adding gencstd.pl command used to generate HTML output from n1256.txt 2010-07-22 21:09:39 +00:00
Pragmatic Software
5b0aef5e31 Replaced ".*" with "the global channel" for factalias 2010-07-04 07:36:51 +00:00
Pragmatic Software
f53ebf7f88 factalias command adds to global if channel \!~ /^# 2010-07-04 07:26:43 +00:00
Pragmatic Software
96db60d0fa encode_entities for factoid URLs in HTML export 2010-07-01 05:54:04 +00:00
Pragmatic Software
3c9c5065a3 Updating factoids 2010-07-01 01:44:02 +00:00
Pragmatic Software
28a5d47af1 Exported factoids now have clickable links 2010-07-01 01:43:49 +00:00
Pragmatic Software
affb2c66d5 Remove trailing comma or colon from end of keyword if other characters exist before it; allow sentence-like arguments again 2010-06-30 12:18:25 +00:00
Pragmatic Software
31e53f2aff Allow question-marks in triggers if more than one is used; remove period from factoid names; return undef if factoid keyword is blank 2010-06-30 11:36:45 +00:00
Pragmatic Software
c6e48954c5 Levenshtein distance increased from 50% to 60%; Levenshtein searches all channels on unfound factoid 2010-06-30 10:59:50 +00:00
Pragmatic Software
def3b6eae7 Updating factoids 2010-06-30 05:42:50 +00:00
Pragmatic Software
83b43d97c3 Don't look for exact channel matter in Interpreter -- this way, commands like "\!what is the matter" will not attempt to create new factoids if they exist in global channel 2010-06-30 05:13:51 +00:00
Pragmatic Software
9fa3b865e9 Factoids now ignore arguments that do not look like a nick if the factoid doesn't take an argument -- fixes factoid triggers on sentences with bot's name; find_factoid searches global channel if $from is not a channel 2010-06-30 04:58:22 +00:00
Pragmatic Software
5f5cd6ec08 regex factoids now trigger properly 2010-06-30 03:48:13 +00:00
Pragmatic Software
1f82cbc285 Added extra semi-colon before return 0 to allow statements without semi-colons for lazy people; codepad.pl wasn't handling structs correctly because code and precode were backwards -- fixed 2010-06-30 01:21:46 +00:00
Pragmatic Software
a4cdb2204f Replaced ".*" with "global" in set list keys 2010-06-29 07:39:56 +00:00
Pragmatic Software
322314d869 Replaced ".*" with "global" in set/unset; replaced "," with ";" as comma 2010-06-29 07:31:27 +00:00
Pragmatic Software
d7f2583aac Prettier export headers; factrem output for not owner now includes channel 2010-06-29 07:14:26 +00:00
Pragmatic Software
380a2b322c Factoid HTML export table now fits width appropriately 2010-06-29 06:50:49 +00:00
Pragmatic Software
43089e4599 Cleaned up extra factoid groups; made export factoids a little prettier; renamed "default channel" to "global channel" throughout 2010-06-29 06:12:52 +00:00
Pragmatic Software
b869321eb4 Adding factoid in /msg now adds factoid to default channel; replaced "all channels" with "default channel" throughout factoid command output 2010-06-29 05:48:46 +00:00
Pragmatic Software
7aa724569e factfind now works; find aliases factfind for all channels 2010-06-29 04:33:27 +00:00
Pragmatic Software
58f19984bf Display join flood history only if joinwatch >= max joins, to reduce log spam 2010-06-29 00:59:47 +00:00
Pragmatic Software
fe6d08178b Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout) 2010-06-27 11:13:30 +00:00
Pragmatic Software
2d11d66b67 Replaced ago_exact with duration_exact in time comparison 2010-06-27 05:39:44 +00:00
Pragmatic Software
999d8ae4a8 Added Time::Duration to anti-flood join history 2010-06-27 05:36:58 +00:00
Pragmatic Software
521ae5c704 Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout) 2010-06-27 03:22:29 +00:00
Pragmatic Software
cb9fa000be Updating modules 2010-06-27 02:52:38 +00:00
Pragmatic Software
6d3fc7f628 find_factoid now takes exact_trigger parameter; this fixes confusion with regex factoids 2010-06-27 02:52:06 +00:00
Pragmatic Software
6824a61fd1 Updating version 2010-06-23 06:59:59 +00:00
Pragmatic Software
150b842b60 Changed format of HashObject save-file to be more like DualIndexHashObject; removed need for index_key 2010-06-23 06:51:39 +00:00
Pragmatic Software
6c6fc503bb !chanset output appears in channel instead of /msg 2010-06-23 02:22:08 +00:00
Pragmatic Software
e0a2fc25e8 factchange usage output appears in channge instead of /msg; aliased change to factchange 2010-06-23 02:18:26 +00:00
Pragmatic Software
48e1c8c455 add, info, show, remove, etc, renamed to factadd, factinfo, factshow, factrem, etc; fact* commands now all take a channel parameter 2010-06-23 02:15:13 +00:00
Pragmatic Software
4d023df17d Added "ago" module 2010-06-23 01:23:38 +00:00
Pragmatic Software
a13d028e3e Lower-case hostmask and arguments to !unbanme 2010-06-22 03:01:02 +00:00
Pragmatic Software
f4fbfec8f6 Removing Changes file 2010-06-21 16:40:48 +00:00
Pragmatic Software
818e09861c Added rate_limit to factoids 2010-06-21 15:23:46 +00:00
Pragmatic Software
c150e2018c Make usage output of some commands visible in channel instead of msg 2010-06-21 14:48:40 +00:00
Pragmatic Software
eabb249d79 !info and !show now require channel parameter 2010-06-21 14:41:39 +00:00
Pragmatic Software
65470a139b Added !fact command to allow calling factoids belonging to another channel 2010-06-21 13:54:27 +00:00
Pragmatic Software
562d265261 Adding factoid in a channel now creates that factoid in that channel instead of .*; info command now shows what channel factoid belongs to 2010-06-21 13:28:54 +00:00
Pragmatic Software
645310de15 factset command output appears in channel now (to show-off); added pragma as admin 2010-06-21 11:44:39 +00:00
Pragmatic Software
38e7de9f41 Correct bug from refactoring AntiFlood.pm previously; no longer crashes on pruning message history 2010-06-21 11:04:07 +00:00
Pragmatic Software
f9ab0c7e77 Added Time::Duration::ago() to !info command 2010-06-21 10:44:15 +00:00
Pragmatic Software
94076628a6 !foo is bar now works again for adding factoids; factoid commands in /msg are set to use channel .* 2010-06-21 03:19:41 +00:00
Pragmatic Software
52a6c7d125 Slightly refactored anti-join flood logic, handles QUITs better now 2010-06-21 03:18:39 +00:00
Pragmatic Software
73b8f68dfd Updating factoids with !test example in ##c, #pbot2 and any channel 2010-06-20 07:02:49 +00:00
Pragmatic Software
4be7fe3b34 Refactored Factoids to use DualIndexHashObject; added factset/factunset to set factoid meta-data; factoids now per-channel; slightly unfinished 2010-06-20 06:16:48 +00:00
Pragmatic Software
0bbd3a469c Added DualIndexHashObject; supports primary and secondary key grouping 2010-06-20 06:15:10 +00:00
Pragmatic Software
f1e227b64d Forward to ##stop_join_flood instead, since it has a candide-specific on-join msg and topic 2010-06-19 21:38:50 +00:00
Pragmatic Software
547087b81d Corrected join flood to get correct time distance between join messages 2010-06-19 19:19:56 +00:00
Pragmatic Software
e6f9296010 Removed extra logging information 2010-06-19 17:38:14 +00:00
Pragmatic Software
0c56527da0 Removed extra logging information 2010-06-19 17:37:48 +00:00
Pragmatic Software
3aa0982baf Removed extra logging information; limited "yourself" check to one word 2010-06-19 17:37:16 +00:00
Pragmatic Software
41bb89eba2 Remove captcha from unbanme command 2010-06-18 11:12:55 +00:00
Pragmatic Software
fe96faded8 unban_timeouts is now a HashObject -- consequently, unban timeouts now save to and load from data file 2010-06-18 10:46:23 +00:00
Pragmatic Software
e32850aae2 Remove old ChanServ ban method and rename all quiet-related terms to ban-related terms since quiet now does +b instead of +q 2010-06-18 07:03:16 +00:00
Pragmatic Software
e3b351946a List keys and values when using set command without a key (but with an index) 2010-06-18 04:40:12 +00:00
Pragmatic Software
7c1bdecfcb Added missing use feature switch pragma 2010-06-18 04:17:30 +00:00
Pragmatic Software
24ef3b90e9 Use wildcard banmasks instead of original hostmasks 2010-06-18 04:15:28 +00:00
Pragmatic Software
f29202c99c Converted Channels.pm (and all modules using channels object) to use HashObject -- can now add/remove channels and set/unset channel meta-data as user commands 2010-06-18 03:21:36 +00:00
Pragmatic Software
e0c9c73acc Created HashObject.pm to abstract common actions on hash-tables 2010-06-18 03:19:45 +00:00
Pragmatic Software
be6e2ae8ab Significantly increase join flood ban timeout in order to reduce channel spam (made more feasible by !unbanme) 2010-06-18 00:49:50 +00:00
Pragmatic Software
af7d55da0d Ban-forward join floods to ##fix_your_connection 2010-06-16 02:21:44 +00:00
Pragmatic Software
16b9bba71c Added captcha and !unbanme command to allow unbanning from join flood 2010-06-16 01:55:29 +00:00
Pragmatic Software
50818a4b90 Don't infinitely try to /msg ChanServ to remove ops 2010-06-14 20:31:14 +00:00
Pragmatic Software
811e2e71d2 Ping timeout QUITs now properly added to each channel's message history 2010-06-12 07:48:01 +00:00
Pragmatic Software
f14924a619 Add missing message to message history for QUITs; skip joinwatch on non-channels; add max_messages and max_timeout to QUIT/PART in IRCHandlers 2010-06-12 05:50:38 +00:00
Pragmatic Software
6eeb2277f2 Remove useless if(x < 0) check when incrementing x 2010-06-12 04:44:49 +00:00
Pragmatic Software
40ed750a1f Ping timeout quits now handled 2010-06-12 04:38:38 +00:00
Pragmatic Software
ef3d9770ca Refactored AntiFlood account code -- much improved 2010-06-12 04:27:58 +00:00
Pragmatic Software
347bb86bac Correct variable $ch to $channel 2010-06-12 01:52:11 +00:00
Pragmatic Software
a70d8a1fd5 Antiflood: deal with ping timeout quits aggressively 2010-06-12 01:49:49 +00:00
Pragmatic Software
4242eecf43 Correct joinwatch behavior for netsplits; remove joinwatch behavior for "Changing host" 2010-06-11 08:01:32 +00:00
Pragmatic Software
0ce7f52725 Correct joinwatch for new entries to message history 2010-06-11 04:26:20 +00:00
Pragmatic Software
da7eb0b111 Make join flood more robust 2010-06-11 04:03:36 +00:00
Pragmatic Software
b7cd3cfbfc Improving handling of join flooding -- decrement join count for netsplits and host changes; increase ban duration based on offense count; etc 2010-06-10 20:26:09 +00:00
Pragmatic Software
363dd1fc29 Show anti-flood timestamp comparisons for join floods only (to reduce log traffic) 2010-06-10 19:20:12 +00:00
Pragmatic Software
a64d62b549 Updating factoids 2010-06-06 09:13:17 +00:00
Pragmatic Software
49bbf5c73e Temporary hack to skip hostmask entry when iterating channels in message history, will fix soon 2010-06-06 07:22:23 +00:00
Pragmatic Software
8a5c7a99c2 Remove debugging print statements from AntiFlood.pm 2010-06-06 05:22:07 +00:00
Pragmatic Software
96be537c39 AntiFlood now detects based on *!user@host instead of nick 2010-06-06 05:19:31 +00:00
Pragmatic Software
96fd2d7c7a Remove FLOOD_JOIN and FLOOD_CHAT from PBot.pm 2010-06-06 04:41:15 +00:00
Pragmatic Software
8c4d01d83a Update version 2010-06-06 00:36:01 +00:00
Pragmatic Software
71847ddc63 Make anti-flood logs less spammy 2010-06-06 00:35:24 +00:00
Pragmatic Software
9b3a8f1284 Show offenses and join_watch count in list messages 2010-06-06 00:34:27 +00:00
Pragmatic Software
7bcfa52b25 Increase join flood detection to 4 joins within 30 minutes without a message; set join_watch -= 2 on join ban to allow two join attempts afterwards in order to give them a chance to rejoin 2010-06-05 17:45:41 +00:00
Pragmatic Software
4b342be290 Add join flood protection 2010-06-05 06:07:15 +00:00
Pragmatic Software
7df2346d01 Remove NewModule.pm skeleton file 2010-06-05 04:41:37 +00:00
Pragmatic Software
b1c2a12500 Move $VERSION out of PBot.pm and to its own VERSION.pm module 2010-06-05 04:34:14 +00:00
Pragmatic Software
4e4574d2b6 Setting PBot.pm $VERSION from build script instead 2010-06-05 00:30:03 +00:00
Pragmatic Software
4563ca7794 Finalizing SVN auto-props Id keyword for PBot.pm $VERSION 2010-06-04 23:18:50 +00:00
Pragmatic Software
e3680adbb4 Testing SVN auto-props Id keyword for PBot.pm $VERSION 2010-06-04 23:12:32 +00:00
Pragmatic Software
f9612331bc propset svn:keywords on all PBot .pm modules 2010-06-04 23:01:44 +00:00
Pragmatic Software
d01b724427 Testing SVN auto-props for Id keyword 2010-06-04 22:55:03 +00:00
Pragmatic Software
a47cfc96e7 No longer updating Changes file, use SVN changelist at code.google.com 2010-06-04 09:37:53 +00:00
Pragmatic Software
bfbc663622 Resolve "use of uninitialized value in numeric gt" in IgnoreList.pm 2010-06-04 04:44:08 +00:00
Pragmatic Software
4d93519256 Remove #osdev from ignore case, fix warning numeric eq warning message 2010-05-30 02:22:38 +00:00
Pragmatic Software
baadde5e24 Fix typo in unquieting sub 2010-05-30 02:21:39 +00:00
Pragmatic Software
a58700ce51 Removing useless "You may speak again." privmsg on unquiet timeout 2010-05-30 02:08:21 +00:00
Pragmatic Software
7399f4ff91 Replaced mode +q with mode +b for quieting; replaced nick!*@* with *!*@host in anti-flood; quiet commands take mask instead of nick 2010-05-30 02:02:29 +00:00
Pragmatic Software
0b3aa9015b Added missing newline to flood reset message 2010-05-28 05:20:06 +00:00
Pragmatic Software
4e53210445 Replace die with croak, and move Net::IRC::Connection::DESTROY redefinition to before any deaths 2010-05-27 09:29:17 +00:00
Pragmatic Software
ed5181cf0d Redefine Net::IRC::Connection::DESTROY sub after forking to prevent disconnecting when child exits 2010-05-27 09:19:11 +00:00
Pragmatic Software
a255cf258d chdir to modules directory before executing module 2010-05-26 22:34:34 +00:00
Pragmatic Software
45152f74b4 Updating FactoidModuleLauncher.pm to correct slash intrapolation (esp on newlines) 2010-05-25 05:47:13 +00:00
Pragmatic Software
220a2ec46b Spaces-in-factoids not yet ready 2010-05-22 01:26:26 +00:00
Pragmatic Software
b1775048e0 Oops, adding missing $lr for if no match found the first time 2010-05-14 00:08:52 +00:00
Pragmatic Software
24740da78b Properly handle single-quotes inside of single-quoted text 2010-05-13 23:28:38 +00:00
Pragmatic Software
33a32f29a3 Allow modulelauncher_subpattern factoid field to substitute IRC lines into shell commands via regex substitution 2010-05-13 22:12:04 +00:00
Pragmatic Software
c699ae26a8 Require "is" as separator to allow add factoids with spaces in trigger 2010-05-13 19:45:52 +00:00
Pragmatic Software
8ebe546850 New factoid loading/saving -- much more flexible! 2010-05-08 23:36:56 +00:00
Pragmatic Software
d16a013379 Remove printing of args 2010-05-04 05:59:14 +00:00
Pragmatic Software
1330bfcff5 Allow <foo> is <bar> to pass through to other interpeters if factoid already exists 2010-04-18 07:34:01 +00:00
Pragmatic Software
001cbc86e5 Replace newlines after posting truncation to codepad 2010-04-17 19:22:22 +00:00
Pragmatic Software
042366b55b Overwhelm was too sensitive 2010-04-14 00:01:42 +00:00
Pragmatic Software
1131ab32df Truncate long output to codepad.org 2010-04-13 04:17:54 +00:00
Pragmatic Software
e051ede6f0 List Levenshtein-based closest matches if factoid not found 2010-04-09 22:55:24 +00:00
Pragmatic Software
654291e8a5 Commented out "Checking ..." in check message history 2010-04-09 22:53:17 +00:00
Pragmatic Software
87ce882450 Added username/realname to config 2010-04-09 22:52:24 +00:00
Pragmatic Software
b261265726 Flood counter now per-channel 2010-04-06 19:15:42 +00:00
Pragmatic Software
116577aefb Ignorelist now saves/loads; ignorelist timeout of -1 causes ignore to be permanent 2010-04-06 18:38:27 +00:00
Pragmatic Software
cffe7f6c4e Improved display of timestamp in !info command 2010-04-05 13:30:33 +00:00
Pragmatic Software
73a12dc981 Allow unquiet from /msg 2010-04-03 19:49:41 +00:00
Pragmatic Software
0c54d9c93e Send message on private ignore; parse adlib variables better 2010-04-02 18:23:31 +00:00
Pragmatic Software
0b78e4ed79 Regex factoids restored 2010-04-02 17:33:18 +00:00
Pragmatic Software
a901a8a4c8 Correct autologin issue 2010-03-30 06:34:08 +00:00
Pragmatic Software
cd73f1104e Admins management improved. Admins now save and load, and can be added and removed. 2010-03-29 12:30:35 +00:00
Pragmatic Software
f5bfe2dfda prune_message_history used old flood_watch instead of message_history -- fixed 2010-03-29 08:39:48 +00:00
Pragmatic Software
a5618c41a1 Added dict.org module and !dict command, allowed dashes in module launcher arguments 2010-03-28 11:19:54 +00:00
Pragmatic Software
21e4415289 Improved find command by adding optional -owner and -by search parameters 2010-03-26 08:58:25 +00:00
Pragmatic Software
a743261059 See Changes file 2010-03-26 05:14:03 +00:00
Pragmatic Software
d299a8fb0f 90% done in object-oriented conversion -- IgnoreList doesnt save/load/use regex yet. 2010-03-24 06:47:40 +00:00
Pragmatic Software
fa50724b58 Progressing on object-oriented conversion. Some functionality may be missing. 2010-03-23 18:24:02 +00:00
Pragmatic Software
313da0b587 Progressing on converting things to objects 2010-03-23 03:09:03 +00:00
Pragmatic Software
bd46c11120 Half-way through converting everything to objects. Committing mostly working copy as preview. 2010-03-22 07:33:44 +00:00
Pragmatic Software
f725743ccb == MAJOR NEW BETA RELEASE ==
Converted single large "amalgamate" monolithic pbot2.pl script into multiple Perl packages/modules.

Tons of refactoring and clean-ups.

Consider this version to be beta.  Use at your own risk.
2010-03-17 06:36:54 +00:00