1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-11-11 03:45:01 -05:00
SickRage/sickbeard/rssfeeds.py
echel0n f814de4c82 Fixed minor issues with provider rss caching code.
Fixed login issues with T411 provider.
Added 2 new subcats to T411 provider - 455 and 637
2014-12-05 22:16:30 -08:00

49 lines
1.3 KiB
Python

from __future__ import with_statement
import os
import urllib
import urlparse
import re
import collections
import sickbeard
from sickbeard import logger
from sickbeard import encodingKludge as ek
from sickbeard.exceptions import ex
from feedcache.cache import Cache
from sqliteshelf import SQLiteShelf
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):
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)
try:
fc = Cache(self.rssDB)
feed = fc.fetch(url, False, False, request_headers)
return feed
finally:
self.rssDB.close()