예제 #1
0
파일: irc_bot.py 프로젝트: origama/pyircbot
class IRCBot(irc.IRCClient):
    
    """Python Twisted IRC BOT. irc.IRCClient specialization."""
    
    lineRate = 1
    
    def _get_nickname(self):
        return self.factory.nickname
    nickname = property(_get_nickname)

    def connectionMade(self):
        irc.IRCClient.connectionMade(self)
        try:
            logfile = open(self.factory.log_filename, "a")
        except IOError, error:
            sys.stderr.write("ERROR: %s\n" % error)
            sys.exit(1)
        self.logger = MessageLogger(logfile)
        self.logger.log(
            "[connected at %s]" %
            time.asctime(time.localtime(time.time()))
        )
        self.data_manager = DataManager(self.logger)
        self.karmrator = KarmaRateLimiter()
        self.reddit = RedditManager()
        # Singleton WelcomeMachine class
        self.welcome_machine = WelcomeMachine(self.factory.cm.greetings_file_path)
예제 #2
0
 def connectionMade(self):
     irc.IRCClient.connectionMade(self)
     self.logger = MessageLogger(open(self.factory.filename, "a"))
     self.logger.log(
         "[connected at %s]" %
         time.asctime(time.localtime(time.time()))
     )
예제 #3
0
class BaseIRCBot(irc.IRCClient, object):

    def connectionMade(self):
        irc.IRCClient.connectionMade(self)
        self.logger = MessageLogger(open(self.factory.filename, "a"))
        self.logger.log(
            "[connected at %s]" %
            time.asctime(time.localtime(time.time()))
        )

    def connectionLost(self, reason):
        irc.IRCClient.connectionLost(self, reason)
        self.logger.log(
            "[disconnected at %s]" %
            time.asctime(time.localtime(time.time()))
        )
        self.logger.close()

    def identify(self):
        if self.password:
            self.msg('NickServ', 'RELEASE %s %s' % (self.nickname, self.password))
            self.msg('NickServ', 'RELEASE %s %s' % (self.nickname, self.password))
            self.msg('NickServ', 'IDENTIFY %s %s' % (self.nickname, self.password))

    def signedOn(self):
        """Called when bot has succesfully signed on to server."""
        self.join(self.factory.channel)
        self.identify()

    def action(self, user, channel, msg):
        """This will get called when the bot sees someone do an action."""
        # i.e. /me <something>
        user = user.split('!', 1)[0]
        self.logger.log("* %s %s" % (user, msg))

    def privmsg(self, user, channel, msg):
        """This will get called when the bot receives a message."""
        self.logger.log(msg)
예제 #4
0
class BaseIRCBot(irc.IRCClient, object):
    def connectionMade(self):
        irc.IRCClient.connectionMade(self)
        self.logger = MessageLogger(open(self.factory.filename, "a"))
        self.logger.log("[connected at %s]" %
                        time.asctime(time.localtime(time.time())))

    def connectionLost(self, reason):
        irc.IRCClient.connectionLost(self, reason)
        self.logger.log("[disconnected at %s]" %
                        time.asctime(time.localtime(time.time())))
        self.logger.close()

    def identify(self):
        if self.password:
            self.msg('NickServ',
                     'RELEASE %s %s' % (self.nickname, self.password))
            self.msg('NickServ',
                     'RELEASE %s %s' % (self.nickname, self.password))
            self.msg('NickServ',
                     'IDENTIFY %s %s' % (self.nickname, self.password))

    def signedOn(self):
        """Called when bot has succesfully signed on to server."""
        self.join(self.factory.channel)
        self.identify()

    def action(self, user, channel, msg):
        """This will get called when the bot sees someone do an action."""
        # i.e. /me <something>
        user = user.split('!', 1)[0]
        self.logger.log("* %s %s" % (user, msg))

    def privmsg(self, user, channel, msg):
        """This will get called when the bot receives a message."""
        self.logger.log(msg)
예제 #5
0
import paho.mqtt.client as mqtt
from topic import Topic

BASE_TOPIC = Topic("433MHz")

from blind import Blind
from fountain import Fountain
from message_logger import MessageLogger
listeners = [Blind('inner'), Blind('outer'), Fountain(), MessageLogger()]


def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))
    client.subscribe(str(BASE_TOPIC + "#"))


class MQTT433MHz(object):
    def __init__(self, *argv):
        self.client = mqtt.Client(*argv)
        self.client.on_connect = on_connect
        for listener in listeners:
            listener.attach(self.client, BASE_TOPIC)
예제 #6
0
import datetime
from hashlib import sha256
from functools import wraps, partial
from flask import (Flask, render_template, request, url_for, redirect,
                   make_response, session, flash)

from db_connect import connect
from translate import microsoft_translate
from message_logger import MessageLogger
from chatbot import Chatbot

app = Flask(__name__)
app.config[
    'SECRET_KEY'] = '12fa-d9_0?10\'!9_h0vfefq0["n92039ngb/\'23rf2"12a1li_'
message_logger = MessageLogger()
chatbot = Chatbot()


def hash_password(password):
    """Return the sha256 hexdigest of password"""
    return sha256(bytes(password, "utf-8")).hexdigest()


def execute_mysql_command(instruction):
    """Execute mysql commands like DELETE and INSERT. Does not include
    SELECT command.
    """
    mydb = connect()
    mycursor = mydb.cursor()
    mycursor.execute(instruction)
    mydb.commit()
예제 #7
0
 def connectionMade(self):
     irc.IRCClient.connectionMade(self)
     self.logger = MessageLogger(open(self.factory.filename, "a"))
     self.logger.log("[connected at %s]" %
                     time.asctime(time.localtime(time.time())))