This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/plugins/fmylife.py

39 lines
1 KiB
Python
Raw Normal View History

2012-02-23 14:41:13 +01:00
# Plugin by Lukeroge
# <lukeroge@gmail.com> <https://github.com/lukeroge/CloudBot/>
from util import hook, http
2012-02-23 14:41:13 +01:00
from urlparse import urljoin
from BeautifulSoup import BeautifulSoup
from collections import defaultdict
2012-02-23 14:41:13 +01:00
base_url = 'http://www.fmylife.com/'
fml_cache = defaultdict()
def refresh_cache():
""" gets a page of random fmls and puts them into a dictionary """
page = http.get(urljoin(base_url, 'random'))
soup = BeautifulSoup(page)
for e in soup.findAll('div', {'class': 'post article'}):
id = int(e['id'])
2012-03-27 22:18:25 +02:00
text = ''.join(e.find('p').findAll(text=True))
fml_cache[id] = text
# do an initial refresh of the cache
refresh_cache()
@hook.command(autohelp=False)
def fml(inp, reply=None):
".fml -- Gets a random quote from fmyfife.com."
# grab the last item in the fml cache and remove it
id, text = fml_cache.popitem()
# reply with the fml we grabbed
reply('(#%d) %s' % (id, text))
# refresh fml cache if its getting empty
if len(fml_cache) < 3:
refresh_cache()