Shevraar/jovabot

View on GitHub
modules/horoscope/oroscopy.py

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/python

import feedparser
import sys
import logging

FEED_URL = 'http://it.horoscopofree.com/rss/horoscopofree-it.rss'


def find_sign(feed, sign):
    try:
        return [x for x in feed.entries if x.title.lower() == sign][0]
    except:
        return None


def strip_href(o):
    s = o.description
    href_start = s.index('<a')
    return s[0:href_start]


class oroscopy(object):
    def __init__(self, sign, text):
        self.sign = sign
        self.text = text


def get(signes):
    f = feedparser.parse(FEED_URL)
    for s in signes:
        try:
            o = oroscopy(s, strip_href(find_sign(f, s)))
            yield o
        except:
            continue


# TEST ONLY
def main():
    try:
        sign = sys.argv[1]
        for o in get([sign]):
            logging.debug('{0}\n{1}\n'.format(o.sign, o.text))
    except:
        logging.exception('oroscopo non trovato')


if __name__ == '__main__':
    main()