def proceed_with_show(show): eztvit_id = None if show.get('eztvit_name'): eztvit_id = eztvit.showid_by_name(show.get('eztvit_name')) else: eztvit_id = eztvit.showid_by_name(show['human_name']) try: all_torrents = list(eztvit.torrents(eztvit_id)) except IOError: print "Error loading torrents for id %s" % eztvit_id return None result = [0, 0] print "All torrents len()", len(all_torrents) for eztv_espisode in all_torrents: show_name, season, episode = eztvit.episodeinfo_from_filename( eztv_espisode['filename']) #print u"%s S%s E%s =>? S%s E%s" % (show_name, season, episode, int(show.get('season')), int(show.get('episode')) ) #print show['episode'] if int(season) > int(show['season']): # in case season is changed, reset episode count show['episode'] = 0 if int(season) >= int(show.get('season')) and \ int(episode) > int(show.get('episode')): for t_url in eztv_espisode['torrents']: out_fn = "%s/%s %sx%s.torrent" % (out_dir, show['human_name'], season, episode) print "Downloading", show_name, season, episode, "to", out_fn try: data = urllib2.urlopen(t_url) except urllib2.URLError: print "Error loading '%s'" % t_url continue open(out_fn, 'wb').write(data.read()) # hack to get file mimetype. # if it is not BitTorrent assuming it is Not Found import subprocess mimetype = subprocess.Popen( ['file', '-b', out_fn], stdout=subprocess.PIPE).communicate()[0].strip() if mimetype == 'BitTorrent file': print "OK. Torrent mime type:", mimetype if result[0] < season: result[0] = season if result[1] < episode: result[1] = episode break else: print "Error. Torrent mime type:", mimetype if result != [0, 0]: return result
def proceed_with_show(show): eztvit_id = None if show.get('eztvit_name'): eztvit_id = eztvit.showid_by_name(show.get('eztvit_name')) else: eztvit_id = eztvit.showid_by_name(show['human_name']) try: all_torrents = list(eztvit.torrents(eztvit_id)) except IOError: print "Error loading torrents for id %s" % eztvit_id return None result = [0,0] print "All torrents len()", len(all_torrents) for eztv_espisode in all_torrents: show_name, season, episode = eztvit.episodeinfo_from_filename(eztv_espisode['filename']) #print u"%s S%s E%s =>? S%s E%s" % (show_name, season, episode, int(show.get('season')), int(show.get('episode')) ) #print show['episode'] if int(season) > int(show['season']): # in case season is changed, reset episode count show['episode'] = 0 if int(season) >= int(show.get('season')) and \ int(episode) > int(show.get('episode')): for t_url in eztv_espisode['torrents']: out_fn = "%s/%s %sx%s.torrent" % (out_dir, show['human_name'], season, episode) print "Downloading", show_name, season, episode, "to", out_fn try: data = urllib2.urlopen(t_url) except urllib2.URLError: print "Error loading '%s'" % t_url continue open(out_fn, 'wb').write(data.read()) # hack to get file mimetype. # if it is not BitTorrent assuming it is Not Found import subprocess mimetype=subprocess.Popen(['file', '-b', out_fn], stdout=subprocess.PIPE).communicate()[0].strip() if mimetype == 'BitTorrent file': print "OK. Torrent mime type:", mimetype if result[0] < season: result[0] = season if result[1] < episode: result[1] = episode break else: print "Error. Torrent mime type:", mimetype if result != [0,0]: return result
import pprint import sys import os import re import urllib2 if len(sys.argv) != 4: print "Usage: %s <outdir> http://eztv.ch/shows/36/breaking-bad/ <filename filter: S02>" % sys.argv[0] sys.exit(1) out_dir = sys.argv[1] url = sys.argv[2] # http://eztv.ch/shows/36/breaking-bad/ filter_pat = sys.argv[3] url_pat = re.compile(ur"shows\/(\d+)\/(.+)\/") m = url_pat.search(url) if m: show_id, show_name = m.groups() else: print "Could not extract show from", url sys.exit(1) for v in eztvit.torrents(show_id): for __t in v['torrents']: if v['filename'].find(filter_pat) > -1: if __t.find("magnet:") > -1: f = open(os.path.join(out_dir, v['filename']+ ".magnet"), 'wb') f.write(__t) print "%s;%s;%s" % (__t, v['filename'], eztvit.episodeinfo_from_filename(v['filename']) )
import eztvit list(eztvit.shows_map()) print eztvit.showid_by_name("bobs burgers") print list(eztvit.torrents('405')) print eztvit.showid_by_name("Bobs Burgers")