#!/usr/bin/python
-import cStringIO
import calendar
import feedparser
import formatter
+import htmlentitydefs
import htmllib
import mechanize
import os
import random
import string
+import StringIO
import time
import traceback
import urlparse
zephyr_class = 'andersk-test'
time_file = 'jirabot.time'
+class UnicodeHTMLParser(htmllib.HTMLParser):
+ entitydefs = dict((k, unichr(v)) for (k, v) in htmlentitydefs.name2codepoint.items())
+
+ def convert_charref(self, name):
+ try:
+ n = int(name)
+ except ValueError:
+ return
+ return self.convert_codepoint(n)
+
+ def convert_codepoint(self, codepoint):
+ return unichr(codepoint)
+
def jira_init():
b = mechanize.Browser()
b.set_handle_robots(False)
url = urlparse.urlunsplit(urlparse.urlparse(e.id)[0:3] + (None,None))
issue = url.rsplit('/', 1)[1]
- s = cStringIO.StringIO()
- parser = htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(s)))
+ s = StringIO.StringIO()
+ parser = UnicodeHTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(s)))
parser.feed(e.summary.rsplit('<table>', 1)[0])
parser.close()
- s.seek(0)
- comment = s.read()
+ comment = s.getvalue()
msg = e.author + " added a comment:\n" + comment.rstrip()