Commit Graph

45 Commits

Author SHA1 Message Date
Pragmatic Software dfae9bebc0 Relicense under MIT 2021-07-10 15:00:22 -07:00
Pragmatic Software 61881535fa Rename various duplicated backend keys, e.g., $pbot->{factoids}->{factoids} to, e.g., $pbot->{factoids}->{storage} 2021-07-09 14:39:35 -07:00
Pragmatic Software 1a41f9aebb Refactor PBot::Timer into PBot::EventQueue
Make better use of PBot::IRC's select loop
Remove use of SIGALRM
2021-06-21 17:26:24 -07:00
Pragmatic Software 1c2b4da9ab Consolidate imports into PBot::Imports 2021-06-18 21:23:34 -07:00
Pragmatic Software 613890707a Progress on refactoring and polishing everything
More to come!
2021-06-06 19:12:14 -07:00
Pragmatic Software 159124cbe9 Channels: fix `chanrem` 2020-05-29 18:25:55 -07:00
Pragmatic Software 976bfcb5e7 Refactor commands to begin with cmd_ and take a $context object
Move all command subroutines closer to top of source file
Do not send WHO to non-chanop channels
Minor misc bugfixes and improvements
2020-05-04 13:21:35 -07:00
Pragmatic Software ea67642872 Channels: fix gain_ops() call 2020-05-03 19:27:04 -07:00
Pragmatic Software cfba96e8ae Rename $stuff to $context throughout 2020-05-01 20:59:51 -07:00
Pragmatic Software ea19abad4f Refactor BanTracker into BanList; move stuff out off ChanOps 2020-04-28 21:33:49 -07:00
Pragmatic Software 66f6d867e9 Remove redundant _name metadata from JSON files 2020-04-22 16:46:09 -07:00
Pragmatic Software c815ccbc0d Use event queue for unban/unmute timeouts 2020-03-06 13:31:22 -08:00
Pragmatic Software 5c4e10a35c Tidy things up 2020-02-15 14:38:32 -08:00
Pragmatic Software afe4638b0a No longer directly access HashObject internals 2020-02-11 21:49:43 -08:00
Pragmatic Software 02f93c8721 Significant refactor and clean-up of PBot class instantiation 2020-02-08 11:04:13 -08:00
Pragmatic Software 97a913ef32 Add more capabilities to default groups 2020-02-05 17:55:31 -08:00
Pragmatic Software 6267cc04d2 Finished replacing admin-levels with user-capabilities [FIN commit 2 of 2]; misc clean-ups 2020-02-03 17:19:04 -08:00
Pragmatic Software 5dd03f1c0c Massive refactor: added support for generic users!
Renamed data/admins to data/users
Moved Admins.pm to Users.pm
Moved various subroutines in AdminCommands.pm to more appropriate locations
Deleted AdminCommands.pm
Improvements to Users.pm
Added `my` command
2020-01-25 12:28:05 -08:00
Pragmatic Software 7dc8ac0623 Channels: `chanrem` now removes ban and mute timeouts as well 2020-01-23 21:46:51 -08:00
Pragmatic Software 5eaa3591c7 Minor style clean-up 2020-01-18 21:41:47 -08:00
Pragmatic Software 02552081d5 Fix all potential case-sensitivity issues
Misc clean-ups and refactors
2020-01-14 18:10:53 -08:00
Pragmatic Software 3b93dbe4c3 Channels: add autojoin function 2019-12-21 19:43:05 -08:00
Pragmatic Software 3553692b5a Fix some more Unicode encoding issues 2019-07-10 18:40:53 -07:00
Pragmatic Software 925a5e57bd Minor whitespace syntax clean-up throughout 2019-05-28 09:19:42 -07:00
Pragmatic Software 174de2be8e Update all commands to understand quoted arguments; factoid names, etc, can now contain spaces 2018-08-08 17:38:57 -07:00
Pragmatic Software 1f43e003d8 Channels: add get_meta() convenience subroutine 2018-08-05 22:44:46 -07:00
Pragmatic Software dd520e0346 Send chanunset output to channel 2018-05-12 02:52:10 -07:00
Pragmatic Software 1b70de807b Change split / / to split /\s+/ throughout 2017-09-02 00:39:29 -07:00
Pragmatic Software e5bd377477 Add ability to clear HashObject; rename load/save 2017-08-05 20:14:49 -07:00
Tomasz Kramkowski b5d8f72254 License project under MPL2
This patch adds the file LICENSE which is the verbatim copy of the
Mozilla Public License Version 2.0 as retreived from
https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt on
2017-03-05.

This patch also places license headers for the MPL2 type A variant of
the license header in the following files:

PBot/AntiFlood.pm
PBot/BanTracker.pm
PBot/BlackList.pm
PBot/BotAdminCommands.pm
PBot/BotAdmins.pm
PBot/ChanOpCommands.pm
PBot/ChanOps.pm
PBot/Channels.pm
PBot/Commands.pm
PBot/DualIndexHashObject.pm
PBot/EventDispatcher.pm
PBot/FactoidCommands.pm
PBot/FactoidModuleLauncher.pm
PBot/Factoids.pm
PBot/HashObject.pm
PBot/IRCHandlers.pm
PBot/IgnoreList.pm
PBot/IgnoreListCommands.pm
PBot/Interpreter.pm
PBot/LagChecker.pm
PBot/Logger.pm
PBot/MessageHistory.pm
PBot/MessageHistory_SQLite.pm
PBot/NickList.pm
PBot/PBot.pm
PBot/Plugins.pm
PBot/Plugins/AntiAway.pm
PBot/Plugins/AntiKickAutoRejoin.pm
PBot/Plugins/AntiRepeat.pm
PBot/Plugins/AntiTwitter.pm
PBot/Plugins/AutoRejoin.pm
PBot/Plugins/Counter.pm
PBot/Plugins/Quotegrabs.pm
PBot/Plugins/Quotegrabs/Quotegrabs_Hashtable.pm
PBot/Plugins/Quotegrabs/Quotegrabs_SQLite.pm
PBot/Plugins/UrlTitles.pm
PBot/Plugins/_Example.pm
PBot/Refresher.pm
PBot/Registerable.pm
PBot/Registry.pm
PBot/RegistryCommands.pm
PBot/SQLiteLogger.pm
PBot/SQLiteLoggerLayer.pm
PBot/SelectHandler.pm
PBot/StdinReader.pm
PBot/Timer.pm
PBot/Utils/ParseDate.pm
PBot/VERSION.pm
build/update-version.pl
modules/acronym.pl
modules/ago.pl
modules/c11std.pl
modules/c2english.pl
modules/c2english/CGrammar.pm
modules/c2english/c2eng.pl
modules/c99std.pl
modules/cdecl.pl
modules/cfaq.pl
modules/cjeopardy/IRCColors.pm
modules/cjeopardy/QStatskeeper.pm
modules/cjeopardy/Scorekeeper.pm
modules/cjeopardy/cjeopardy.pl
modules/cjeopardy/cjeopardy_answer.pl
modules/cjeopardy/cjeopardy_filter.pl
modules/cjeopardy/cjeopardy_hint.pl
modules/cjeopardy/cjeopardy_qstats.pl
modules/cjeopardy/cjeopardy_scores.pl
modules/cjeopardy/cjeopardy_show.pl
modules/codepad.pl
modules/compiler_block.pl
modules/compiler_client.pl
modules/compiler_vm/Diff.pm
modules/compiler_vm/cc
modules/compiler_vm/compiler_client.pl
modules/compiler_vm/compiler_server.pl
modules/compiler_vm/compiler_server_vbox_win32.pl
modules/compiler_vm/compiler_server_watchdog.pl
modules/compiler_vm/compiler_vm_client.pl
modules/compiler_vm/compiler_vm_server.pl
modules/compiler_vm/compiler_watchdog.pl
modules/compiler_vm/languages/_c_base.pm
modules/compiler_vm/languages/_default.pm
modules/compiler_vm/languages/bash.pm
modules/compiler_vm/languages/bc.pm
modules/compiler_vm/languages/bf.pm
modules/compiler_vm/languages/c11.pm
modules/compiler_vm/languages/c89.pm
modules/compiler_vm/languages/c99.pm
modules/compiler_vm/languages/clang.pm
modules/compiler_vm/languages/clang11.pm
modules/compiler_vm/languages/clang89.pm
modules/compiler_vm/languages/clang99.pm
modules/compiler_vm/languages/clangpp.pm
modules/compiler_vm/languages/clisp.pm
modules/compiler_vm/languages/cpp.pm
modules/compiler_vm/languages/freebasic.pm
modules/compiler_vm/languages/go.pm
modules/compiler_vm/languages/haskell.pm
modules/compiler_vm/languages/java.pm
modules/compiler_vm/languages/javascript.pm
modules/compiler_vm/languages/ksh.pm
modules/compiler_vm/languages/lua.pm
modules/compiler_vm/languages/perl.pm
modules/compiler_vm/languages/python.pm
modules/compiler_vm/languages/python3.pm
modules/compiler_vm/languages/qbasic.pm
modules/compiler_vm/languages/scheme.pm
modules/compiler_vm/languages/server/_c_base.pm
modules/compiler_vm/languages/server/_default.pm
modules/compiler_vm/languages/server/c11.pm
modules/compiler_vm/languages/server/c89.pm
modules/compiler_vm/languages/server/c99.pm
modules/compiler_vm/languages/server/clang.pm
modules/compiler_vm/languages/server/clang11.pm
modules/compiler_vm/languages/server/clang89.pm
modules/compiler_vm/languages/server/clang99.pm
modules/compiler_vm/languages/server/cpp.pm
modules/compiler_vm/languages/server/freebasic.pm
modules/compiler_vm/languages/server/haskell.pm
modules/compiler_vm/languages/server/java.pm
modules/compiler_vm/languages/server/qbasic.pm
modules/compiler_vm/languages/server/tendra.pm
modules/compiler_vm/languages/sh.pm
modules/compiler_vm/languages/tendra.pm
modules/compliment
modules/cstd.pl
modules/define.pl
modules/dice_roll.pl
modules/excuse.sh
modules/expand_macros.pl
modules/fnord.pl
modules/funnyish_quote.pl
modules/g.pl
modules/gdefine.pl
modules/gen_cfacts.pl
modules/gencstd.pl
modules/get_title.pl
modules/getcfact.pl
modules/google.pl
modules/gspy.pl
modules/gtop10.pl
modules/gtop15.pl
modules/headlines.pl
modules/horoscope
modules/horrorscope
modules/ideone.pl
modules/insult.pl
modules/love_quote.pl
modules/man.pl
modules/map.pl
modules/math.pl
modules/prototype.pl
modules/qalc.pl
modules/random_quote.pl
modules/seen.pl
modules/urban
modules/weather.pl
modules/wikipedia.pl
pbot.pl
pbot.sh

It is highly recommended that this list of files is reviewed to ensure
that all files are the copyright of the sole maintainer of the
repository. If any files with license headers contain the intellectual
property of anyone else, it is recommended that a request is made to
revise this patch or that the explicit permission of the co-author is
gained to allow for the license of the work to be changed.

I (Tomasz Kramkowski), the contributor, take no responsibility for any
legal action taken against the maintainer of this repository for
incorrectly claiming copyright to any work not owned by the maintainer
of this repository.
2017-03-06 00:31:15 +00:00
Pragmatic Software bdfd17612c Add is_active($channel) to determine if $channel is added and enabled 2016-07-01 12:58:29 -07:00
Pragmatic Software f8dba73d02 Correct name of file in error message 2015-09-06 22:04:46 -07:00
Pragmatic Software 04f1672f19 Update some admin levels 2015-07-13 02:47:30 -07:00
Pragmatic Software a09d3c1d63 Add `permop` channel flag; when non-zero bot automatically ops itself when joining channel, otherwise bot ops itself only when needing to perform an op command and then deops itself after its deop timeout has elapsed 2014-12-18 08:46:13 +00:00
Pragmatic Software eec2433906 Move some responses from /msg to public 2014-06-01 21:32:32 +00:00
Pragmatic Software 30e3c5ce35 Remove PBot getter/setters; move anti-flood registry defaults to AntiFlood.pm 2014-05-18 20:09:05 +00:00
Pragmatic Software d955bfa06c Add centralized configuration registry module
Allows changing of bot configuration values without needing to restart
bot instance or needing to edit pbot.pl script.

Registry will initially be populated with default values from pbot.pl,
but if a registry file exists then the registry values will take
precedence over the pbot.pl values. For instance, if you regset the
bot trigger to '%' then the trigger will be '%' even if pbot.pl has '!'
or something else explicitly set.

Some registry items can have trigger hooks associated with them.  For
instance, the irc->botnick registry entry has a change_botnick_trigger
associated with it which changes the IRC nick on the server when a new
value is set via regset/regadd.

Tons of other fixes and improvements throughout.
2014-05-17 20:08:19 +00:00
Pragmatic Software 42c2554655 Add chanlist command to list channel data 2014-03-05 14:28:58 +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 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 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 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 d299a8fb0f 90% done in object-oriented conversion -- IgnoreList doesnt save/load/use regex yet. 2010-03-24 06:47:40 +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