# Path: core/moduletemplate.py
# class BotModule:
#     PRIV_NONE = "none"
#     PRIV_MOD = "mod"
#     PRIV_MODERATOR = "mod"
#     PRIV_ADMIN = "admin"
#     PRIV_ADMINISTRATOR = "admin"
#     def __init__(self, conn, logger, module_name):
#     def on_module_load(self):
#     def on_module_unload(self):
#     def on_connect(self):
#     def on_disconnect(self):
#     def on_privmsg(self, target, nick, message):
#     def on_action(self, target, nick, action):
#     def on_join(self, nick, channel):
#     def on_part(self, nick, channel, message):
#     def on_self_join(self, channel):
#     def on_self_part(self, channel):
#     def on_kick(self, nick, channel, knick, reason):
#     def on_quit(self, nick, message):
#     def on_command(self, target, nick, command, commandtext, mod, admin):
#     def on_numeric(self, numeric, data):
#     def message(self, target, nick, message, parse=False):
#     def notice(self, nick, message, parse=False):
#     def action(self, target, action, parse=False):
#     def mode(self, target, modes):
#     def ban(self, nick, channel, quiet=False):
#     def getMask(self, nick):
#     def send_raw(self, raw_message):
#     def debug(self, message, format=False):
#     def log(self, message):
#     def log_verbose(self, message):
#     def warning(self, message):
#     def notice_verbose(self, message):
#     def warning_verbose(self, message):
#     def error(self, message):
#     def isOp(self, nick, channel):
#     def isVoice(self, nick, channel):
#     def isOn(self, nick, channel):
#     def isIdentified(self, nick):
#     def isOper(self, nick):
#     def getUserData(self, nick):
#     def getChannelData(self, channel):
#     def isBotAdministrator(self, nick):
#     def isBotModerator(self, nick):
#     def ratelimit(self, command, confName="rate_limit_delay", delay=10):
#     def register_command(self, command, params, help, priv, aliases=None):
#     def unregister_command(self, command):
#     def getConfigMetadata(self, metadata):
#     def requireApiKey(self, api_name):
#     def _getApiKey(self, api_name):
#     def _unregister_commands(self):
#     def _getModuleData(self):
# 
# Path: tools/formatter.py
# IRC_COLOUR_DICT = {
#     "white": "00",
#     "black": "01",
#     "dblue": "02",
#     "dark_blue": "02",
#     "dark_green": "03",
#     "dgreen": "03",
#     "red": "04",
#     "dark_red": "05",
#     "dred": "05",
#     "brown": "05",  # Note: This appears to show up as brown for some clients, dark red for others.
#     "purple": "06",
#     "orange": "07",
#     "yellow": "08",
#     "green": "09",
#     "lime": "09",
#     "cyan": "10",
#     "teal": "11",
#     "blue": "12",
#     "pink": "13",
#     "dgrey": "14",
#     "dark_grey": "14",
#     "dgray": "14",
#     "dark_gray": "14",
#     "grey": "15",
#     "gray": "15",
#     "random": ""  # Special keyword, generate a random number.
# }
# IRC_FORMATTING_DICT = {
#     "colour": "\x03",
#     "color": "\x03",
# 
#     "bold": "\x02",
#     "b": "\x02",
# 
#     "underlined": "\x1F",
#     "underline": "\x1F",
#     "ul": "\x1F",
# 
#     "italics": "\x1D",
#     "italic": "\x1D",
#     "i": "\x1D",
# 
#     "reverse": "\x16",
# 
#     "reset": "\x0F",
#     "clear": "\x0F"
# }
# class IrcFormatter:
#     def __init__(self):
#     def getColour(self, colour, return_formatted=True):
#     def getFormat(self, formatting):
#     def getAvailableFormats(self):
#     def getAvailableColours(self):
#     def parse(self, string):
#     def strip(self, string):
#     def _convert(self, string):
# 
# Path: tools/validator.py
# class Validator:
#     def __init__(self):
#     def hostmask(self, hostmask, require_nickname=False):
#     def nickname(self, nick):
#     def channel(self, channel):


from core import moduletemplate
from tools import formatter
from tools import validator
import os
import sqlite3
import time
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

factoid.py by Zarthus
Licensed under MIT

Factoids: brief answers to frequently asked questions and other responses.
"""




class Factoid(moduletemplate.BotModule):

    def on_module_load(self):

# Path: core/moduletemplate.py
# class BotModule:
#     PRIV_NONE = "none"
#     PRIV_MOD = "mod"
#     PRIV_MODERATOR = "mod"
#     PRIV_ADMIN = "admin"
#     PRIV_ADMINISTRATOR = "admin"
#     def __init__(self, conn, logger, module_name):
#     def on_module_load(self):
#     def on_module_unload(self):
#     def on_connect(self):
#     def on_disconnect(self):
#     def on_privmsg(self, target, nick, message):
#     def on_action(self, target, nick, action):
#     def on_join(self, nick, channel):
#     def on_part(self, nick, channel, message):
#     def on_self_join(self, channel):
#     def on_self_part(self, channel):
#     def on_kick(self, nick, channel, knick, reason):
#     def on_quit(self, nick, message):
#     def on_command(self, target, nick, command, commandtext, mod, admin):
#     def on_numeric(self, numeric, data):
#     def message(self, target, nick, message, parse=False):
#     def notice(self, nick, message, parse=False):
#     def action(self, target, action, parse=False):
#     def mode(self, target, modes):
#     def ban(self, nick, channel, quiet=False):
#     def getMask(self, nick):
#     def send_raw(self, raw_message):
#     def debug(self, message, format=False):
#     def log(self, message):
#     def log_verbose(self, message):
#     def warning(self, message):
#     def notice_verbose(self, message):
#     def warning_verbose(self, message):
#     def error(self, message):
#     def isOp(self, nick, channel):
#     def isVoice(self, nick, channel):
#     def isOn(self, nick, channel):
#     def isIdentified(self, nick):
#     def isOper(self, nick):
#     def getUserData(self, nick):
#     def getChannelData(self, channel):
#     def isBotAdministrator(self, nick):
#     def isBotModerator(self, nick):
#     def ratelimit(self, command, confName="rate_limit_delay", delay=10):
#     def register_command(self, command, params, help, priv, aliases=None):
#     def unregister_command(self, command):
#     def getConfigMetadata(self, metadata):
#     def requireApiKey(self, api_name):
#     def _getApiKey(self, api_name):
#     def _unregister_commands(self):
#     def _getModuleData(self):
# 
# Path: tools/formatter.py
# IRC_COLOUR_DICT = {
#     "white": "00",
#     "black": "01",
#     "dblue": "02",
#     "dark_blue": "02",
#     "dark_green": "03",
#     "dgreen": "03",
#     "red": "04",
#     "dark_red": "05",
#     "dred": "05",
#     "brown": "05",  # Note: This appears to show up as brown for some clients, dark red for others.
#     "purple": "06",
#     "orange": "07",
#     "yellow": "08",
#     "green": "09",
#     "lime": "09",
#     "cyan": "10",
#     "teal": "11",
#     "blue": "12",
#     "pink": "13",
#     "dgrey": "14",
#     "dark_grey": "14",
#     "dgray": "14",
#     "dark_gray": "14",
#     "grey": "15",
#     "gray": "15",
#     "random": ""  # Special keyword, generate a random number.
# }
# IRC_FORMATTING_DICT = {
#     "colour": "\x03",
#     "color": "\x03",
# 
#     "bold": "\x02",
#     "b": "\x02",
# 
#     "underlined": "\x1F",
#     "underline": "\x1F",
#     "ul": "\x1F",
# 
#     "italics": "\x1D",
#     "italic": "\x1D",
#     "i": "\x1D",
# 
#     "reverse": "\x16",
# 
#     "reset": "\x0F",
#     "clear": "\x0F"
# }
# class IrcFormatter:
#     def __init__(self):
#     def getColour(self, colour, return_formatted=True):
#     def getFormat(self, formatting):
#     def getAvailableFormats(self):
#     def getAvailableColours(self):
#     def parse(self, string):
#     def strip(self, string):
#     def _convert(self, string):
# 
# Path: tools/validator.py
# class Validator:
#     def __init__(self):
#     def hostmask(self, hostmask, require_nickname=False):
#     def nickname(self, nick):
#     def channel(self, channel):


# Path: modules/factoid.py
from core import moduletemplate
from tools import formatter
from tools import validator
import os
import sqlite3
import time

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

factoid.py by Zarthus
Licensed under MIT

Factoids: brief answers to frequently asked questions and other responses.
"""




class Factoid(moduletemplate.BotModule):

    def on_module_load(self):

        self.colformat = formatter.IrcFormatter()