def confirm(question, options, default="y"): """Takes a question (string), list of options and a default value (used when user simply hits enter). Asks until valid option is entered. """ # Highlight default option with [ ] options_str = [] for x in options: if x == default: x = "[%s]" % x if x != '': options_str.append(x) options_str = "/".join(options_str) while True: p(question) p("(%s) " % (options_str), end="") try: ans = raw_input().strip() except KeyboardInterrupt, errormsg: p("\n", errormsg) raise UserAbort(errormsg) if ans in options: return ans elif ans == '': return default
doMoveFile(cnamer=cnamer, destFilepath=getMoveDestination(episode)) else: doMoveFile(cnamer=cnamer, destDir=getMoveDestination(episode)) return ans = confirm("Rename?", options=['y', 'n', 'a', 'q'], default='y') if ans == "a": p("Always renaming") Config['always_rename'] = True shouldRename = True elif ans == "q": p("Quitting") raise UserAbort("User exited with q") elif ans == "y": p("Renaming") shouldRename = True elif ans == "n": p("Skipping") else: p("Invalid input, skipping") if shouldRename: doRenameFile(cnamer, newName) if shouldRename and Config['move_files_enable']: newPath = getMoveDestination(episode) if Config['move_files_destination_is_filepath']: doMoveFile(cnamer=cnamer,
try: if series_id is None: show = tvdb_instance[force_name or self.seriesname] else: series_id = int(series_id) tvdb_instance._getShowData(series_id, Config['language']) show = tvdb_instance[series_id] except tvdb_error, errormsg: raise DataRetrievalError("Error with www.thetvdb.com: %s" % errormsg) except tvdb_shownotfound: # No such series found. raise ShowNotFound("Show %s not found on www.thetvdb.com" % self.seriesname) except tvdb_userabort, error: raise UserAbort(unicode(error)) else: # Series was found, use corrected series name self.seriesname = replaceOutputSeriesName(show['seriesname']) if isinstance(self, DatedEpisodeInfo): # Date-based episode epnames = [] for cepno in self.episodenumbers: try: sr = show.airedOn(cepno) if len(sr) > 1: raise EpisodeNotFound( "Ambigious air date %s, there were %s episodes on that day" % (cepno, len(sr))) epnames.append(sr[0]['episodename'])