Created
December 6, 2010 16:53
-
-
Save tobbez/730559 to your computer and use it in GitHub Desktop.
flexget urlrewriter for SVT Play
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
import urllib2 | |
import logging | |
from flexget.plugins.plugin_urlrewriting import UrlRewritingError | |
from flexget.plugin import * | |
from flexget.utils.soup import get_soup | |
from flexget.utils.tools import urlopener | |
log = logging.getLogger('svtplay') | |
class UrlRewriteSvtPlay: | |
"""SVT Play urlrewriter.""" | |
# urlrewriter API | |
def url_rewritable(self, feed, entry): | |
if entry['url'].startswith('http://svtplay.se/'): | |
return True | |
return False | |
# urlrewriter API | |
def url_rewrite(self, feed, entry): | |
try: | |
req = urllib2.Request(entry['url']) | |
page = urlopener(req, log) | |
soup = get_soup(page) | |
results = soup.find('a', attrs={'class': 'external-player'}) | |
if not results: | |
raise UrlRewritingError('Unable to resolve') | |
# fix urls ending with something like | |
# $starttime=00:00:00.00/duration=00:57:14.00 | |
# which seem to be used in some older entries | |
fixed_url = re.sub('\$.+$', '', results.get('href')) | |
entry['url'] = fixed_url | |
except Exception, e: | |
raise UrlRewritingError(e) | |
register_plugin(UrlRewriteSvtPlay, 'svtplay', groups=['urlrewriter']) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment