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
Exemple #2
0
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())
Exemple #4
0
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: