diff --git a/main.py b/main.py index ab1d2f0..32edebe 100644 --- a/main.py +++ b/main.py @@ -149,46 +149,30 @@ unsynced_titles = set([p.title for p in unsynced_photos]) for title in unsynced_titles: # get unsynced photos by title photos = Photo.select().where(Photo.title == title, Photo.synced == False).order_by(Photo.created_at.asc()) - if len(photos) > 1: - batches = [photos[i:i+4] for i in range(0, len(photos), 4)] - for i, batch in enumerate(batches): - idx = i + 1 + batches = [photos[i:i+4] for i in range(0, len(photos), 4)] + for i, batch in enumerate(batches): + idx = i + 1 + if len(photos) > 4: status = f'{title} ({idx}/{len(batches)})' - media_ids = [] - for p in batch: - # upload photo to mastodon - photo_url = get_flickr_photo_url(p) - short_url = get_flickr_photo_page_url(p, short=True) - time.sleep(3) - img_id = upload_photo_to_mastodon(photo_url) - if img_id: - media_ids.append(img_id) - status += f'\n{short_url}' - else: - logger.error('Error: {}'.format(p.title)) - # post to mastodon - mastodon_client.status_post(status=status, media_ids=media_ids) - logger.info('Post: {}'.format(status)) - # update synced - for p in batch: - p.synced = True - p.synced_at = datetime.datetime.now() - p.save() - else: - p = photos[0] - status = title + else: + status = title media_ids = [] - img_id = upload_photo_to_mastodon(p) - if img_id: - media_ids.append(img_id) + for p in batch: + # upload photo to mastodon + photo_url = get_flickr_photo_url(p) short_url = get_flickr_photo_page_url(p, short=True) - status += f'\n{short_url}' - # post to mastodon - mastodon_client.status_post(status=status, media_ids=media_ids) - logger.info('Post: {}'.format(status)) - # update synced + time.sleep(3) + img_id = upload_photo_to_mastodon(photo_url) + if img_id: + media_ids.append(img_id) + status += f'\n{short_url}' + else: + logger.error('Error: {}'.format(p.title)) + # post to mastodon + mastodon_client.status_post(status=status, media_ids=media_ids) + logger.info('Post: {}'.format(status)) + # update synced + for p in batch: p.synced = True p.synced_at = datetime.datetime.now() p.save() - else: - logger.error('Error: {}'.format(p.title))