Skip to content

Instantly share code, notes, and snippets.

@tobbez
Created December 6, 2010 16:53
Show Gist options
  • Save tobbez/730559 to your computer and use it in GitHub Desktop.
Save tobbez/730559 to your computer and use it in GitHub Desktop.
flexget urlrewriter for SVT Play
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