def process(self, member, idx): new_image = None needs_post = False total_existing = 0 total_new = 0 needs_reinsert = False for num, image in enumerate(member.images.image, start = 0): if image.title != self.image_title: total_existing += 1 self.logger.debug("%s, %s != %s", str(idx), image.title, self.image_title) image.publishStop = NOW needs_post = True else: new_image = image needs_reinsert = num != 0 needs_post = needs_post or needs_reinsert self.logger.debug("%s Found existing new image %s", str(idx), new_image.title) if needs_reinsert: self.logger.info("Moved image %s to position 0", new_image.title) member.images.image.remove(new_image) member.images.image.insert(0, new_image) if not new_image: image_files = self.image_file.split(",") image_file_to_use = image_files[idx % len(image_files)] total_new += 1 new_image = MU.create_image(image_file_to_use) needs_post = True MU.set_image_fields( new_image, title=self.image_title, source=self.image_source, source_name=self.image_source_name, credits=self.image_credits, license=self.image_license, image_type=self.image_type) self.logger.info("%s Creating new image %s %s", str(idx), str(new_image.title), image_file_to_use) member.images.image.insert(0, new_image) self.logger.info("%s handled %s existing images, and created %s", str(idx), str(total_existing), str(total_new)) return needs_post
title = args.title mediaUpdate = api.get_object(mid, ignore_not_found=True) only_if_none = args.only_if_none filter = args.filter if args.dry_run: api.logger.info("Dry running") count = 0 if mediaUpdate: if (args.to_object or args.to_object_only) and not args.dry_run: 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,
def test_create_image(self): image = MU.create_image("http://www.vpro.nl/1.jpg", title="hoi") print(image.toxml()) self.assertEquals(""" <?xml version="1.0" ?><image highlighted="false" type="PICTURE" xmlns="urn:vpro:media:update:2009"><title>hoi</title><imageLocation><url>http://www.vpro.nl/1.jpg</url></imageLocation></image> """.strip(), image.toxml())
title = args.title mediaUpdate = api.get_object(mid, ignore_not_found=True) only_if_none = args.only_if_none filter = args.filter if args.dry_run: api.logger.info("Dry running") count = 0 if mediaUpdate: if (args.to_object or args.to_object_only) and not args.dry_run: 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: