fix(rss): avoid truncated title+url post variants that create ellipsis posts
This commit is contained in:
26
rss2bsky.py
26
rss2bsky.py
@@ -41,7 +41,6 @@ BSKY_BLOB_TRANSIENT_ERROR_DELAY = 15
|
|||||||
HTTP_TIMEOUT = 20
|
HTTP_TIMEOUT = 20
|
||||||
POST_RETRY_DELAY_SECONDS = 2
|
POST_RETRY_DELAY_SECONDS = 2
|
||||||
|
|
||||||
# Thumbnail upload cooldown state
|
|
||||||
THUMB_UPLOAD_COOLDOWN_UNTIL = 0
|
THUMB_UPLOAD_COOLDOWN_UNTIL = 0
|
||||||
|
|
||||||
# --- Logging ---
|
# --- Logging ---
|
||||||
@@ -137,9 +136,13 @@ def build_post_text_variants(title_text, link):
|
|||||||
Preferred:
|
Preferred:
|
||||||
1. Full title + blank line + real URL
|
1. Full title + blank line + real URL
|
||||||
Fallbacks:
|
Fallbacks:
|
||||||
2. Truncated title + blank line + real URL
|
2. Full title only
|
||||||
3. Full title only
|
3. Truncated title only
|
||||||
4. Truncated title only
|
|
||||||
|
Intentionally avoid:
|
||||||
|
- truncated title + URL
|
||||||
|
|
||||||
|
That pattern creates ugly posts with "..." before the visible link.
|
||||||
"""
|
"""
|
||||||
title_text = clean_whitespace(title_text)
|
title_text = clean_whitespace(title_text)
|
||||||
link = canonicalize_url(link) or link or ""
|
link = canonicalize_url(link) or link or ""
|
||||||
@@ -156,24 +159,11 @@ def build_post_text_variants(title_text, link):
|
|||||||
if title_text and link:
|
if title_text and link:
|
||||||
add_variant(f"{title_text}\n\n{link}")
|
add_variant(f"{title_text}\n\n{link}")
|
||||||
|
|
||||||
reserve = len(link) + 2
|
|
||||||
available = BSKY_TEXT_MAX_LENGTH - reserve
|
|
||||||
if available > 10:
|
|
||||||
trimmed_title = title_text
|
|
||||||
if len(trimmed_title) > available:
|
|
||||||
trimmed_title = trimmed_title[:available - 3]
|
|
||||||
last_space = trimmed_title.rfind(" ")
|
|
||||||
if last_space > 0:
|
|
||||||
trimmed_title = trimmed_title[:last_space] + "..."
|
|
||||||
else:
|
|
||||||
trimmed_title = trimmed_title + "..."
|
|
||||||
add_variant(f"{trimmed_title}\n\n{link}")
|
|
||||||
|
|
||||||
if title_text:
|
if title_text:
|
||||||
add_variant(title_text)
|
add_variant(title_text)
|
||||||
add_variant(truncate_text_safely(title_text))
|
add_variant(truncate_text_safely(title_text))
|
||||||
|
|
||||||
if link:
|
if link and not title_text:
|
||||||
add_variant(link)
|
add_variant(link)
|
||||||
|
|
||||||
return variants
|
return variants
|
||||||
|
|||||||
Reference in New Issue
Block a user