From 241d20ea302bba57b4e38dc1f5e59aa4070f31d6 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Mon, 11 Aug 2003 05:22:51 +0000 Subject: [PATCH] Removed, since gameknot was the last thing in it. --- plugins/Forums.py | 85 ----------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 plugins/Forums.py diff --git a/plugins/Forums.py b/plugins/Forums.py deleted file mode 100644 index 233a638f1..000000000 --- a/plugins/Forums.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python - -### -# Copyright (c) 2002, Jeremiah Fincher -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions, and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions, and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the author of this software nor the name of -# contributors to this software may be used to endorse or promote products -# derived from this software without specific prior written consent. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -### - -""" -Reads URLs from a channel, generally for web-based forums, and messages the -channel with useful information about the URL -- its forum, title, original -poster, etc. -""" - -from baseplugin import * - -import re -import urllib2 - -import debug -import ircmsgs -import ircutils -import callbacks - -class Forums(callbacks.PrivmsgRegexp): - threaded = True - _gkPlayer = re.compile(r"popd\('(Rating[^']+)'\).*?>([^<]+)<") - _gkRating = re.compile(r": (\d+)[^:]+:
(\d+)[^,]+, (\d+)[^,]+, (\d+)") - _gkGameTitle = re.compile(r"

(.*?)\s* \s*\(started") - def gameknot(self, irc, msg, match): - r"http://(?:www\.)?gameknot.com/chess.pl\?bd=\d+(&r=\d+)?" - #debug.printf('Got a GK URL from %s' % msg.prefix) - url = match.group(0) - fd = urllib2.urlopen(url) - #debug.printf('Got the connection.') - s = fd.read() - #debug.printf('Got the string.') - fd.close() - try: - gameTitle = self._gkGameTitle.search(s).groups() - gameTitle = ircutils.bold(gameTitle) - ((wRating, wName), (bRating, bName)) = self._gkPlayer.findall(s) - wName = ircutils.bold(wName) - bName = ircutils.bold(bName) - (wRating, wWins, wLosses, wDraws) = \ - self._gkRating.search(wRating).groups() - (bRating, bWins, bLosses, bDraws) = \ - self._gkRating.search(bRating).groups() - wStats = '%s; W-%s, L-%s, D-%s' % (wRating, wWins, wLosses, wDraws) - bStats = '%s; W-%s, L-%s, D-%s' % (bRating, bWins, bLosses, bDraws) - irc.queueMsg(ircmsgs.privmsg(msg.args[0], - '%s: %s (%s) vs. %s (%s) <%s>' % ( - gameTitle, wName, wStats, bName, bStats, url))) - except ValueError: - irc.queueMsg(ircmsgs.privmsg(msg.args[0], - 'That doesn\'t appear to be a proper Gameknot game.')) - except Exception, e: - irc.error(msg, debug.exnToString(e)) - - -Class = Forums -# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: