Example #1
0
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
Example #2
0
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']) )

Example #4
0
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")