|
|
@@ -117,9 +117,11 @@ def create_or_get_and_update_last_event(self, table, event_type, channel_name=No
|
|
|
return record
|
|
|
|
|
|
|
|
|
-def get_owners(self):
|
|
|
- return self.db.all('SELECT * FROM rotbot_owner')
|
|
|
+# def get_owners(self):
|
|
|
+# return self.db.all('SELECT * FROM rotbot_owner')
|
|
|
|
|
|
+def is_owner(self, hostmask):
|
|
|
+ return self.db.one('SELECT id FROM rotbot_owner WHERE hostmask=%(hostmask)s', hostmask=hostmask)
|
|
|
|
|
|
# Channel
|
|
|
def get_channel_id(self, channel_name):
|
|
|
@@ -131,12 +133,31 @@ def get_channel_slug(self, channel_name):
|
|
|
def get_channel_setting_statistic_commands(self, channel_id):
|
|
|
return self.db.one('SELECT statistic_commands FROM rotbot_channel WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
|
|
|
-def get_channel_setting_game_commands(self, channel_id):
|
|
|
+def get_channel_setting_games_commands(self, channel_id):
|
|
|
return self.db.one('SELECT games FROM rotbot_channel WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
|
|
|
+def get_channel_setting_chat(self, channel_id):
|
|
|
+ return self.db.one('SELECT chat FROM rotbot_channel WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
+
|
|
|
def get_autojoin_channels(self):
|
|
|
return self.db.all('SELECT name FROM rotbot_channel WHERE network_id=%(network_id)s AND autojoin=True', network_id=self.network.id)
|
|
|
|
|
|
+def get_channel_last_greet(self, channel_id):
|
|
|
+ return self.db.one('SELECT last_greet FROM rotbot_channel WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
+
|
|
|
+def update_channel_last_greet(self, channel_id):
|
|
|
+ return self.db.run('UPDATE rotbot_channel SET last_greet=NOW() WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
+
|
|
|
+def get_channel_last_lame(self, channel_id):
|
|
|
+ return self.db.one('SELECT last_lame FROM rotbot_channel WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
+
|
|
|
+def update_channel_last_lame(self, channel_id):
|
|
|
+ return self.db.run('UPDATE rotbot_channel SET last_greet=NOW() WHERE id=%(channel_id)s', channel_id=channel_id)
|
|
|
+
|
|
|
+def get_channel_key(self, channel_name):
|
|
|
+ channel_id = get_channel_id(self, channel_name) # Inperfect, make a index of the channel_name field.
|
|
|
+ return self.db.one('SELECT key FROM rotbot_channel WHERE channel_id=%(channel_id)', channel_id=channel_id)
|
|
|
+
|
|
|
def save_channel_key(self, channel_name, channel_key):
|
|
|
channel_id = get_channel_id(self, channel_name) # Inperfect, make a index of the channel_name field.
|
|
|
self.db.run('UPDATE key FROM rotbot_channel WHERE channel_id=%(channel_id)', channel_id=channel_id)
|
|
|
@@ -187,21 +208,65 @@ def get_user_total_notices(self, user_id):
|
|
|
recordset = self.db.all('SELECT amount FROM rotbot_notice WHERE user_id=%(user_id)s AND network_id=%(network_id)s', user_id=user_id, network_id=self.network.id)
|
|
|
return total_amount_in_recordset(recordset)
|
|
|
|
|
|
-def get_user_total_curseword_added(self, user_id):
|
|
|
+def get_user_total_cursewords_added(self, user_id):
|
|
|
recordset = self.db.all('SELECT id FROM rotbot_curseword WHERE irc_user_id=%(user_id)s ', user_id=user_id)
|
|
|
return recordset.count(recordset)
|
|
|
|
|
|
-def get_user_total_curseadjective_added(self, user_id):
|
|
|
+def get_user_total_curseadjectives_added(self, user_id):
|
|
|
recordset = self.db.all('SELECT id FROM rotbot_curseadjective WHERE irc_user_id=%(user_id)s', user_id=user_id)
|
|
|
return recordset.count(recordset)
|
|
|
|
|
|
+def get_user_total_cursewords_banned(self, user_id):
|
|
|
+ recordset = self.db.all('SELECT id FROM rotbot_curseword WHERE banned=True AND irc_user_id=%(user_id)s ', user_id=user_id)
|
|
|
+ return recordset.count(recordset)
|
|
|
+
|
|
|
+def get_user_total_curseadjectives_banned(self, user_id):
|
|
|
+ recordset = self.db.all('SELECT id FROM rotbot_curseadjective WHERE banned=True AND irc_user_id=%(user_id)s', user_id=user_id)
|
|
|
+ return recordset.count(recordset)
|
|
|
+
|
|
|
+def get_user_last_greet(self, user_id):
|
|
|
+ return self.db.one('SELECT last_greet FROM rotbot_user WHERE id=%(user_id)s', user_id=user_id)
|
|
|
+
|
|
|
+def update_user_last_greet(self, user_id):
|
|
|
+ return self.db.run('UPDATE rotbot_user SET last_greet=NOW() WHERE id=%(user_id)s', user_id=user_id)
|
|
|
+
|
|
|
+def get_user_last_lame(self, user_id):
|
|
|
+ return self.db.one('SELECT last_lame FROM rotbot_user WHERE id=%(user_id)s', user_id=user_id)
|
|
|
+
|
|
|
+def update_user_last_lame(self, user_id):
|
|
|
+ return self.db.run('UPDATE rotbot_user SET last_lame=NOW() WHERE id=%(user_id)s', user_id=user_id)
|
|
|
+
|
|
|
+
|
|
|
+# Userchannel
|
|
|
+def get_user_channel_joins(self, user_id, channel_id):
|
|
|
+ return self.db.one('SELECT amount FROM rotbot_join WHERE channel_id=%(channel_id)s AND user_id=%(user_id)s', channel_id=channel_id, user_id=user_id)
|
|
|
+
|
|
|
+def get_user_channel_kicks(self, user_id, channel_id):
|
|
|
+ return self.db.one('SELECT amount FROM rotbot_kick WHERE channel_id=%(channel_id)s AND user_id=%(user_id)s', channel_id=channel_id, user_id=user_id)
|
|
|
+
|
|
|
|
|
|
# Chat
|
|
|
def random_curse(self):
|
|
|
- adjective = self.db.one('SELECT word FROM rotbot_curseadjective ORDER BY RANDOM() LIMIT 1')
|
|
|
- curse = self.db.one('SELECT word FROM rotbot_curseword ORDER BY RANDOM() LIMIT 1')
|
|
|
+ adjective = self.db.one('SELECT word FROM rotbot_curseadjective WHERE banned=False ORDER BY RANDOM() LIMIT 1')
|
|
|
+ curse = self.db.one('SELECT word FROM rotbot_curseword WHERE banned=False ORDER BY RANDOM() LIMIT 1')
|
|
|
+
|
|
|
+ # Try to hint the user of my capabilities.
|
|
|
+ if not adjective:
|
|
|
+ log.notice('No adjectives in the database, please add some for more colourfull language.')
|
|
|
+ if not curse:
|
|
|
+ log.notice('No curses in the database, please add some for more colourfull language.')
|
|
|
+
|
|
|
return '%s %s' % (adjective, curse)
|
|
|
|
|
|
+def random_adjective(self):
|
|
|
+ adjective = self.db.one('SELECT word FROM rotbot_curseadjective ORDER BY RANDOM() LIMIT 1')
|
|
|
+
|
|
|
+ # Try to hint the user of my capabilities.
|
|
|
+ if not adjective:
|
|
|
+ log.notice('No adjectives in database, please add some for more colourfull language.')
|
|
|
+
|
|
|
+ return self.db.one('SELECT word FROM rotbot_curseadjective ORDER BY RANDOM() LIMIT 1')
|
|
|
+
|
|
|
def get_curse(self, word):
|
|
|
return self.db.one('SELECT * FROM rotbot_curseword WHERE LOWER(word)=LOWER(%(word)s)')
|
|
|
|
|
|
@@ -246,6 +311,7 @@ def punish_user(self, user_id, coin, karma):
|
|
|
self.db.run('UPDATE website_users SET coin=coin-%(coin)s, karma_correction=karma_correction-%(karma)s WHERE id=%(user_id)s', coin=coin, karma=karma, user_id=user_id)
|
|
|
|
|
|
def payday(self, coin):
|
|
|
+ log.info('Game payday: %s coin.' % coin)
|
|
|
self.db.run('UPDATE rotbot_user SET coin=coin+%(coin)s WHERE network_id=%(network_id)s AND level>0', coin=coin, network_id=self.network.id)
|
|
|
|
|
|
def cointransfer(self, sender_id, receiver_id, coin):
|
|
|
@@ -254,8 +320,8 @@ def cointransfer(self, sender_id, receiver_id, coin):
|
|
|
coin = random.uniform(0.1, 0.3)
|
|
|
payday(self, coin)
|
|
|
|
|
|
-# Common.
|
|
|
|
|
|
+# Common.
|
|
|
def total_amount_in_recordset(recordset):
|
|
|
amount = 0
|
|
|
for record in recordset:
|