Added suggested refactor from Minkiu
This commit is contained in:
pare
d344117604
commit
3ebc539285
S'han modificat 1 arxius amb 39 adicions i 21 eliminacions
58
mastotuit.py
58
mastotuit.py
|
@ -51,40 +51,54 @@ def get_toot(title):
|
||||||
return tuit_text
|
return tuit_text
|
||||||
|
|
||||||
def compose_tweet(tuit_text, with_images, is_reply):
|
def compose_tweet(tuit_text, with_images, is_reply):
|
||||||
images_ids = []
|
|
||||||
|
images_id_lst = []
|
||||||
|
|
||||||
if with_images:
|
if with_images:
|
||||||
|
|
||||||
for image in images_list:
|
for image in images_list:
|
||||||
file_ = filetype.guess('images/' + image)
|
|
||||||
is_video = True if file_.mime == 'video/mp4' else False
|
kind = filetype.guess('images/' + image)
|
||||||
# It's a video, let's do some processing...
|
is_video = True if kind.mime == 'video/mp4' else False
|
||||||
|
|
||||||
if is_video:
|
if is_video:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ffmpeg_probe = ffmpeg.probe(f'images/{image}')
|
|
||||||
|
probe = ffmpeg.probe(f'images/{image}')
|
||||||
video_duration = float(
|
video_duration = float(
|
||||||
ffmpeg_probe['streams'][0]['duration']
|
probe['streams'][0]['duration']
|
||||||
)
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
print(f'Error while trying to probe {image}\n{e}')
|
print(f'Error while trying to probe {image}\n{e}')
|
||||||
sys.exit(e)
|
sys.exit(e)
|
||||||
|
|
||||||
if video_duration > 139:
|
if video_duration > 139:
|
||||||
|
|
||||||
print(f'video duration is too large: {video_duration}')
|
print(f'video duration is too large: {video_duration}')
|
||||||
# We could potentially use ffmpeg to shorten the video
|
|
||||||
# We skip to the next image
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Now let's uplaod the media...
|
|
||||||
media_upload = api.media_upload(
|
media_upload = api.media_upload(
|
||||||
f'images/{image}',
|
f'images/{image}',
|
||||||
media_category='tweet_video' if is_video else'tweet_image'
|
media_category='tweet_video' if is_video else 'tweet_image'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if is_video:
|
||||||
|
|
||||||
if media_upload.processing_info['state'] == 'succeeded':
|
if media_upload.processing_info['state'] == 'succeeded':
|
||||||
images_ids.append(media_upload.media_id)
|
|
||||||
|
images_id_lst.append(media_upload.media_id)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
images_id_lst.append(media_upload.media_id)
|
||||||
|
|
||||||
except TweepyException as err:
|
except TweepyException as err:
|
||||||
|
|
||||||
print('Error while uploading media!\n')
|
print('Error while uploading media!\n')
|
||||||
sys.exit(err)
|
sys.exit(err)
|
||||||
|
|
||||||
|
@ -92,43 +106,47 @@ def compose_tweet(tuit_text, with_images, is_reply):
|
||||||
tuit_text2 = ''
|
tuit_text2 = ''
|
||||||
|
|
||||||
if len(tuit_text) > 280:
|
if len(tuit_text) > 280:
|
||||||
|
|
||||||
tuit_max_length = 250 if with_images else 275
|
tuit_max_length = 250 if with_images else 275
|
||||||
|
|
||||||
tuit_text = '{0} (1/2)'.format(
|
tuit_text1 = '{0} (1/2)'.format(
|
||||||
tuit_text[:tuit_max_length].rsplit(' ', 1)[0]
|
tuit_text[:tuit_max_length].rsplit(' ', 1)[0]
|
||||||
)
|
)
|
||||||
tuit_text2 = '{0} (2/2)'.format(
|
tuit_text2 = '{0} (2/2)'.format(
|
||||||
tuit_text[len(tuit_text) - 6:] # Why minus 6?
|
tuit_text[len(tuit_text1) - 6:]
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
first_tweet = api.update_status(
|
first_tweet = api.update_status(
|
||||||
status=tuit_text,
|
status=tuit_text1,
|
||||||
# No idea where `tweet_id` is defined/coming from
|
|
||||||
in_reply_to_status_id=tweet_id if is_reply else ''
|
in_reply_to_status_id=tweet_id if is_reply else ''
|
||||||
)
|
)
|
||||||
|
|
||||||
tweet = api.update_status(
|
tweet = api.update_status(
|
||||||
status=tuit_text2,
|
status=tuit_text2,
|
||||||
in_reply_to_status_id=first_tweet.id,
|
in_reply_to_status_id=first_tweet.id,
|
||||||
media_ids=images_ids
|
media_ids=images_id_lst
|
||||||
)
|
)
|
||||||
|
|
||||||
except TweepyException as err:
|
except TweepyException as err:
|
||||||
|
|
||||||
print('Error while trying to publish split tweet.\n')
|
print('Error while trying to publish split tweet.\n')
|
||||||
sys.exit(err)
|
sys.exit(err)
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
tweet = api.update_status(
|
tweet = api.update_status(
|
||||||
status=tuit_text,
|
status=tuit_text,
|
||||||
# No idea where `tweet_id` is defined/coming from
|
|
||||||
in_reply_to_status_id=tweet_id if is_reply else '',
|
in_reply_to_status_id=tweet_id if is_reply else '',
|
||||||
media_ids=images_ids # defaults to empty list
|
media_ids=images_id_lst
|
||||||
)
|
)
|
||||||
|
|
||||||
except TweepyException as err:
|
except TweepyException as err:
|
||||||
print('Errror while trying to publish tweet.\n')
|
|
||||||
|
print('Error while trying to publish tweet.\n')
|
||||||
sys.exit(err)
|
sys.exit(err)
|
||||||
|
|
||||||
return tweet
|
return tweet
|
||||||
|
|
Loading…
Referencia en una nova incidència