Moved fact.py over to BS4 (I need to rewrite fact.py soon, it's a bit outdated and somewhat broken), removed old htmlstipper library
This commit is contained in:
parent
b536bbf754
commit
16573eb482
2 changed files with 5 additions and 49 deletions
|
@ -1,8 +1,6 @@
|
||||||
import re
|
import re
|
||||||
from util import hook
|
from util import hook, http
|
||||||
from util import http
|
from bs4 import BeautifulSoup
|
||||||
from util import misc
|
|
||||||
from BeautifulSoup import BeautifulSoup
|
|
||||||
|
|
||||||
|
|
||||||
@hook.command(autohelp=False)
|
@hook.command(autohelp=False)
|
||||||
|
@ -22,10 +20,10 @@ def fact(inp, say=False, nick=False):
|
||||||
def get_fact():
|
def get_fact():
|
||||||
page = http.get('http://www.omg-facts.com/random')
|
page = http.get('http://www.omg-facts.com/random')
|
||||||
soup = BeautifulSoup(page)
|
soup = BeautifulSoup(page)
|
||||||
container = soup.find('a', {'class': 'surprise'})
|
response = soup.find('a', {'class': 'surprise'})
|
||||||
link = container['href']
|
link = response['href']
|
||||||
|
|
||||||
fact = misc.strip_html(container.renderContents())
|
fact = response.contents[0]
|
||||||
|
|
||||||
if fact:
|
if fact:
|
||||||
return (fact, link)
|
return (fact, link)
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
from HTMLParser import HTMLParser
|
|
||||||
import htmlentitydefs
|
|
||||||
import errno
|
|
||||||
import re
|
|
||||||
|
|
||||||
class HTMLStripper(HTMLParser):
|
|
||||||
|
|
||||||
def __init__(self, data):
|
|
||||||
HTMLParser.__init__(self)
|
|
||||||
self._stripped = []
|
|
||||||
self.feed(data)
|
|
||||||
|
|
||||||
def handle_starttag(self, tag, attrs):
|
|
||||||
if tag.lower() == 'br':
|
|
||||||
self._stripped.append('\n')
|
|
||||||
|
|
||||||
def handle_charref(self, name):
|
|
||||||
try:
|
|
||||||
if name.lower().startswith('x'):
|
|
||||||
char = int(name[1:], 16)
|
|
||||||
else:
|
|
||||||
char = int(name)
|
|
||||||
self._stripped.append(unichr(char))
|
|
||||||
except Exception, error:
|
|
||||||
return
|
|
||||||
|
|
||||||
def handle_entityref(self, name):
|
|
||||||
try:
|
|
||||||
char = unichr(htmlentitydefs.name2codepoint[name])
|
|
||||||
except Exception, error:
|
|
||||||
char = u'&%s;' % name
|
|
||||||
self._stripped.append(char)
|
|
||||||
|
|
||||||
def handle_data(self, data):
|
|
||||||
self._stripped.append(data)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def stripped(self):
|
|
||||||
return ''.join(self._stripped)
|
|
||||||
|
|
||||||
def strip_html(data):
|
|
||||||
return HTMLStripper(data).stripped
|
|
Reference in a new issue