Guest User

Untitled

a guest
Aug 6th, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.36 KB | None | 0 0
  1. import os
  2. from dateutil.parser import parse
  3.  
  4. BASEURL = 'http://localhost:5000'
  5. LANGUAGES = [
  6.     Locale.Language.English,
  7. ]
  8.  
  9.  
  10. def Start():
  11.     pass
  12.  
  13.  
  14. class MythMetadata(Agent.TV_Shows):
  15.     name = 'MythMetadata'
  16.     ver = '0.1'
  17.     primary_provider = True
  18.     languages = LANGUAGES
  19.  
  20.     def search(self, results, media, lang):
  21.         Log('DAN: Running')
  22.         Log('DAN: %s' % media)
  23.         try:
  24.             fn = os.readlink(String.Unquote(media.filename))
  25.         except:
  26.             Log('Unable to open %r' % String.Unquote(media.filename))
  27.             return
  28.  
  29.         Log('DAN: %s' % fn)
  30.         Log('DAN: %s' % media)
  31.  
  32.         slug = os.path.basename(fn)
  33.         if ' ' in slug:
  34.             return
  35.         try:
  36.             info = JSON.ObjectFromURL(BASEURL + '/recording/' + slug)
  37.         except:
  38.             Log('Failed to find anything for %s' % slug)
  39.             return
  40.  
  41.         ident = info['title'].replace(' ', '')
  42.         Log('DAN: Found %s: %s' % (ident, info['title']))
  43.         results.Append(MetadataSearchResult(
  44.             id = slug,
  45.             name = info['title'],
  46.             year = info['date'][:4],
  47.             score = 1000,
  48.             lang=LANGUAGES[0]))
  49.  
  50.     def update(self, metadata, media, lang):
  51.         base_set = False
  52.         Log('DAN: starting %s' % metadata.id)
  53.  
  54.         @parallelize
  55.         def DoThing():
  56.             for s in media.seasons:
  57.                 Log('DAN: Starting %s season %s' % (metadata.id, s))
  58.                 for e in media.seasons[s].episodes:
  59.                     @task
  60.                     def UpdateEpisode(e=e, metadata=metadata):
  61.                         Log('DAN: Starting %s season %s episode %s' % (metadata.id, s, e))
  62.                         episode = media.seasons[s].episodes[e]
  63.                         fn = episode.items[0].parts[0].file
  64.                         Log('DAN: filename is %s' % fn)
  65.                         try:
  66.                             slug = os.path.basename(os.readlink(fn))
  67.                         except:
  68.                             Log('DAN: Failed to read %s' % fn)
  69.                             return
  70.                         try:
  71.                             info = JSON.ObjectFromURL(BASEURL + '/recording/' + slug)
  72.                         except:
  73.                             Log('DAN: Failed to find anything for %s' % slug)
  74.                             return
  75.  
  76.                         episode.title = info['subtitle']
  77.                         episode.summary = info['description']
  78.                         episode.directors = []
  79.                         episode.writers = []
  80.                         episode.producers = []
  81.                         episode.absolute_index = int(episode.index.replace('-', ''))
  82.                         episode.sort_title = info['subtitle']
  83.                         Log('DAN: Setting info: %r / %r' % (info['subtitle'],
  84.                                                             info['description']))
  85.                         Log('DAN: Episode: %s %s %r %r %s' % (episode, dir(episode),
  86.                                                               episode.title,
  87.                                                               episode.index,
  88.                                                               episode.items))
  89.                 Log('DAN: Done with episodes for %s' % s)
  90.             Log('DAN: returning from %s' % metadata.id)
Advertisement
Add Comment
Please, Sign In to add comment