old_contents: from plex.core.idict import idict
  from plex.interfaces.core.base import Interface
  
  
  class SectionInterface(Interface):
      path = 'library/sections'
  
      def all(self, key):
          response = self.http.get(key, 'all')
  
          return self.parse(response, idict({
              'MediaContainer': ('MediaContainer', idict({
                  'Directory': {
                      'artist':   'Artist',
                      'show':     'Show'
                  },
                  'Video': {
                      'movie':    'Movie'
                  }
              }))
          }))
  
      def first_character(self, key, character=None):
          if character:
              response = self.http.get(key, ['firstCharacter', character])
              return self.parse(response, idict({
                  'MediaContainer': ('MediaContainer', idict({
                      'Directory': {
                          'artist': 'Artist',
                          'show': 'Show'
                      },
                      'Video': {
                          'movie': 'Movie'
                      },
                      'Track': 'Track'
                  }))
              }))
  
          response = self.http.get(key, 'firstCharacter')
  
          return self.parse(response, idict({
              'MediaContainer': ('MediaContainer', idict({
                  'Directory': 'Directory'
              }))
          }))
  
new_contents: from plex.core.idict import idict
  from plex.interfaces.core.base import Interface
  
  
  class SectionInterface(Interface):
      path = 'library/sections'
  
      def all(self, key):
          response = self.http.get(key, 'all')
  
          return self.parse(response, idict({
              'MediaContainer': ('MediaContainer', idict({
                  'Directory': {
                      'artist':   'Artist',
                      'show':     'Show'
                  },
                  'Video': {
                      'movie':    'Movie'
                  }
              }))
          }))
  
      def first_character(self, key, character=None):
          if character:
              response = self.http.get(key, ['firstCharacter', character])
              return self.parse(response, idict({
                  'MediaContainer': ('MediaContainer', idict({
                      'Directory': {
                          'album':    'Album',
                          'artist':   'Artist',
  
                          'season':   'Season',
                          'show':     'Show'
                      },
                      'Video': {
                          'episode':  'Episode',
                          'clip':     'Clip',
                          'movie':    'Movie'
                      },
                      'Track': 'Track'
                  }))
              }))
  
          response = self.http.get(key, 'firstCharacter')
  
          return self.parse(response, idict({
              'MediaContainer': ('MediaContainer', idict({
                  'Directory': 'Directory'
              }))
          }))
  
subject: handle all possible media types in section/first_character interface