Esempio n. 1
0
from pluginmanager.pluginmanager import register_plugin, plugin


class Cyber(plugin):

    name = "Cyber"

    def plugin_init():
        pass

    def match():
        return "(^|\s+)cyber"

    def send_message(message, match, nick):
        sp = match.span()
        return "Cyber Cyber Cyber! Cyber%s - https://youtu.be/WY6KkRsS26M" % message[sp[1] :].rstrip()


register_plugin(Cyber, True)
Esempio n. 2
0
from pluginmanager.pluginmanager import register_plugin, plugin


class JanKenoJanssen(plugin):

    name = "Jan-Keno Janssen"

    # 0: Match on Private Message | 1: Match on Group Chat
    permissions = [True, True]

    def plugin_init():
        JanKenoJanssen.wordlist = set()
        for line in open("pluginmanager/plugins/jan-keno_janssen.txt", "r"):
            JanKenoJanssen.wordlist.add("".join(line.split()))
        filter("", JanKenoJanssen.wordlist)
        JanKenoJanssen.words = "(^|\s+)("
        JanKenoJanssen.words += "|".join(JanKenoJanssen.wordlist)
        JanKenoJanssen.words += ")"

    def match():
        return JanKenoJanssen.words

    def send_message(message, match, nick):
        return "Jan-Keno Janssen regt das auf! - http://i.imgur.com/rO22R9u.png"

    def help():
        return "Write a Jan-Keno Janssen word like these " + ", ".join(JanKenoJanssen.wordlist)


register_plugin(JanKenoJanssen)
Esempio n. 3
0
        for uid in uid_list:
            # data contains url, page_title, message and user
            data = DatabaseLayer.search_uid(uid)
            if data != None:
                response += "\n" + data[0] + " (" + data[1] + ")"
                if len(data[2]) > 0:
                    response += ": " + data[2]
                response += " - " + data[3]
        return response

    def help():
        return "!link <link-numbers>, see !links"


register_plugin(Link)


class DatabaseLayer:

    db = None

    def init_db():
        # Create new database and tables
        DatabaseLayer.db = boten_anna_db(
            "boten_anna.db",
            "url",
            [
                "uid integer PRIMARY KEY",
                "url text",
                "page_title text",
Esempio n. 4
0
from pluginmanager.pluginmanager import register_plugin, plugin


class Next(plugin):

    name = 'Next'

    def plugin_init():
        pass

    def match():
        return '^!next'

    def send_message(message, match, nick):
        return 'Another satisfied customer! NEXT!'


register_plugin(Next)
Esempio n. 5
0
        else:
            links = DatabaseLayer.get_links()
        
        # Format database dump to str: \n uid - url - title tag - message - nick - timestamp
        response  = ""
        for link in links:
            response += "\n"
            for column in link:
                response += str(column) + " - "
            response = response[:len(response)-3] # without minus (-) at the end
        return response 

    def help():
        return '!links - Show all stored links with message, time and nick. Commands:\nAll links with the following nicks: !links <nicks>, all links from a begin - till an end: !links <id begin> <id end>, all links from 1 till an end: !links <id end>' 

register_plugin(Links)

class DatabaseLayer:
  
    db = None

    def init_db():
        # Create new database and tables
        DatabaseLayer.db = boten_anna_db("boten_anna.db",'url',['uid integer PRIMARY KEY',
                                                                'url text',
                                                                'page_title text',
                                                                'message text',
                                                                'user text',
                                                                'timestamp datetime default current_timestamp'])

    def get_links():
            if len(data[1]) <= 0 or len(nick) <= 0:
                return dict(is_duplicated=False, reply="")
            else:
                if len(data[2]) > 0:
                    stored_message = data[2]
                else:
                    stored_message = "- Keine -"

                return dict(
                    is_duplicated=True,
                    reply=
                    "%s du BoB! %s hat den Link: %s mit dem Titel: %s bereits %s geposted. Die Nachricht lautete %s"
                    % (nick, data[3], url, data[1], data[4], stored_message))


register_plugin(WebsiteTitleGrabber, True)


class LinkDatabase:

    db = None

    def __init__(self):
        logging.info("Initialized database")
        # Create new database and tables if not exists
        self.conn = sqlite3.connect("boten_anna.db", check_same_thread=False)
        self.__create_table__()

    def __create_table__(self):
        c = self.conn.cursor()
        c.execute(
Esempio n. 7
0
from pluginmanager.pluginmanager import register_plugin, plugin

class Next(plugin):
   
  name = 'Next'
 
  # 0: Match on Private Messages | 1: Match on Group Chat   
  permissions = [True,True]  

  def plugin_init():
    pass

  def match():
    return '^!next' 

  def send_message(message,match,nick):
    return 'Another satisfied customer! NEXT!'

register_plugin(Next)
Esempio n. 8
0
        data = DatabaseLayer.search_duplicated(url)
        if data != None:
            return True, data[0], data[1], data[2], data[3], data[4]
        else:
            return False, None, None, None, None, None

    def save_url(url,url_page_title,message,user):
        """
        Save URL in Database
        """
        return DatabaseLayer.insert(url,url_page_title,message,user)

    def help():
        return 'Store links in database, pattern: http://www.url.tld/something/somepage.html#anchor or http://127.0.0.1/s/sp.html#anchor' 

register_plugin(WebsiteTitleGrabber,True)

class DatabaseLayer:
  
    db = None

    def init_db():
        # Create new database and tables
        DatabaseLayer.db = boten_anna_db("boten_anna.db",'url',['uid integer PRIMARY KEY',
                                                                'url text',
                                                                'page_title text',
                                                                'message text',
                                                                'user text',
                                                                'timestamp datetime default current_timestamp'])

    def insert(links, page_title, message, user):
Esempio n. 9
0
from pluginmanager.pluginmanager import register_plugin, plugin
import random


class RandomNumber(plugin):

    name = 'Random number'

    def plugin_init():
        pass

    def match():
        return '^!(random-number)($|\s)'

    def send_message(message, match, nick):
        msg = message.split(' ')[1:]
        if len(msg) == 2 and msg[0].isdecimal() and msg[1].isdecimal():
            try:
                return str(random.randint(int(msg[0]), int(msg[1])))
            except ValueError as v:
                return 'Ouch %s that hurts, please try again with a valid number range' % nick
        else:
            return 'Usage:\n\t!random-number <range-begin> <range-end>'

    def help():
        return 'Random number plugin\nUsage: !random-number <range-begin> <range-end>'


register_plugin(RandomNumber)
Esempio n. 10
0
from pluginmanager.pluginmanager import register_plugin, plugin


class Beer(plugin):

    name = 'Beer'

    def plugin_init():
        pass

    def match():
        return '(^|\s+)(b([i]+|e)[e]+r)'

    def send_message(message, match, nick):
        return 'Kein Bier vor vier! - http://i.imgur.com/Bg4vMW3.jpg'


register_plugin(Beer, True)
Esempio n. 11
0
from pluginmanager.pluginmanager import register_plugin, plugin
import random

class RandomNumber(plugin):

  name = 'Random number'
  
  # 0: Match on Private Messages | 1: Match on Group Chat
  permissions = [True,True]   

  def plugin_init():
    pass

  def match():
    return '^!(random-number)($|\s)'

  def send_message(message,match,nick):
    msg = message.split(' ')[1:]
    if len(msg) == 2 and msg[0].isdecimal() and msg[1].isdecimal():
      try:
        return str(random.randint(int(msg[0]), int(msg[1])))
      except ValueError as v:
        return 'Ouch %s that hurts, please try again with a valid number range' % nick
    else:
      return 'Usage:\n\t!random-number <range-begin> <range-end>'

  def help():
    return 'Random number plugin\nUsage: !random-number <range-begin> <range-end>'
      
register_plugin(RandomNumber)
Esempio n. 12
0
from pluginmanager.pluginmanager import register_plugin, plugin 

class JanKenoJanssen(plugin):
    
    name = 'Jan-Keno Janssen'

    def plugin_init():
        JanKenoJanssen.wordlist = set() 
        for line in open('pluginmanager/plugins/jan-keno_janssen.txt', 'r'):
            JanKenoJanssen.wordlist.add(''.join(line.split()))
        filter("", JanKenoJanssen.wordlist)
        JanKenoJanssen.words = '(^|\s+)('
        JanKenoJanssen.words += "|".join(JanKenoJanssen.wordlist)
        JanKenoJanssen.words += ')'
    def match():
        return JanKenoJanssen.words

    def send_message(message, match, nick):
        return "Jan-Keno Janssen regt das auf! - http://i.imgur.com/rO22R9u.png"

    def help():
        return "Write a Jan-Keno Janssen word like these " + ", ".join(JanKenoJanssen.wordlist)

register_plugin(JanKenoJanssen, True)
Esempio n. 13
0
from pluginmanager.pluginmanager import register_plugin, plugin

class Beer(plugin):
   
    name = 'Beer'

    # 0: Match on Private Messages | 1: Match on Group Chat
    permissions = [True,True]   
  
    def plugin_init():
        pass

    def match():
        return '(^|\s+)(b([i]+|e)[e]+r)'

    def send_message(message,match,nick):
        return 'Kein Bier vor vier! - http://i.imgur.com/Bg4vMW3.jpg'

register_plugin(Beer)
Esempio n. 14
0
from pluginmanager.pluginmanager import register_plugin, plugin

class Cyber(plugin):
   
    name = 'Cyber'
  
    def plugin_init():
        pass

    def match():
        return '(^|\s+)cyber'

    def send_message(message, match, nick):
        sp = match.span()
        return 'Cyber Cyber Cyber! Cyber%s - https://youtu.be/WY6KkRsS26M' % message[sp[1]:].rstrip()

register_plugin(Cyber, True)
Esempio n. 15
0
from pluginmanager.pluginmanager import register_plugin, plugin

class Beer(plugin):
   
    name = 'Beer'
  
    def plugin_init():
        pass

    def match():
        return '(^|\s+)(b([i]+|e)[e]+r)'

    def send_message(message, match, nick):
        return 'Kein Bier vor vier! - http://i.imgur.com/Bg4vMW3.jpg'

register_plugin(Beer, True)