diff --git a/docs/Configuration.html b/docs/Configuration.html
new file mode 100644
index 00000000..a0f12c7a
--- /dev/null
+++ b/docs/Configuration.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ZNC - Configuration
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+ File Locations
+
+
+- Config - ZNC gets its configuration by reading the file ~/.znc/znc.conf
+
- Misc - Other files are also stored in the ~/.znc directory such as the SSL cert (znc.pem) and PidFile (znc.pid).
+
- Local Modules - Stored in ~/.znc/modules. ZNC will look in the local module dir first when trying to load a module.
+
- Global Modules - Stored in /usr/share/znc/modules by default.
+
- Binaries - znc, znc-config, and zncchk are all stored in /usr/bin by default. You can change this when you configure by using ./configure --prefix=/whatever/path/you/want
+
+
+ Config File - (~/.znc/znc.conf)
+
+
+- ListenPort - The port that ZNC will listen on. If the port is prepended with a '+' then ZNC listens using ssl.
+
- ISpoofFile - ZNC will write the ident of the user trying to connect to this file. Very useful if your shell supports oidentd.
+
- PidFile - The pid file that is needed if you want to crontab the zncchk shell script.
+
- StatusPrefix - The prefix for the status and module queries.
+
- User - The user definition, you can have more than one..
+
+- Pass - Used by the client to connect to ZNC. Can be a hash generated by znc --makepass
+
- Nick, AltNick, Ident, RealName, VHost - Setup your IRC user info.
+
- ChanModes - Default modes ZNC will set when you join an empty channel.
+
- KeepNick - Will keep trying to regain your primary nick if it is in use.
+
- QuitMsg - The default quit message znc will use when you jump servers or call shutdown.
+
- VersionReply - The reply sent to CTCP version requests while you are detached.
+
- AutoCycle - Set this to false if you don't want ZNC to part/join a channel when you are the last user left and not opped.
+
- Buffer - This is the amount of lines that the playback buffer will store before dropping off the oldest line.
+
- KeepBuffer - Buffer channels while you are attached and play the whole buffer back to you each time you connect.
+
- Server - Adds a server to the list of servers ZNC will connect to.
+
- LoadModule - Load a module on startup
+
- Chan - Channels you want ZNC to join when first launched.
+
+- Key - Key for the channel.
+
- Modes - Modes to override ChanModes.
+
- Buffer - You can set this to override the Buffer size set in the User section.
+
- KeepBuffer - You can set this to override the KeepBuffer option set in the User section.
+
- AutoCycle - You can set this to override the AutoCycle option set in the User section.
+
- Detached - If true, znc will join this channel as detached so that the IRC client will not be bothered by it.
+
+
+
+
+
+
diff --git a/docs/Installation.html b/docs/Installation.html
new file mode 100644
index 00000000..444f40f3
--- /dev/null
+++ b/docs/Installation.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ZNC - Installation
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+- Download Tarball
+
- tar -xzvf znc*.*gz
+
- cd znc*
+
- ./configure (use --prefix=/path/to/shell/znc) if you don't want a system wide installation or simply don't have root
+
- make
+
- make install
+
+
+
+
diff --git a/docs/ModuleHooks.html b/docs/ModuleHooks.html
new file mode 100644
index 00000000..41f2ef3c
--- /dev/null
+++ b/docs/ModuleHooks.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ZNC - Module Hooks
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+ virtual bool OnLoad(const string& sArgs);
+ virtual bool OnBoot();
+ virtual void OnUserAttached();
+ virtual void OnUserDetached();
+ virtual void OnIRCDisconnected();
+ virtual void OnIRCConnected();
+
+
+ virtual bool OnDCCUserSend(const CNick& RemoteNick, unsigned long uLongIP, unsigned short uPort, const string& sFile, unsigned long uFileSize);
+
+
+ virtual void OnOp(const CNick& OpNick, const CNick& Nick, const CChan& Channel, bool bNoChange);
+ virtual void OnDeop(const CNick& OpNick, const CNick& Nick, const CChan& Channel, bool bNoChange);
+ virtual void OnVoice(const CNick& OpNick, const CNick& Nick, const CChan& Channel, bool bNoChange);
+ virtual void OnDevoice(const CNick& OpNick, const CNick& Nick, const CChan& Channel, bool bNoChange);
+ virtual void OnRawMode(const CNick& OpNick, const CChan& Channel, const string& sModes, const string& sArgs);
+
+
+ virtual bool OnUserRaw(string& sLine);
+ virtual bool OnRaw(string& sLine);
+
+
+ virtual bool OnStatusCommand(const string& sCommand);
+ virtual void OnModCommand(const string& sCommand);
+ virtual void OnModNotice(const string& sMessage);
+ virtual void OnModCTCP(const string& sMessage);
+
+
+ virtual void OnQuit(const CNick& Nick, const string& sMessage, const vector& vChans);
+ virtual void OnNick(const CNick& Nick, const string& sNewNick, const vector& vChans);
+ virtual void OnKick(const CNick& Nick, const string& sOpNick, const CChan& Channel, const string& sMessage);
+ virtual void OnJoin(const CNick& Nick, const CChan& Channel);
+ virtual void OnPart(const CNick& Nick, const CChan& Channel);
+
+
+
+
diff --git a/docs/UsingCommands.html b/docs/UsingCommands.html
new file mode 100644
index 00000000..60a8b3b4
--- /dev/null
+++ b/docs/UsingCommands.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ZNC - Using Commands
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+ Commands
+
+
+Commands are given to ZNC by messaging the virtual user *status. Likewise, modules are communicated to by messaging *modname as well.
+
+
+ Example: /msg *status listmods
+
+
+ <prozac> listmods
+ <*status> +---------+------------------------------------------------------+
+ <*status> | Name | Description |
+ <*status> +---------+------------------------------------------------------+
+ <*status> | email | Monitors Email activity on local disk /var/mail/user |
+ <*status> | shell | Gives shell access. |
+ <*status> | schat | Secure cross platform (:P) chat system |
+ <*status> +---------+------------------------------------------------------+
+
+
+The prefix for these virtual users can be changed from * in the znc.conf file. It is wise to use a character that is illegal to use on IRC so that you don't lose the ability to talk to a real person who happens to be using the same prefix on their IRC nick.
+
+
+ Command List
+
+
+ <zncuser> help
+ <*status> +-----------+---------------------+-------------------------------------+
+ <*status> | Command | Arguments | Description |
+ <*status> +-----------+---------------------+-------------------------------------+
+ <*status> | ListDCCs | | List all active DCCs |
+ <*status> | ListMods | | List all loaded modules |
+ <*status> | ListChans | | List all channels |
+ <*status> | ListNicks | <#chan> | List all nicks on a channel |
+ <*status> | Topics | | Show topics in all channels |
+ <*status> | SetBuffer | <#chan> [linecount] | Set the buffer count for a channel |
+ <*status> | Jump | | Jump to the next server in the list |
+ <*status> | Send | <nick> <file> | Send a shell file to a nick on IRC |
+ <*status> | Get | <file> | Send a shell file to yourself |
+ <*status> | LoadMod | <module> | Load a module |
+ <*status> | UnloadMod | <module> | Unload a module |
+ <*status> | ReloadMod | <module> | Reload a module |
+ <*status> +-----------+---------------------+-------------------------------------+
+
+
+
+
diff --git a/docs/WritingModules.html b/docs/WritingModules.html
new file mode 100644
index 00000000..037df4e0
--- /dev/null
+++ b/docs/WritingModules.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ZNC - Writing Modules
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+ Overview
+
+
+- Create your own module.cpp file
+
- #include <main.h> and <Modules.h>
+
- Create a new class derived from CModule overriding any ModuleHooks that you need
+
- Be sure to add the macro call MODULEDEFS(CYourClass) at the END of the file
+
- Compile your module into a shared object (.so file)
+
+- The easy way to compile is to use the znc-buildmod script as long as your module is a single .cpp file
+
+- znc-buildmod example.cpp
+
+ - alternative is to manually compile using znc-config to ensure that you are using the same flags and libs that the znc engine was compiled with
+
+- g++ `znc-config --cflags` `znc-config --include` `znc-config --libs` -shared -o example.so example.cpp
+
+
+ - Place the .so file into your ~/.znc/modules directory !!!WARNING!!! if you overwrite a .so file while znc has it loaded it can and probably will crash znc, /msg *status unloadmod foo first!
+
+
+ Code
+
+
+ #include <main.h>
+ #include <Modules.h>
+
+
+ class CExampleMod : public CModule {
+ public:
+ MODCONSTRUCTOR(CExampleMod) {}
+ virtual ~CExampleMod() {}
+
+
+ virtual void OnModCommand(const string& sCommand) {
+ if (strcasecmp(sCommand.c_str(), "HELP") == 0) {
+ PutModule("I'd like to help, but I am just an example");
+ } else {
+ PutModule("Unknown command, try HELP");
+ }
+ }
+ };
+
+
+ MODULEDEFS(CExampleMod)
+
+
+ Output
+
+
+ <zncuser> test
+ <*example> Unknown command, try HELP
+ <zncuser> help
+ <*example> I'd like to help, but I am just an example
+
+
+
+
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..f9011441
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ZNC - Front Page
+
+
+
+[Home]
+-
+[Project Page]
+
+
+
+
+ ZNC - An advanced IRC bouncer
+
+
+ Main Features
+
+
+- Detaching - ZNC will stay on IRC even while you are offline.
+
- Multiple Users - You can add additional users under one running process. Useful for public shells that limit background processes.
+
- Playback Buffers - Stay up-to-date with what happened while you were detached.
+
- SSL - Encryption for both the listen port and connecting to IRC servers.
+
- DCC Bouncing - Transparent bouncing for DCC anonymity.
+
- C++ Modules - Dynamically loaded shared objects. Just derive from CModule and overload any needed functions such as OnPrivMsg(). IRC scripting in C++, what could be better than that?
+
+- shell - Have your unix shell in a query window right inside of your IRC client.
+
- savebuff - Saves your channel buffers into an encrypted file so they can survive restarts and reboots.
+
- email - Monitors email activity on local disk /var/mail/user
+
- schat - SSL (encrypted) DCC chats.
+
- watch - Monitor activity for specific text patterns from specific users and have the text sent to a special query window.
+
- custom - Write your own modules to do whatever you want.
+
+
+
+ Using ZNC
+
+
+
+
+