Added drama.py from SkyBot

This commit is contained in:
Luke Rogers 2011-11-21 01:07:02 +13:00
parent c605e7f2d2
commit e8587da2e5
1 changed files with 32 additions and 0 deletions

32
plugins/drama.py Normal file
View File

@ -0,0 +1,32 @@
'''Searches Encyclopedia Dramatica and returns the first paragraph of the
article'''
from util import hook, http
api_url = "http://encyclopediadramatica.ch/api.php?action=opensearch"
ed_url = "http://encyclopediadramatica.ch/"
@hook.command('ed')
@hook.command
def drama(inp):
'''.drama <phrase> -- gets first paragraph of Encyclopedia Dramatica ''' \
'''article on <phrase>'''
j = http.get_json(api_url, search=inp)
if not j[1]:
return 'no results found'
article_name = j[1][0].replace(' ', '_').encode('utf8')
url = ed_url + http.quote(article_name, '')
page = http.get_html(url)
for p in page.xpath('//div[@id="bodyContent"]/p'):
if p.text_content():
summary = ' '.join(p.text_content().splitlines())
if len(summary) > 300:
summary = summary[:summary.rfind(' ', 0, 300)] + "..."
return '%s :: \x02%s\x02' % (summary, url)
return "error"