pbot/doc/README.md

312 lines
14 KiB
Markdown
Raw Normal View History

2020-01-12 19:30:51 +01:00
# PBot Documentation
## Table of Contents
2020-01-13 07:25:26 +01:00
<!-- md-toc-begin -->
* [QuickStart](QuickStart.md#quickstart)
* [Installation](QuickStart.md#installation)
* [Installing Perl](QuickStart.md#installing-perl)
* [Installing CPAN modules](QuickStart.md#installing-cpan-modules)
* [Installing PBot](QuickStart.md#installing-pbot)
2020-02-04 11:32:29 +01:00
* [git (recommended)](QuickStart.md#git-recommended)
* [Download zip archive](QuickStart.md#download-zip-archive)
2020-01-28 04:53:48 +01:00
* [Initial Setup](QuickStart.md#initial-setup)
2020-01-13 07:25:26 +01:00
* [Clone data-directory](QuickStart.md#clone-data-directory)
2020-01-28 04:53:48 +01:00
* [Configuration](QuickStart.md#configuration)
2020-02-04 11:32:29 +01:00
* [Recommended settings for IRC Networks](QuickStart.md#recommended-settings-for-irc-networks)
2020-01-13 07:25:26 +01:00
* [Starting PBot](QuickStart.md#starting-pbot)
* [Usage](QuickStart.md#usage)
2020-02-04 11:32:29 +01:00
* [Overriding directories](QuickStart.md#overriding-directories)
* [Overriding registry](QuickStart.md#overriding-registry)
2020-01-28 04:53:48 +01:00
* [First-time start-up](QuickStart.md#first-time-start-up)
2020-02-04 11:32:29 +01:00
* [Using default Freenode settings](QuickStart.md#using-default-freenode-settings)
* [Using custom settings](QuickStart.md#using-custom-settings)
2020-01-28 04:53:48 +01:00
* [Regular start-up](QuickStart.md#regular-start-up)
* [Additional configuration](QuickStart.md#additional-configuration)
2020-01-28 05:05:31 +01:00
* [Creating your bot owner admin account](QuickStart.md#creating-your-bot-owner-admin-account)
2020-01-28 04:53:48 +01:00
* [Adding other users and admins](QuickStart.md#adding-other-users-and-admins)
2020-01-28 05:18:22 +01:00
* [Adding channels](QuickStart.md#adding-channels)
2020-01-13 07:25:26 +01:00
* [Further Reading](QuickStart.md#further-reading)
* [Commands](QuickStart.md#commands)
* [Factoids](QuickStart.md#factoids)
2020-01-28 04:53:48 +01:00
* [Plugins](QuickStart.md#plugins)
2020-01-13 07:25:26 +01:00
* [Modules](QuickStart.md#modules)
<!-- md-toc-end -->
2020-01-12 19:30:51 +01:00
<!-- md-toc-begin -->
2020-01-22 03:39:11 +01:00
* [Commands](Commands.md#commands)
* [Command interpreter](Commands.md#command-interpreter)
* [Piping](Commands.md#piping)
* [Substitution](Commands.md#substitution)
* [Chaining](Commands.md#chaining)
* [Variables](Commands.md#variables)
* [Inline invocation](Commands.md#inline-invocation)
2020-02-15 08:35:34 +01:00
* [Background processing](Commands.md#background-processing)
2020-01-22 03:39:11 +01:00
* [Types of commands](Commands.md#types-of-commands)
* [Built-in commands](Commands.md#built-in-commands)
2020-02-04 11:32:29 +01:00
* [Creating new built-in commands](Commands.md#creating-new-built-in-commands)
* [Plugins](Commands.md#plugins)
2020-01-22 03:39:11 +01:00
* [Factoids](Commands.md#factoids)
2020-02-04 11:32:29 +01:00
* [Code Factoids](Commands.md#code-factoids)
* [Modules](Commands.md#modules)
2020-01-23 04:29:44 +01:00
* [Commands documented here](Commands.md#commands-documented-here)
2020-01-22 03:39:11 +01:00
* [version](Commands.md#version)
* [help](Commands.md#help)
2020-01-23 04:29:44 +01:00
* [uptime](Commands.md#uptime)
2020-01-27 05:15:45 +01:00
* [my](Commands.md#my)
* [date](Commands.md#date)
* [weather](Commands.md#weather)
2020-01-23 04:29:44 +01:00
* [Commands documented elsewhere](Commands.md#commands-documented-elsewhere)
2020-02-04 11:32:29 +01:00
* [Administrative commands](Commands.md#administrative-commands)
* [Logging in and out of PBot](Commands.md#logging-in-and-out-of-pbot)
* [User management commands](Commands.md#user-management-commands)
* [Channel management commands](Commands.md#channel-management-commands)
* [Module management commands](Commands.md#module-management-commands)
* [Plugin management commands](Commands.md#plugin-management-commands)
* [Command metadata](Commands.md#command-metadata)
2020-02-15 08:35:34 +01:00
* [Process management](Commands.md#process-management)
2020-02-04 11:32:29 +01:00
* [Registry commands](Commands.md#registry-commands)
* [Miscellaneous admin commands](Commands.md#miscellaneous-admin-commands)
* [Factoid commands](Commands.md#factoid-commands)
* [Adding/removing factoids](Commands.md#addingremoving-factoids)
* [Displaying factoids](Commands.md#displaying-factoids)
* [Editing factoids](Commands.md#editing-factoids)
* [Factoid metadata](Commands.md#factoid-metadata)
* [Information about factoids](Commands.md#information-about-factoids)
2020-01-22 03:39:11 +01:00
<!-- md-toc-end -->
<!-- md-toc-begin -->
2020-01-12 19:30:51 +01:00
* [Administrative](Admin.md#administrative)
* [Logging in and out](Admin.md#logging-in-and-out)
* [login](Admin.md#login)
* [logout](Admin.md#logout)
2020-01-27 04:52:37 +01:00
* [User management commands](Admin.md#user-management-commands)
* [useradd](Admin.md#useradd)
* [userdel](Admin.md#userdel)
* [userset](Admin.md#userset)
* [userunset](Admin.md#userunset)
2020-02-04 11:32:29 +01:00
* [User metadata list](Admin.md#user-metadata-list)
2020-01-27 04:52:37 +01:00
* [Listing users](Admin.md#listing-users)
2020-02-04 11:30:26 +01:00
* [User capabilities](Admin.md#user-capabilities)
2020-02-06 20:22:47 +01:00
* [Introduction](Admin.md#introduction)
2020-02-04 11:30:26 +01:00
* [cap](Admin.md#cap)
2020-02-04 11:32:29 +01:00
* [Listing capabilities](Admin.md#listing-capabilities)
* [Grouping capabilities](Admin.md#grouping-capabilities)
* [Giving capabilities to users](Admin.md#giving-capabilities-to-users)
* [Checking user capabilities](Admin.md#checking-user-capabilities)
2020-02-06 20:22:47 +01:00
* [Listing users who have a capability](Admin.md#listing-users-who-have-a-capability)
2020-02-04 11:32:29 +01:00
* [User capabilities list](Admin.md#user-capabilities-list)
2020-01-12 19:30:51 +01:00
* [Channel management commands](Admin.md#channel-management-commands)
* [join](Admin.md#join)
* [part](Admin.md#part)
* [chanadd](Admin.md#chanadd)
* [chanrem](Admin.md#chanrem)
* [chanset](Admin.md#chanset)
* [chanunset](Admin.md#chanunset)
* [chanlist](Admin.md#chanlist)
2020-02-04 11:32:29 +01:00
* [Channel metadata list](Admin.md#channel-metadata-list)
2020-01-12 19:30:51 +01:00
* [ignore](Admin.md#ignore)
* [unignore](Admin.md#unignore)
* [blacklist](Admin.md#blacklist)
* [op](Admin.md#op)
* [deop](Admin.md#deop)
* [voice](Admin.md#voice)
* [devoice](Admin.md#devoice)
* [mode](Admin.md#mode)
* [ban/mute](Admin.md#banmute)
* [unban/unmute](Admin.md#unbanunmute)
* [invite](Admin.md#invite)
* [kick](Admin.md#kick)
* [Module management commands](Admin.md#module-management-commands)
* [load](Admin.md#load)
* [unload](Admin.md#unload)
2020-01-23 07:47:05 +01:00
* [Listing modules](Admin.md#listing-modules)
2020-01-12 19:30:51 +01:00
* [Plugin management commands](Admin.md#plugin-management-commands)
* [plug](Admin.md#plug)
* [unplug](Admin.md#unplug)
* [replug](Admin.md#replug)
* [pluglist](Admin.md#pluglist)
2020-01-23 07:25:09 +01:00
* [Command metadata commands](Admin.md#command-metadata-commands)
* [cmdset](Admin.md#cmdset)
* [cmdunset](Admin.md#cmdunset)
* [Command metadata list](Admin.md#command-metadata-list)
2020-02-15 08:06:24 +01:00
* [Process management commands](Admin.md#process-management-commands)
* [ps](Admin.md#ps)
* [kill](Admin.md#kill)
2020-01-12 19:30:51 +01:00
* [Miscellaneous commands](Admin.md#miscellaneous-commands)
* [export](Admin.md#export)
* [refresh](Admin.md#refresh)
* [reload](Admin.md#reload)
* [sl](Admin.md#sl)
* [die](Admin.md#die)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Factoids](Factoids.md#factoids)
* [About](Factoids.md#about)
* [Special commands](Factoids.md#special-commands)
* [/say](Factoids.md#say)
* [/me](Factoids.md#me)
* [/call](Factoids.md#call)
* [/msg](Factoids.md#msg)
* [/code](Factoids.md#code)
2020-02-04 11:32:29 +01:00
* [Supported languages](Factoids.md#supported-languages)
* [Special variables](Factoids.md#special-variables)
* [testargs example](Factoids.md#testargs-example)
* [Setting a usage message](Factoids.md#setting-a-usage-message)
* [poll/vote example](Factoids.md#pollvote-example)
* [SpongeBob Mock meme example](Factoids.md#spongebob-mock-meme-example)
* [Using command-piping](Factoids.md#using-command-piping)
* [Improving SpongeBob Mock meme](Factoids.md#improving-spongebob-mock-meme)
* [Formatting and editing lengthy Code Factoids](Factoids.md#formatting-and-editing-lengthy-code-factoids)
2020-01-12 19:30:51 +01:00
* [Special variables](Factoids.md#special-variables-1)
* [$args](Factoids.md#args)
* [$arg[n]](Factoids.md#argn)
* [$arg[n:m]](Factoids.md#argnm)
* [$arglen](Factoids.md#arglen)
* [$channel](Factoids.md#channel)
* [$nick](Factoids.md#nick)
* [$randomnick](Factoids.md#randomnick)
* [$0](Factoids.md#0)
* [List variables](Factoids.md#list-variables)
* [Expansion modifiers](Factoids.md#expansion-modifiers)
* [action_with_args](Factoids.md#action_with_args)
* [add_nick](Factoids.md#add_nick)
2020-01-23 04:29:44 +01:00
* [Channel namespaces](Factoids.md#channel-namespaces)
2020-01-22 03:39:11 +01:00
* [Adding/removing factoids](Factoids.md#addingremoving-factoids)
2020-01-12 19:30:51 +01:00
* [factadd](Factoids.md#factadd)
* [factrem](Factoids.md#factrem)
* [forget](Factoids.md#forget)
* [factalias](Factoids.md#factalias)
2020-01-22 03:39:11 +01:00
* [Displaying factoids](Factoids.md#displaying-factoids)
* [fact](Factoids.md#fact)
* [factshow](Factoids.md#factshow)
* [Editing factoids](Factoids.md#editing-factoids)
2020-01-12 19:30:51 +01:00
* [factchange](Factoids.md#factchange)
2020-01-22 03:39:11 +01:00
* [factmove](Factoids.md#factmove)
2020-01-12 19:30:51 +01:00
* [factundo](Factoids.md#factundo)
* [factredo](Factoids.md#factredo)
2020-02-06 20:22:47 +01:00
* [Factoid metadata](Factoids.md#factoid-metadata)
2020-01-12 19:30:51 +01:00
* [factset](Factoids.md#factset)
* [factunset](Factoids.md#factunset)
2020-02-06 20:22:47 +01:00
* [Factoid metadata List](Factoids.md#factoid-metadata-list)
2020-01-22 03:39:11 +01:00
* [Information about factoids](Factoids.md#information-about-factoids)
2020-01-12 19:30:51 +01:00
* [factfind](Factoids.md#factfind)
* [factinfo](Factoids.md#factinfo)
* [factlog](Factoids.md#factlog)
2020-01-22 03:39:11 +01:00
* [factset](Factoids.md#factset-1)
2020-01-12 19:30:51 +01:00
* [count](Factoids.md#count)
* [histogram](Factoids.md#histogram)
* [top20](Factoids.md#top20)
<!-- md-toc-end -->
<!-- md-toc-begin -->
2020-01-13 07:25:26 +01:00
* [Registry](Registry.md#registry)
* [About](Registry.md#about)
* [Types of values](Registry.md#types-of-values)
* [Creating array values](Registry.md#creating-array-values)
* [Overriding Registry values per-channel](Registry.md#overriding-registry-values-per-channel)
* [Overriding Registry values via command-line](Registry.md#overriding-registry-values-via-command-line)
* [Registry commands](Registry.md#registry-commands)
* [regset](Registry.md#regset)
* [regunset](Registry.md#regunset)
* [regchange](Registry.md#regchange)
* [regshow](Registry.md#regshow)
* [regfind](Registry.md#regfind)
* [regsetmeta](Registry.md#regsetmeta)
* [regunsetmeta](Registry.md#regunsetmeta)
* [Editing Registry file](Registry.md#editing-registry-file)
* [Metadata list](Registry.md#metadata-list)
* [List of known Registry items](Registry.md#list-of-known-registry-items)
* [Channel-specific Registry items](Registry.md#channel-specific-registry-items)
<!-- md-toc-end -->
<!-- md-toc-begin -->
2020-01-12 19:30:51 +01:00
* [Modules](Modules.md#modules)
* [About](Modules.md#about)
* [Creating modules](Modules.md#creating-modules)
* [Documentation for built-in modules](Modules.md#documentation-for-built-in-modules)
* [cc](Modules.md#cc)
2020-02-04 11:32:29 +01:00
* [Usage](Modules.md#usage)
* [Supported Languages](Modules.md#supported-languages)
* [Default Language](Modules.md#default-language)
* [Disallowed system calls](Modules.md#disallowed-system-calls)
* [Program termination with no output](Modules.md#program-termination-with-no-output)
* [Abnormal program termination](Modules.md#abnormal-program-termination)
* [C and C++ Functionality](Modules.md#c-and-c-functionality)
* [Using the preprocessor](Modules.md#using-the-preprocessor)
* [main() Function Unnecessary](Modules.md#main-function-unnecessary)
* [Embedding Newlines](Modules.md#embedding-newlines)
* [Printing in binary/base2](Modules.md#printing-in-binarybase2)
* [Using the GDB debugger](Modules.md#using-the-gdb-debugger)
* [Interactive Editing](Modules.md#interactive-editing)
* [Some Examples](Modules.md#some-examples)
2020-01-12 19:30:51 +01:00
* [english](Modules.md#english)
* [expand](Modules.md#expand)
* [prec](Modules.md#prec)
* [paren](Modules.md#paren)
* [faq](Modules.md#faq)
* [cfact](Modules.md#cfact)
* [cjeopardy](Modules.md#cjeopardy)
2020-02-04 11:32:29 +01:00
* [hint](Modules.md#hint)
* [what](Modules.md#what)
* [w](Modules.md#w)
* [filter](Modules.md#filter)
* [score](Modules.md#score)
* [rank](Modules.md#rank)
* [reset](Modules.md#reset)
* [qstats](Modules.md#qstats)
* [qshow](Modules.md#qshow)
2020-01-12 19:30:51 +01:00
* [c99std](Modules.md#c99std)
* [c11std](Modules.md#c11std)
* [man](Modules.md#man)
* [google](Modules.md#google)
* [define](Modules.md#define)
* [dict](Modules.md#dict)
* [foldoc](Modules.md#foldoc)
* [vera](Modules.md#vera)
* [udict](Modules.md#udict)
* [wdict](Modules.md#wdict)
* [acronym](Modules.md#acronym)
* [math](Modules.md#math)
* [calc](Modules.md#calc)
* [qalc](Modules.md#qalc)
* [compliment](Modules.md#compliment)
* [insult](Modules.md#insult)
* [excuse](Modules.md#excuse)
* [horoscope](Modules.md#horoscope)
* [quote](Modules.md#quote)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Quotegrabs](Quotegrabs.md#quotegrabs)
* [About](Quotegrabs.md#about)
* [Commands](Quotegrabs.md#commands)
* [grab](Quotegrabs.md#grab)
* [getq](Quotegrabs.md#getq)
* [rq](Quotegrabs.md#rq)
* [delq](Quotegrabs.md#delq)
<!-- md-toc-end -->
<!-- md-toc-begin -->
2020-01-13 07:25:26 +01:00
* [Anti-Abuse](AntiAbuse.md#anti-abuse)
* [Flood control](AntiAbuse.md#flood-control)
* [Message flood](AntiAbuse.md#message-flood)
* [Join flood](AntiAbuse.md#join-flood)
* [Enter key abuse](AntiAbuse.md#enter-key-abuse)
* [Nick flood](AntiAbuse.md#nick-flood)
* [Anti-away/Nick-control](AntiAbuse.md#anti-awaynick-control)
* [Anti-auto-rejoin control](AntiAbuse.md#anti-auto-rejoin-control)
* [Opping/Deopping](AntiAbuse.md#oppingdeopping)
2020-01-12 19:30:51 +01:00
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Virtual Machine](VirtualMachine.md#virtual-machine)
* [About](VirtualMachine.md#about)
* [Creating a new virtual machine](VirtualMachine.md#creating-a-new-virtual-machine)
* [Configuring the virtual machine](VirtualMachine.md#configuring-the-virtual-machine)
* [Installing Linux in the virtual machine](VirtualMachine.md#installing-linux-in-the-virtual-machine)
* [Configuring Linux for PBot Communication](VirtualMachine.md#configuring-linux-for-pbot-communication)
* [Hardening the PBot virtual machine](VirtualMachine.md#hardening-the-pbot-virtual-machine)
<!-- md-toc-end -->
2020-01-28 08:44:21 +01:00
<!-- md-toc-begin -->
* [Frequently Asked Questions](FAQ.md#frequently-asked-questions)
2020-02-04 11:30:26 +01:00
* [How do I change my password?](FAQ.md#how-do-i-change-my-password)
* [How do I make PBot remember my `date` timezone?](FAQ.md#how-do-i-make-pbot-remember-my-date-timezone)
* [How do I make PBot remember my `weather` location?](FAQ.md#how-do-i-make-pbot-remember-my-weather-location)
* [How do I change the bot trigger?](FAQ.md#how-do-i-change-the-bot-trigger)
2020-02-10 09:29:50 +01:00
* [How do I whitelist a user?](FAQ.md#how-do-i-whitelist-a-user)
2020-01-28 08:44:21 +01:00
<!-- md-toc-end -->