예제 #1
0
def update_show(name):
    print '\n' + name
    try:
        show = Show.objects.get(name=name)
        show_id = show.id
    except:
        print name + " could not be found"
        return

    cur_eps_full = Episode.objects.filter(show_name=name)
    cur_eps = []
    for ep in cur_eps_full:
        cur_eps.append(int(ep.id))

    tvdb = TVDBConn()
    series = tvdb.initseriesbyid(str(show.id))
    new_eps = series['Episode']
    new_eps_ids = []
    for ep in new_eps:
        new_eps_ids.append(int(ep['id']))

    # identify removed eps
    for ep in cur_eps:
        if ep not in new_eps_ids:
            ep_full = Episode.objects.get(id=ep)
            print ep_full.name + ' removed'
            if not ep_full.path:
                ep_full.delete()
            else:
                print 'has file'

    for ep in new_eps:
        # identify new eps
        if int(ep['id']) not in cur_eps:
            print repr(ep['EpisodeName']) + ' new'
            Episode.create(ep, show_id, name)

        # update existing eps
        else:
            existing = Episode.objects.get(id=int(ep['id']))
            existing.update(ep)