async def process(self, object_dict):
    '''[for internal use] convert json/dict into python object

    |coro|

    Parameters
    ----------
    object_dict : dict
      json representation of object from emby

    Notes
    -----
    if a string is given, it is assumed to be an id, obj is returned.
    if a list is given, this method is called for each item in list.

    Returns
    -------
    EmbyObject
      the object that is represented by the json dict
    list
      if input is a list, list is returned
    '''
    # if ID was given, create dummy object and update it to get full dict
    try:
      if type(object_dict) == str:
        existing = EmbyObject.known_objects.get(object_dict)
        if existing:
          return existing

        obj = EmbyObject({"Id":object_dict}, self.connector, save=False)
        object_dict = (await obj.update()).object_dict
    except:
      return None

    # if nothing was given, return it back
    # if already created object was given, return it back too
    if not object_dict or isinstance(object_dict, EmbyObject):
      return object_dict

    # if a json dict that's really just a list was given,
    #   convert to list
    if type(object_dict)       == dict and \
       set(object_dict.keys()) == {'Items', 'TotalRecordCount'}:
      object_dict = object_dict['Items']

    # if a list was given,
    #   process each item in list
    if type(object_dict) == list:
      items = []
      for item in object_dict:
        item = await self.process(item)
        if item:
          items.append(item)
      return items

    # otherwise we probably have an object dict
    #   so we should process that

    # if dict has no id, it's a fake
    if 'Id' not in object_dict and 'ItemId' not in object_dict:
      return object_dict

    # if object is already stored,
    #   update with existing info and return
    itemId   = object_dict.get('Id', object_dict.get('ItemId'))
    existing = EmbyObject.known_objects.get(itemId)
    if existing:
      existing.object_dict.update(object_dict)
      return existing

    import embypy.objects.folders
    import embypy.objects.videos
    import embypy.objects.misc

    # if objectc is not already stored,
    #   figure out its type (if unknown use this base class)
    #   create an object with subclass of that type
    #   return
    if 'Type' in object_dict:
        if object_dict['Type'] == 'Audio':
          return embypy.objects.misc.Audio(object_dict, self.connector)
        if object_dict['Type'] == 'Person':
          return embypy.objects.misc.Person(object_dict, self.connector)
        if object_dict['Type'] == 'Video':
          return embypy.objects.videos.Video(object_dict, self.connector)
        if object_dict['Type'] == 'Movie':
          return embypy.objects.videos.Movie(object_dict, self.connector)
        if object_dict['Type'] == 'Trailer':
          return embypy.objects.videos.Trailer(object_dict, self.connector)
        if object_dict['Type'] == 'AdultVideo':
          return embypy.objects.videos.AdultVideo(object_dict, self.connector)
        if object_dict['Type'] == 'MusicVideo':
          return embypy.objects.videos.MusicVideo(object_dict, self.connector)
        if object_dict['Type'] == 'Episode':
          return embypy.objects.videos.Episode(object_dict, self.connector)
        if object_dict['Type'] == 'Folder':
          return embypy.objects.folders.Folder(object_dict, self.connector)
        if object_dict['Type'] == 'Playlist':
          return embypy.objects.folders.Playlist(object_dict, self.connector)
        if object_dict['Type'] == 'BoxSet':
          return embypy.objects.folders.BoxSet(object_dict, self.connector)
        if object_dict['Type'] == 'MusicAlbum':
          return embypy.objects.folders.MusicAlbum(object_dict, self.connector)
        if object_dict['Type'] == 'MusicArtist':
          return embypy.objects.folders.MusicArtist(object_dict, self.connector)
        if object_dict['Type'] == 'Season':
          return embypy.objects.folders.Season(object_dict, self.connector)
        if object_dict['Type'] == 'Series':
          return embypy.objects.folders.Series(object_dict, self.connector)
        if object_dict['Type'] == 'Game':
          return embypy.objects.misc.Game(object_dict, self.connector)
        if object_dict['Type'] == 'GameSystem':
          return embypy.objects.folders.GameSystem(object_dict, self.connector)
        if object_dict['Type'] == 'Photo':
          return embypy.objects.misc.Photo(object_dict, self.connector)
        if object_dict['Type'] == 'Book':
          return embypy.objects.misc.Book(object_dict, self.connector)
        if object_dict['Type'] == 'Image':
          return embypy.objects.misc.Image(object_dict, self.connector)
    elif 'AppName' in object_dict:
            return embypy.objects.misc.Device(object_dict, self.connector)
    elif 'HasPassword' in object_dict:
            return embypy.objects.misc.User(object_dict, self.connector)

    return EmbyObject(object_dict, self.connector)
async def process ( self , object_dict ) : try : if type ( object_dict ) == str : existing = EmbyObject . known_objects . get ( object_dict ) if existing : return existing obj = EmbyObject ( { "Id" : object_dict } , self . connector , save = False ) object_dict = ( await obj . update ( ) ) . object_dict except : return None if not object_dict or isinstance ( object_dict , EmbyObject ) : return object_dict if type ( object_dict ) == dict and set ( object_dict . keys ( ) ) == { 'Items' , 'TotalRecordCount' } : object_dict = object_dict [ 'Items' ] if type ( object_dict ) == list : items = [ ] for item in object_dict : item = await self . process ( item ) if item : items . append ( item ) return items if 'Id' not in object_dict and 'ItemId' not in object_dict : return object_dict itemId = object_dict . get ( 'Id' , object_dict . get ( 'ItemId' ) ) existing = EmbyObject . known_objects . get ( itemId ) if existing : existing . object_dict . update ( object_dict ) return existing import embypy . objects . folders import embypy . objects . videos import embypy . objects . misc if 'Type' in object_dict : if object_dict [ 'Type' ] == 'Audio' : return embypy . objects . misc . Audio ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Person' : return embypy . objects . misc . Person ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Video' : return embypy . objects . videos . Video ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Movie' : return embypy . objects . videos . Movie ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Trailer' : return embypy . objects . videos . Trailer ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'AdultVideo' : return embypy . objects . videos . AdultVideo ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'MusicVideo' : return embypy . objects . videos . MusicVideo ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Episode' : return embypy . objects . videos . Episode ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Folder' : return embypy . objects . folders . Folder ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Playlist' : return embypy . objects . folders . Playlist ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'BoxSet' : return embypy . objects . folders . BoxSet ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'MusicAlbum' : return embypy . objects . folders . MusicAlbum ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'MusicArtist' : return embypy . objects . folders . MusicArtist ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Season' : return embypy . objects . folders . Season ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Series' : return embypy . objects . folders . Series ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Game' : return embypy . objects . misc . Game ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'GameSystem' : return embypy . objects . folders . GameSystem ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Photo' : return embypy . objects . misc . Photo ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Book' : return embypy . objects . misc . Book ( object_dict , self . connector ) if object_dict [ 'Type' ] == 'Image' : return embypy . objects . misc . Image ( object_dict , self . connector ) elif 'AppName' in object_dict : return embypy . objects . misc . Device ( object_dict , self . connector ) elif 'HasPassword' in object_dict : return embypy . objects . misc . User ( object_dict , self . connector ) return EmbyObject ( object_dict , self . connector )
[for internal use] convert json/dict into python object

    |coro|

    Parameters
    ----------
    object_dict : dict
      json representation of object from emby

    Notes
    -----
    if a string is given, it is assumed to be an id, obj is returned.
    if a list is given, this method is called for each item in list.

    Returns
    -------
    EmbyObject
      the object that is represented by the json dict
    list
      if input is a list, list is returned