rpms/supybot/devel Supybot-0.83.4.1-karma-plugin.patch, NONE, 1.1 supybot.spec, 1.11, 1.12

Dennis Gilmore ausil at fedoraproject.org
Thu Jun 3 17:21:27 UTC 2010


Author: ausil

Update of /cvs/pkgs/rpms/supybot/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv11652

Modified Files:
	supybot.spec 
Added Files:
	Supybot-0.83.4.1-karma-plugin.patch 
Log Message:
add patch to fix the karma plugin


Supybot-0.83.4.1-karma-plugin.patch:
 plugin.py |   62 +++++++++++++++++++++++++++++++++-----------------------------
 test.py   |    6 +++---
 2 files changed, 36 insertions(+), 32 deletions(-)

--- NEW FILE Supybot-0.83.4.1-karma-plugin.patch ---
diff -uNr Supybot-0.83.4.1-orig/plugins/Karma/plugin.py Supybot-0.83.4.1/plugins/Karma/plugin.py
--- Supybot-0.83.4.1-orig/plugins/Karma/plugin.py	2009-05-25 12:38:12.000000000 -0500
+++ Supybot-0.83.4.1/plugins/Karma/plugin.py	2010-06-03 12:17:20.355768834 -0500
@@ -49,7 +49,7 @@
 
     def _getDb(self, channel):
         try:
-            import sqlite
+            from pysqlite2 import dbapi2
         except ImportError:
             raise callbacks.Error, 'You need to have PySQLite installed to ' \
                                    'use Karma.  Download it at ' \
@@ -58,9 +58,9 @@
         if filename in self.dbs:
             return self.dbs[filename]
         if os.path.exists(filename):
-            self.dbs[filename] = sqlite.connect(filename)
+            self.dbs[filename] = dbapi2.connect(filename)
             return self.dbs[filename]
-        db = sqlite.connect(filename)
+        db = dbapi2.connect(filename)
         self.dbs[filename] = db
         cursor = db.cursor()
         cursor.execute("""CREATE TABLE karma (
@@ -80,12 +80,16 @@
         db = self._getDb(channel)
         thing = thing.lower()
         cursor = db.cursor()
-        cursor.execute("""SELECT added, subtracted FROM karma
-                          WHERE normalized=%s""", thing)
-        if cursor.rowcount == 0:
+        sql = """SELECT added, subtracted FROM karma
+                          WHERE normalized='%s'""" % thing
+        cursor.execute(sql)
+        results = cursor.fetchall()
+        print results
+        if results == []:
             return None
         else:
-            return map(int, cursor.fetchone())
+            return results[0]
+            #return map(int, results)
 
     def gets(self, channel, things):
         db = self._getDb(channel)
@@ -93,7 +97,7 @@
         normalizedThings = dict(zip(map(lambda s: s.lower(), things), things))
         criteria = ' OR '.join(['normalized=%s'] * len(normalizedThings))
         sql = """SELECT name, added-subtracted FROM karma
-                 WHERE %s ORDER BY added-subtracted DESC""" % criteria
+                 WHERE '%s' ORDER BY added-subtracted DESC""" % criteria
         cursor.execute(sql, *normalizedThings)
         L = [(name, int(karma)) for (name, karma) in cursor.fetchall()]
         for (name, _) in L:
@@ -106,53 +110,49 @@
         db = self._getDb(channel)
         cursor = db.cursor()
         cursor.execute("""SELECT name, added-subtracted FROM karma
-                          ORDER BY added-subtracted DESC LIMIT %s""", limit)
+                          ORDER BY added-subtracted DESC LIMIT '%s'""" % limit)
         return [(t[0], int(t[1])) for t in cursor.fetchall()]
 
     def bottom(self, channel, limit):
         db = self._getDb(channel)
         cursor = db.cursor()
         cursor.execute("""SELECT name, added-subtracted FROM karma
-                          ORDER BY added-subtracted ASC LIMIT %s""", limit)
+                          ORDER BY added-subtracted ASC LIMIT '%s'""" % limit)
         return [(t[0], int(t[1])) for t in cursor.fetchall()]
 
     def rank(self, channel, thing):
         db = self._getDb(channel)
         cursor = db.cursor()
         cursor.execute("""SELECT added-subtracted FROM karma
-                          WHERE name=%s""", thing)
-        if cursor.rowcount == 0:
+                          WHERE name='%s'""" % thing)
+        if cursor.rowcount <= 0:
             return None
-        karma = int(cursor.fetchone()[0])
+        karma = int(cursor.fetchall()[0])
         cursor.execute("""SELECT COUNT(*) FROM karma
-                          WHERE added-subtracted > %s""", karma)
-        rank = int(cursor.fetchone()[0])
+                          WHERE added-subtracted > '%s'""" % karma)
+        rank = int(cursor.fetchall()[0])
         return rank+1
 
     def size(self, channel):
         db = self._getDb(channel)
         cursor = db.cursor()
         cursor.execute("""SELECT COUNT(*) FROM karma""")
-        return int(cursor.fetchone()[0])
+        return int(cursor.fetchall()[0])
 
     def increment(self, channel, name):
         db = self._getDb(channel)
         cursor = db.cursor()
         normalized = name.lower()
-        cursor.execute("""INSERT INTO karma VALUES (NULL, %s, %s, 0, 0)""",
-                       name, normalized)
-        cursor.execute("""UPDATE karma SET added=added+1
-                          WHERE normalized=%s""", normalized)
+        cursor.execute("""INSERT INTO karma VALUES (NULL, '%s', '%s', 0, 0)""" % (name, normalized))
+        cursor.execute("""UPDATE karma SET added=added+1 WHERE normalized='%s'"""  % normalized)
         db.commit()
 
     def decrement(self, channel, name):
         db = self._getDb(channel)
         cursor = db.cursor()
         normalized = name.lower()
-        cursor.execute("""INSERT INTO karma VALUES (NULL, %s, %s, 0, 0)""",
-                       name, normalized)
-        cursor.execute("""UPDATE karma SET subtracted=subtracted+1
-                          WHERE normalized=%s""", normalized)
+        cursor.execute("""INSERT INTO karma VALUES (NULL, '%s', '%s', 0, 0)""" % (name, normalized))
+        cursor.execute("""UPDATE karma SET subtracted=subtracted+1 WHERE normalized='%s'""" % normalized)
         db.commit()
 
     def most(self, channel, kind, limit):
@@ -164,7 +164,7 @@
             orderby = 'added+subtracted'
         else:
             raise ValueError, 'invalid kind'
-        sql = """SELECT name, %s FROM karma ORDER BY %s DESC LIMIT %s""" % \
+        sql = """SELECT name, '%s' FROM karma ORDER BY '%s' DESC LIMIT '%s'""" % \
               (orderby, orderby, limit)
         db = self._getDb(channel)
         cursor = db.cursor()
@@ -176,7 +176,7 @@
         cursor = db.cursor()
         normalized = name.lower()
         cursor.execute("""UPDATE karma SET subtracted=0, added=0
-                          WHERE normalized=%s""", normalized)
+                          WHERE normalized='%s'""" % normalized)
         db.commit()
 
     def dump(self, channel, filename):
@@ -200,13 +200,13 @@
         for (name, added, subtracted) in reader:
             normalized = name.lower()
             cursor.execute("""INSERT INTO karma
-                              VALUES (NULL, %s, %s, %s, %s)""",
-                           name, normalized, added, subtracted)
+                              VALUES (NULL, '%s', '%s', '%s', '%s')""" %
+                           (name, normalized, added, subtracted))
         db.commit()
         fd.close()
 
 KarmaDB = plugins.DB('Karma',
-                     {'sqlite': SqliteKarmaDB})
+                     {'pysqlite2': SqliteKarmaDB})
 
 class Karma(callbacks.Plugin):
     callBefore = ('Factoids', 'MoobotFactoids', 'Infobot')
@@ -249,6 +249,10 @@
             elif thing:
                 self.db.decrement(channel, self._normalizeThing(thing))
                 self._respond(irc, channel)
+        t = self.db.get(channel, thing)
+        (added, subtracted) = t
+        total = added - subtracted
+        irc.reply('Karma for %s (%s)' % (thing, total))
 
     def invalidCommand(self, irc, msg, tokens):
         channel = msg.args[0]
diff -uNr Supybot-0.83.4.1-orig/plugins/Karma/test.py Supybot-0.83.4.1/plugins/Karma/test.py
--- Supybot-0.83.4.1-orig/plugins/Karma/test.py	2009-05-25 12:38:12.000000000 -0500
+++ Supybot-0.83.4.1/plugins/Karma/test.py	2010-06-03 12:12:41.090762813 -0500
@@ -30,11 +30,11 @@
 from supybot.test import *
 
 try:
-    import sqlite
+    import pysqlite2
 except ImportError:
-    sqlite = None
+    pysqlite2 = None
 
-if sqlite is not None:
+if pysqlite2 is not None:
     class KarmaTestCase(ChannelPluginTestCase):
         plugins = ('Karma',)
         def testKarma(self):


Index: supybot.spec
===================================================================
RCS file: /cvs/pkgs/rpms/supybot/devel/supybot.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- supybot.spec	27 Jul 2009 05:08:48 -0000	1.11
+++ supybot.spec	3 Jun 2010 17:21:27 -0000	1.12
@@ -3,7 +3,7 @@
 
 Name:           supybot
 Version:        0.83.4.1
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Cross-platform IRC bot written in Python
 
 Group:          Applications/Internet
@@ -15,6 +15,8 @@ Source0:        http://downloads.sourcef
 # Fix a conflict between python-json and the built in json module
 # in Python 2.6.  Already submitted and commited upstream.
 Patch0:         %{name}-%{version}-json.patch
+#fix karma plugin to actually work should go upstream
+Patch1:         Supybot-0.83.4.1-karma-plugin.patch
 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 BuildArch:      noarch
@@ -95,6 +97,9 @@ CFLAGS="%{optflags}" %{__python} -c 'imp
 
 
 %changelog
+* Thu Jun 03 2010 Dennis Gilmore <dennis at ausil.us> - 0.83.4.1-3
+- add a patch to make the karma plugin work
+
 * Sun Jul 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.83.4.1-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 



More information about the scm-commits mailing list