diff --git a/rss2bsky.py b/rss2bsky.py index bcd8a39..99c44c2 100644 --- a/rss2bsky.py +++ b/rss2bsky.py @@ -41,7 +41,6 @@ BSKY_BLOB_TRANSIENT_ERROR_DELAY = 15 HTTP_TIMEOUT = 20 POST_RETRY_DELAY_SECONDS = 2 -# Thumbnail upload cooldown state THUMB_UPLOAD_COOLDOWN_UNTIL = 0 # --- Logging --- @@ -137,9 +136,13 @@ def build_post_text_variants(title_text, link): Preferred: 1. Full title + blank line + real URL Fallbacks: - 2. Truncated title + blank line + real URL - 3. Full title only - 4. Truncated title only + 2. Full title only + 3. Truncated title only + + Intentionally avoid: + - truncated title + URL + + That pattern creates ugly posts with "..." before the visible link. """ title_text = clean_whitespace(title_text) link = canonicalize_url(link) or link or "" @@ -156,24 +159,11 @@ def build_post_text_variants(title_text, link): if title_text and 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: add_variant(title_text) add_variant(truncate_text_safely(title_text)) - if link: + if link and not title_text: add_variant(link) return variants