class RSSFeeds: def __init__(self, db_name='feeds'): try: db_name = ek.ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"FeedParser error: " + ex(e), logger.DEBUG) def clearCache(self, age=None): try: Cache(self.rssDB).purge(age) finally: self.rssDB.close() def getFeed(self, url, post_data=None, request_headers=None, items=None, handlers=[]): if post_data: url += urllib.urlencode(post_data) try: resp = Cache(self.rssDB, userAgent=sickbeard.common.USER_AGENT).fetch(url, force_update=True, request_headers=request_headers, handlers=handlers) finally: self.rssDB.close() return resp
class RSSFeeds: def __init__(self, db_name='feeds'): try: db_name = ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"FeedParser error: " + ex(e), logger.DEBUG) def clearCache(self, age=None): try: Cache(self.rssDB).purge(age) finally: self.rssDB.close() def getFeed(self, url, post_data=None, request_headers=None, items=None, handlers=[]): if post_data: url += urllib.urlencode(post_data) try: resp = Cache(self.rssDB, userAgent=sickbeard.common.USER_AGENT).fetch(url, force_update=True, request_headers=request_headers, handlers=handlers) finally: self.rssDB.close() return resp
def __init__(self, db_name='feeds'): try: db_name = ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"FeedParser error: " + ex(e), logger.DEBUG)
def __init__(self, db_name='feeds'): try: db_name = ek.ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"FeedParser error: " + ex(e), logger.DEBUG)
class RSSFeeds: def __init__(self, db_name): try: db_name = ek.ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"RSS error: " + ex(e), logger.DEBUG) def clearCache(self, age=None): try: fc = Cache(self.rssDB).purge(age) fc.purge(age) finally: self.rssDB.close() def getFeed(self, url, post_data=None, request_headers=None, items=[]): parsed = list(urlparse.urlparse(url)) parsed[2] = re.sub("/{2,}", "/", parsed[2]) # replace two or more / with one if post_data: url += urllib.urlencode(post_data) data = dict.fromkeys(items, None) try: fc = Cache(self.rssDB) resp = fc.fetch(url, False, False, request_headers) for item in items: try: data[item] = resp[item] except: continue finally: self.rssDB.close() return data
class RSSFeeds: def __init__(self, db_name): try: db_name = ek.ek(os.path.join, sickbeard.CACHE_DIR, 'rss', db_name) + '.db' if not os.path.exists(os.path.dirname(db_name)): sickbeard.helpers.makeDir(os.path.dirname(db_name)) self.rssDB = SQLiteShelf(db_name) except Exception as e: logger.log(u"RSS error: " + ex(e), logger.DEBUG) def clearCache(self, age=None): try: fc = Cache(self.rssDB).purge(age) fc.purge(age) finally: self.rssDB.close() def getFeed(self, url, post_data=None, request_headers=None, items=[]): parsed = list(urlparse.urlparse(url)) parsed[2] = re.sub("/{2,}", "/", parsed[2]) # replace two or more / with one if post_data: url += urllib.urlencode(post_data) data = dict.fromkeys(items, None) try: fc = Cache(self.rssDB) resp = fc.fetch(url, False, False, request_headers=request_headers) for item in items: try: data[item] = resp[item] except: continue finally: self.rssDB.close() return data