def do_all(self): log = self.api.logger tempfilename = os.path.splitext(os.path.basename(sys.argv[0]))[0] cache = os.path.join(gettempdir(), tempfilename + "." + self.mid + ".p") members = [] if os.path.exists(cache) and not self.clean: log.info("Reusing from " + cache) members = pickle.load(open(cache, "rb")) else: if not self.clean: log.info("Not found " + cache) MU.descendants(self.api, self.mid, batch=200, target=members, segments=self.segments, episodes=self.episodes, log_progress=True) pickle.dump(members, open(cache, "wb")) log.info("Found " + str(len(members)) + " objects") count = 0 for idx, member in enumerate(MU.iterate_objects(members)): member_mid = member.mid # noinspection PyUnusedLocal main_title = MU.title(member, "MAIN") # noinspection PyUnusedLocal short_title = MU.title(member, "SHORT") member_type = MU.mediatype(member) string = "%s %s (%s)" % (member_type, member_mid, main_title) if self.filter: try : result = self.filter(member, idx) log.debug("%s Execed %s result %s", str(idx), self.filter_description, str(result)) if not result: log.info("%s Skipping %s because of filter %s", str(idx), string, self.filter_description) continue except Exception as e: log.warning("%s %s", str(member.mid), str(e)) continue needs_post = self.process(member, idx) if needs_post is None: needs_post = True log.debug(" needs post %s", str(needs_post)) if needs_post: if not self.dryrun: log.info("%s Execed %s for %s and posting", str(idx), self.processor_description, string) self.do_one(member, idx) else: log.info("%s Execed %s for %s (not posting because of dryrun parameter)", str(idx), self.processor_description, string) else: log.info("%s Skipping %s for %s", str(idx), self.processor_description, string) count += 1 if self.include_self: if not self.dryrun: log.info("%s %s", self.description, self.mid) object = self.api.get_object(self.mid) log.info("Found %s", str(object)) self.do_one(object, None) else: log.info("Dry run %s %s", self.description, self.mid) count += 1 log.info("Ready. %s %s object from POMS", self.description, str(count)) return count
process = args.process[0] mid = args.mid[0] filter = args.filter clean = args.clean log = api.logger cache = os.path.join(gettempdir(), "foralldescendants." + mid + ".p") members = [] if os.path.exists(cache) and not clean: log.info("Reusing from " + cache) members = pickle.load(open(cache, "rb")) else: if not clean: log.info("Not found " + cache) MU.descendants(api, mid, batch=200, target=members, segments=False, episodes=False, log_progress=True) pickle.dump(members, open(cache, "wb")) log.info("Found " + str(len(members)) + " objects") posts = 0 if os.path.exists(process): log.info("%s is a file.", str(process)) process = open(process).read() for idx, member in enumerate(MU.iterate_objects(members)): member_mid = member.mid main_title = MU.title(member, "MAIN") short_title = MU.title(member, "SHORT") if filter: result = eval(filter)
if not only_if_none or len(mediaUpdate.images.image) == 0: if title is None: title = mediaUpdate.title[0].value() api.logger.info("Adding image %s to %s", images[count % len(images)], mid) api.add_image(mid, MU.create_image(images[count % len(images)], title=title)) count += 1 if not args.to_object_only: mediaType = type(mediaUpdate) members = [] MU.descendants( api, mid, batch=200, target=members, log_progress=True, episodes=(mediaType == npoapi.xml.mediaupdate.groupUpdateType), segments=args.segments, limit=args.max_query, ) api.logger.info("Found %s members in %s", len(members), mid) for idx, member in enumerate(MU.iterate_objects(members)): member_mid = member.mid memberType = type(member) if filter: result = eval(filter) api.logger.debug("Execed %s result %s", str(filter), str(result)) if not result: api.logger.info( "Skipping %s, %s %s because of filter %s", str(memberType), str(member.type), member_mid, filter )
import time api = MediaBackend().command_line_client() api.add_argument('mid', type=str, nargs=1, help='The mid of the object to handle') args = api.parse_args() filename = "/tmp/members.pkl" if os.path.isfile(filename): with open(filename, 'rb') as input: members = pickle.load(input) else: members = [] MU.descendants(api, args.mid[0], batch=200, target=members, log_progress=True) with open(filename, 'wb') as output: pickle.dump(members, output, pickle.HIGHEST_PROTOCOL) api.logger.info("Wrote %s", filename) count_new = 0 count_done = 0 count_404 = 0 for member in MU.iterate_objects(members): print("%s %s %s " % (member.mid, member.locations.location[0].programUrl, str(list(member.crid))), end="") has_mp4 = False if len(member.locations.location) >= 1: for location in member.locations.location: if location.avAttributes.avFileFormat == 'MP4' and not location.avAttributes.bitrate is None: has_mp4 = True for location in member.locations.location: