summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Supybot-0.83.4.1-karma-plugin.patch184
-rw-r--r--supybot-0.83.4.1-json.patch30
-rw-r--r--supybot.spec179
3 files changed, 393 insertions, 0 deletions
diff --git a/Supybot-0.83.4.1-karma-plugin.patch b/Supybot-0.83.4.1-karma-plugin.patch
new file mode 100644
index 0000000..1cad0bf
--- /dev/null
+++ b/Supybot-0.83.4.1-karma-plugin.patch
@@ -0,0 +1,184 @@
+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):
diff --git a/supybot-0.83.4.1-json.patch b/supybot-0.83.4.1-json.patch
new file mode 100644
index 0000000..f6606fe
--- /dev/null
+++ b/supybot-0.83.4.1-json.patch
@@ -0,0 +1,30 @@
+diff --git a/plugins/Google/plugin.py b/plugins/Google/plugin.py
+index e1b6bee..98fd7dd 100644
+--- a/plugins/Google/plugin.py
++++ b/plugins/Google/plugin.py
+@@ -42,15 +42,21 @@ import supybot.ircmsgs as ircmsgs
+ import supybot.ircutils as ircutils
+ import supybot.callbacks as callbacks
+
++simplejson = None
++
++try:
++ simplejson = utils.python.universalImport('json')
++except ImportError:
++ pass
++
+ try:
+- simplejson = utils.python.universalImport('json', 'simplejson',
+- 'local.simplejson')
+ # The 3rd party simplejson module was included in Python 2.6 and renamed to
+ # json. Unfortunately, this conflicts with the 3rd party json module.
+ # Luckily, the 3rd party json module has a different interface so we test
+ # to make sure we aren't using it.
+- if hasattr(simplejson, 'read'):
+- raise ImportError
++ if simplejson is None or hasattr(simplejson, 'read'):
++ simplejson = utils.python.universalImport('simplejson',
++ 'local.simplejson')
+ except ImportError:
+ raise callbacks.Error, \
+ 'You need Python2.6 or the simplejson module installed to use ' \
diff --git a/supybot.spec b/supybot.spec
new file mode 100644
index 0000000..1d582ea
--- /dev/null
+++ b/supybot.spec
@@ -0,0 +1,179 @@
+%global origname Supybot
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+
+Name: supybot
+Version: 0.83.4.1
+Release: 9%{?dist}
+Summary: Cross-platform IRC bot written in Python
+
+Group: Applications/Internet
+# The entire source code is BSD except for
+# Supybot-0.83.4/plugins/Math/local/convertcore.py which is GPLv2
+License: BSD and GPLv2
+URL: http://supybot.com
+Source0: http://downloads.sourceforge.net/supybot/%{origname}-%{version}.tar.bz2
+# 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
+BuildRequires: python-setuptools-devel
+Requires: python-twisted-core
+Requires: python-twisted-names
+Requires: python-dateutil
+Requires: python-feedparser
+Requires: python-dictclient
+Requires: python-simplejson
+Provides: Supybot = %{version}-%{release}
+Conflicts: supybot-gribble
+
+%description
+Supybot is a robust, user-friendly, and programmer-friendly Python IRC bot.
+It aims to be an adequate replacement for most existing IRC bots. It
+includes a very flexible and powerful ACL system for controlling access
+to commands, as well as more than 50 builtin plugins providing around
+400 actual commands.
+
+%prep
+%setup -q -n %{origname}-%{version}
+%patch0 -p1
+%patch1 -p1
+
+
+%build
+CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build
+
+
+%install
+%{__rm} -rf %{buildroot}
+%{__python} -c 'import setuptools; execfile("setup.py")' install \
+ --skip-build --root %{buildroot}
+
+%{__install} -d -m 755 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-adduser.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-botchk.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-plugin-create.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-plugin-doc.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-test.1 %{buildroot}%{_mandir}/man1/
+%{__install} -m 644 docs/man/supybot-wizard.1 %{buildroot}%{_mandir}/man1/
+
+# These are provided in python-feedparser, python-dateutil,
+# python-dictclient, and python-simplejson
+%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/RSS/local
+%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Time/local
+%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Dict/local
+%{__rm} -rf %{buildroot}%{python_sitelib}/supybot/plugins/Google/local
+
+
+%clean
+%{__rm} -rf %{buildroot}
+
+
+%files
+%defattr(-,root,root,-)
+%doc ACKS ChangeLog LICENSE README RELNOTES
+%doc docs/{ADVANCED_PLUGIN_CONFIG,ADVANCED_PLUGIN_TESTING,CAPABILITIES}
+%doc docs/{CONFIGURATION,FAQ,GETTING_STARTED,PLUGIN_TUTORIAL,STYLE}
+%doc docs/{USING_UTILS,USING_WRAP}
+%{python_sitelib}/*egg-info
+%{python_sitelib}/supybot
+%{_bindir}/supybot
+%{_bindir}/supybot-adduser
+%{_bindir}/supybot-botchk
+%{_bindir}/supybot-plugin-create
+%{_bindir}/supybot-plugin-doc
+%{_bindir}/supybot-plugin-package
+%{_bindir}/supybot-test
+%{_bindir}/supybot-wizard
+%{_mandir}/man1/supybot.1*
+%{_mandir}/man1/supybot-adduser.1*
+%{_mandir}/man1/supybot-botchk.1*
+%{_mandir}/man1/supybot-plugin-create.1*
+%{_mandir}/man1/supybot-plugin-doc.1*
+%{_mandir}/man1/supybot-test.1*
+%{_mandir}/man1/supybot-wizard.1*
+
+
+%changelog
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Apr 18 2011 Dave Riches <dcr226@fedoraproject.org> - 0.83.4.1-7
+- added conflict with supybot-gribble
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.4.1-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.83.4.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Thu Jun 03 2010 Dennis Gilmore <dennis@ausil.us> - 0.83.4.1-4
+- actually apply the patch
+
+* Thu Jun 03 2010 Dennis Gilmore <dennis@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@lists.fedoraproject.org> - 0.83.4.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Wed Jun 03 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.4.1-1
+- Upstream released new version.
+
+* Mon May 18 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.4-1
+- Upstream released new version.
+
+* Tue Apr 14 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-11
+- Change define to global.
+- Remove old >= 8 conditional.
+- Remove unnecessary BuildRequires on python-devel.
+
+* Sat Apr 11 2009 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-10
+- Backporting Python 2.6 fixes from Supybot git.
+
+* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.83.3-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.83.3-8
+- Rebuild for Python 2.6
+
+* Thu Jun 05 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-7
+- Uncomment python-dictclient requirement.
+
+* Wed May 24 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-6
+- Add Requires for plugin dependencies.
+- Add Provides Supybot.
+
+* Wed May 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-5
+- Apply Douglas Warner's patch to fix line lengths/add origname macro.
+
+* Wed May 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-4
+- Rename from Supybot to supybot.
+- Fix incorrect paths to rm.
+
+* Sun Apr 06 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-3
+- Remove included Python modules.
+- Mention different license for plugins/Math/convertcore.py.
+
+* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-2
+- Use macros instead of calling commands directly.
+
+* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.3-1
+- Update for 0.83.3 release.
+
+* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-3
+- Generate egg-info for Fedora <= 8, add to files section.
+
+* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-2
+- Use consistent macro style.
+- Update source URLs to match guidelines more precisely.
+
+* Fri Mar 07 2008 Ricky Zhou <ricky@fedoraproject.org> - 0.83.2-1
+- Initial RPM Package.
+