def run(self, args, config): mdb = self.get_metadata_db(args.tree) for movie_input in args.input: movie_hash = get_hash(movie_input) try: movie = mdb.get(movie_hash) except KeyError: printer.p('Unknown movie hash.') return if args.unflag: for flag in self.unflag_unset_flags: try: del movie[flag] except KeyError: pass else: for flag in self.flags: movie[flag] = True for flag in self.unset_flags: try: del movie[flag] except KeyError: pass mdb.save(movie_hash, movie)
def run(self, args, config): mdb = self.get_metadata_db(args.tree) movie_hash = get_hash(args.input) try: movie = mdb.get(movie_hash) except KeyError: printer.p('Unknown movie hash.') return movie_json = json.dumps(movie, indent=4) while True: movie_json = printer.edit(movie_json) try: mdb.save(movie_hash, json.loads(movie_json)) except ValueError: if printer.ask('Bad json data, would you like to try again?', default=True): continue else: break else: printer.p('Saved.') break
def run(self, args, config): mdb = self.get_metadata_db(args.tree) mds = MovieDatasource(config.subsections('datasource'), args.tree, self.profile.object_class) if args.input is None: # Refresh all movies if printer.ask('Would you like to refresh all movies?', default=True): with printer.progress(mdb.count(), task=True) as update: for movie_hash, movie in list(mdb.itermovies()): movie = mds.refresh(movie) mdb.save(movie_hash, movie) printer.verbose('Saved {hash}', hash=movie_hash) update(1) else: movie_hash = get_hash(args.input) try: movie = mdb.get(movie_hash) except KeyError: printer.p('Unknown movie hash.') return else: movie = mds.refresh(movie) show(movie) if printer.ask('Would you like to save the movie?', default=True): mdb.save(movie_hash, movie) printer.p('Saved.')
def run(self, args, config): mdb = self.get_metadata_db(args.tree) mds = MovieDatasource(config.subsections('datasource'), args.tree, self.profile.object_class) movie_hash = get_hash(args.input) try: movie = mdb.get(movie_hash) except KeyError: printer.p('Unknown movie hash.') return movie = mds.attach(movie_hash, movie) show(movie)
def run(self, args, config): mdb = self.get_metadata_db(args.tree) movie_hash = get_hash(args.input) try: mdb.get(movie_hash) except KeyError: printer.p('Unknown movie hash.') return if printer.ask('Are you sure?', default=False): mdb.remove(movie_hash) printer.p('Removed. You need to launch gc to free space.')