[MediaWiki-commits] [Gerrit] labs...stewardbots[master]: Post current StewardBot.py code
MarcoAurelio has submitted this change and it was merged. Change subject: Post current StewardBot.py code .. Post current StewardBot.py code So people can start working on the code we run. Change-Id: Ib55703ec0c5bb9cb85709b862877cc2f668ff710 --- M StewardBot/StewardBot.py 1 file changed, 526 insertions(+), 830 deletions(-) Approvals: MarcoAurelio: Verified; Looks good to me, approved diff --git a/StewardBot/StewardBot.py b/StewardBot/StewardBot.py index b20dc63..2424376 100644 --- a/StewardBot/StewardBot.py +++ b/StewardBot/StewardBot.py @@ -1,45 +1,38 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import os -import random -import re -import string -import sys -import threading -import time - +import sys, os +import re, string +import threading, thread +import random, time import MySQLdb import config - -# needs python-irclib +#needs python-irclib from ircbot import SingleServerIRCBot from irclib import nm_to_n -# DB data -dbfile = open(os.path.expanduser('~/.my.cnf'), 'r') -li = [l.strip("\n") for l in dbfile.readlines()[1:]] +#DB data +dbfile=open(os.path.expanduser('~/.my.cnf'), 'r') +li=[l.strip("\n") for l in dbfile.readlines()[1:]] dbfile.close() -SQLuser = li[0].split("=")[1].strip() -SQLpassword = li[1].split("=")[1].strip().strip("\"") -SQLhost = li[2].split("=")[1].strip().strip("\"") -SQLdb = 'YOURDBNAME' +SQLuser=li[0].split("=")[1].strip() +SQLpassword=li[1].split("=")[1].strip().strip("\"") +SQLhost=li[2].split("=")[1].strip().strip("\"") +SQLdb='YOURDB_HERE' -# common queries +#common queries queries = { -"privcloaks": "(select p_cloak from privileged) union (select s_cloak from stewards)", -"ignoredusers": "(select i_username from ignored) union (select s_username from stewards)", -"stalkedpages": "select f_page from followed", -"listenedchannels": "select l_channel from listen", -"stewardusers": "select s_username from stewards", -"stewardnicks": "select s_nick from stewards", -"stewardoptin": "select s_nick from stewards where s_optin=1", -} - + "privcloaks": "(select p_cloak from privileged) union (select s_cloak from stewards)", + "ignoredusers": "(select i_username from ignored) union (select s_username from stewards)", + "stalkedpages": "select f_page from followed", + "listenedchannels": "select l_channel from listen", + "stewardusers": "select s_username from stewards", + "stewardnicks": "select s_nick from stewards", + "stewardoptin": "select s_nick from stewards where s_optin=1", + } def query(sqlquery, one=True): -db = MySQLdb.connect(db=SQLdb, host=SQLhost, - user=SQLuser, passwd=SQLpassword) +db = MySQLdb.connect(db=SQLdb, host=SQLhost, user=SQLuser, passwd=SQLpassword) cursor = db.cursor() cursor.execute(sqlquery) db.close() @@ -51,21 +44,16 @@ if i[0] is not None: res2 += [i[0]] return res2 -else: -return res - - +else: return res + def modquery(sqlquery): -db = MySQLdb.connect(db=SQLdb, host=SQLhost, - user=SQLuser, passwd=SQLpassword) +db = MySQLdb.connect(db=SQLdb, host=SQLhost, user=SQLuser, passwd=SQLpassword) cursor = db.cursor() cursor.execute(sqlquery) db.commit() db.close() - class FreenodeBot(SingleServerIRCBot): - def __init__(self): self.server = config.server self.channel = config.channel @@ -81,334 +69,254 @@ self.randmess = False self.listen = True self.badsyntax = "Unrecognized command. Type @help for more info." -self.ignore_attention = {} -self.attention_delay = 900 # 15 minutes -self.execute_every( -self.attention_delay, self.do_clean_ignore_attention) -SingleServerIRCBot.__init__( -self, [(self.server, 6667)], self.nickname, self.nickname) - -def execute_every(self, period, func): -"""Monkey patch execute_every into irclib 0.4.8.""" -# FIXME: run a modern irclib from a virtualenv instead -self._execute_and_schedule(period, func, do_exec=False) - -def _execute_and_schedule(self, period, func, do_exec=True): -"""Execute a function and then schedule another execution.""" -if do_exec: -func() -self.execute_delayed( -period, self._execute_and_schedule, (period, func)) - +SingleServerIRCBot.__init__(self, [(self.server, 6667)], self.nickname, self.nickname) + def on_error(self, c, e): print e.target() self.die() - + def on_nicknameinuse(self, c, e): c.nick(c.get_nickname() + "_") -time.sleep(1) # latency problem? -c.privmsg("NickServ", 'GHOST ' + self.nickname + ' ' + self.password) +time.sleep(1) #
[MediaWiki-commits] [Gerrit] labs...stewardbots[master]: Post current StewardBot.py code
MarcoAurelio has uploaded a new change for review. https://gerrit.wikimedia.org/r/324758 Change subject: Post current StewardBot.py code .. Post current StewardBot.py code So people can start working on the code we run. Change-Id: Ib55703ec0c5bb9cb85709b862877cc2f668ff710 --- M StewardBot/StewardBot.py 1 file changed, 526 insertions(+), 830 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/labs/tools/stewardbots refs/changes/58/324758/1 diff --git a/StewardBot/StewardBot.py b/StewardBot/StewardBot.py index b20dc63..2424376 100644 --- a/StewardBot/StewardBot.py +++ b/StewardBot/StewardBot.py @@ -1,45 +1,38 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import os -import random -import re -import string -import sys -import threading -import time - +import sys, os +import re, string +import threading, thread +import random, time import MySQLdb import config - -# needs python-irclib +#needs python-irclib from ircbot import SingleServerIRCBot from irclib import nm_to_n -# DB data -dbfile = open(os.path.expanduser('~/.my.cnf'), 'r') -li = [l.strip("\n") for l in dbfile.readlines()[1:]] +#DB data +dbfile=open(os.path.expanduser('~/.my.cnf'), 'r') +li=[l.strip("\n") for l in dbfile.readlines()[1:]] dbfile.close() -SQLuser = li[0].split("=")[1].strip() -SQLpassword = li[1].split("=")[1].strip().strip("\"") -SQLhost = li[2].split("=")[1].strip().strip("\"") -SQLdb = 'YOURDBNAME' +SQLuser=li[0].split("=")[1].strip() +SQLpassword=li[1].split("=")[1].strip().strip("\"") +SQLhost=li[2].split("=")[1].strip().strip("\"") +SQLdb='YOURDB_HERE' -# common queries +#common queries queries = { -"privcloaks": "(select p_cloak from privileged) union (select s_cloak from stewards)", -"ignoredusers": "(select i_username from ignored) union (select s_username from stewards)", -"stalkedpages": "select f_page from followed", -"listenedchannels": "select l_channel from listen", -"stewardusers": "select s_username from stewards", -"stewardnicks": "select s_nick from stewards", -"stewardoptin": "select s_nick from stewards where s_optin=1", -} - + "privcloaks": "(select p_cloak from privileged) union (select s_cloak from stewards)", + "ignoredusers": "(select i_username from ignored) union (select s_username from stewards)", + "stalkedpages": "select f_page from followed", + "listenedchannels": "select l_channel from listen", + "stewardusers": "select s_username from stewards", + "stewardnicks": "select s_nick from stewards", + "stewardoptin": "select s_nick from stewards where s_optin=1", + } def query(sqlquery, one=True): -db = MySQLdb.connect(db=SQLdb, host=SQLhost, - user=SQLuser, passwd=SQLpassword) +db = MySQLdb.connect(db=SQLdb, host=SQLhost, user=SQLuser, passwd=SQLpassword) cursor = db.cursor() cursor.execute(sqlquery) db.close() @@ -51,21 +44,16 @@ if i[0] is not None: res2 += [i[0]] return res2 -else: -return res - - +else: return res + def modquery(sqlquery): -db = MySQLdb.connect(db=SQLdb, host=SQLhost, - user=SQLuser, passwd=SQLpassword) +db = MySQLdb.connect(db=SQLdb, host=SQLhost, user=SQLuser, passwd=SQLpassword) cursor = db.cursor() cursor.execute(sqlquery) db.commit() db.close() - class FreenodeBot(SingleServerIRCBot): - def __init__(self): self.server = config.server self.channel = config.channel @@ -81,334 +69,254 @@ self.randmess = False self.listen = True self.badsyntax = "Unrecognized command. Type @help for more info." -self.ignore_attention = {} -self.attention_delay = 900 # 15 minutes -self.execute_every( -self.attention_delay, self.do_clean_ignore_attention) -SingleServerIRCBot.__init__( -self, [(self.server, 6667)], self.nickname, self.nickname) - -def execute_every(self, period, func): -"""Monkey patch execute_every into irclib 0.4.8.""" -# FIXME: run a modern irclib from a virtualenv instead -self._execute_and_schedule(period, func, do_exec=False) - -def _execute_and_schedule(self, period, func, do_exec=True): -"""Execute a function and then schedule another execution.""" -if do_exec: -func() -self.execute_delayed( -period, self._execute_and_schedule, (period, func)) - +SingleServerIRCBot.__init__(self, [(self.server, 6667)], self.nickname, self.nickname) + def on_error(self, c, e): print e.target() self.die() - + def on_nicknameinuse(self, c, e): c.nick(c.get_nickname() + "_") -time.sleep(1) # latency problem? -c.privmsg("NickServ", 'GHOST ' +