docs: def _search(self, mdb, query, filename, season_num, episode_num, auto=False):
          """ Search the movie using all available datasources and let the user
              select a result. Return the choosen datasource and produced movie dict.
  
          If auto is enabled, directly returns the first movie found.
          """
          choices = []
          for datasource, movie in mdb.search(query, season=season_num, episode=episode_num):
              if auto:
                  return datasource, movie
              fmt = u'<b>{title}</b> - <b>{ep}</b> S{season:02d}E{episode:02d} [{datasource}]'
              choices.append(option((datasource, movie), fmt, title=movie['title'],
                                                              ep=movie['episode_title'],
                                                              season=movie['season'],
                                                              episode=movie['episode'],
                                                              datasource=datasource.name))
  
          if not choices:
              printer.p('No results to display for the file: {fn}', fn=filename)
              return None, None
  
          choices.append(option(('manual', None), 'Enter information manually'))
          choices.append(option(('abort', None), 'None of these'))
          printer.p('Please choose the relevant result for the file: {fn}', fn=filename, end='\n\n')
          return printer.choice(choices)