Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions db_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@
class DatabaseLogger:
conn = None
cursor = None
senders_whitelist = None

def __init__(self, host, name, user, password):
def __init__(self, host, name, user, password, senders_whitelist=None):
self.conn = psycopg2.connect(host=host, dbname=name, user=user, password=password)
self.conn.autocommit = True
self.cursor = self.conn.cursor()
self.senders_whitelist = senders_whitelist

def close(self):
self.cursor.close()
Expand All @@ -24,8 +26,9 @@ def log_chat(self, sender, message, channel):
return

try:
self.cursor.execute("INSERT INTO chat_log (sender, message, channel, date) VALUES (%s, %s, %s, %s)",
(sender, message, channel, current_time_in_milli()))
if (self.senders_whitelist is not None and sender in self.senders_whitelist) or (self.senders_whitelist is None):
self.cursor.execute("INSERT INTO chat_log (sender, message, channel, date) VALUES (%s, %s, %s, %s)",
(sender, message, channel, current_time_in_milli()))
except psycopg2.DataError as e:
print e
print message
Expand Down
21 changes: 15 additions & 6 deletions manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,35 @@ class TwitchManager:
SECONDS_BETWEEN_UPDATE_STREAMS = 60
SECONDS_BETWEEN_CREATE_BOTS = 15

def __init__(self, channels_amount, channels, log_filename=None):
def __init__(self, channels_amount, channels, log_filename=None, users_whitelist=None):
self.bots = []
self.channels_amount = channels_amount
self.log_filename = log_filename
self.channels = channels
self.db_logger = DatabaseLogger(settings.DATABASE['HOST'],
settings.DATABASE['NAME'],
settings.DATABASE['USER'],
settings.DATABASE['PASSWORD'])
settings.DATABASE['PASSWORD'],
settings.USERS)

def _create_bot(self, name, channels):
conn = IRCConnection(settings.IRC['SERVER'],
settings.IRC['PORT'],
settings.IRC['NICK'],
settings.IRC['PASSWORD'],
self.log_filename)
bot_db_logger = DatabaseLogger(settings.DATABASE['HOST'],
settings.DATABASE['NAME'],
settings.DATABASE['USER'],
settings.DATABASE['PASSWORD'])
if settings.USERS is not None:
bot_db_logger = DatabaseLogger(settings.DATABASE['HOST'],
settings.DATABASE['NAME'],
settings.DATABASE['USER'],
settings.DATABASE['PASSWORD'],
settings.USERS)
else:
bot_db_logger = DatabaseLogger(settings.DATABASE['HOST'],
settings.DATABASE['NAME'],
settings.DATABASE['USER'],
settings.DATABASE['PASSWORD'])

bot = TwitchBot(name, conn, bot_db_logger, Queue.Queue(), self.log_filename)
bot.daemon = True
bot.connect_and_join_channels(channels)
Expand Down
9 changes: 8 additions & 1 deletion settings.py.example
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,11 @@ DATABASE = {

API = {
'CLIENTID': 'YOUR_CLIENT_ID'
}
}

# Uncomment to only log certain users.
#USERS = [
# 'yourusername',
# 'friendsname'
#]