Commit Graph

349 Commits

Author SHA1 Message Date
Guillem Hernandez Sola
fc3dbd4268 fet 2026-05-08 14:13:32 +02:00
Guillem Hernandez Sola
e748c05156 fixes 2026-05-08 14:07:49 +02:00
Guillem Hernandez Sola
ad64a900e4 60 seconds 2026-05-08 11:56:35 +02:00
Guillem Hernandez Sola
1224cdf9c7 fff 2026-05-08 11:52:23 +02:00
Guillem Hernandez Sola
337a59039a Eurskoy 2026-05-08 11:42:37 +02:00
Guillem Hernandez Sola
1072b1e621 ff 2026-05-08 11:29:01 +02:00
Guillem Hernandez Sola
cabdc11ede Fies 2026-05-08 11:20:40 +02:00
Guillem Hernandez Sola
2d868d0ad7 Opus Fixes 2026-05-08 11:17:23 +02:00
Guillem Hernandez Sola
bae6a32711 ff 2026-05-08 11:00:38 +02:00
Guillem Hernandez Sola
e6377757d3 ff 2026-05-08 10:55:36 +02:00
Guillem Hernandez Sola
d7f3e2792f Fet 2026-05-08 10:51:27 +02:00
Guillem Hernandez Sola
1991d98fa4 fe 2026-05-08 10:46:33 +02:00
Guillem Hernandez Sola
c5338de043 Fet 2026-05-08 10:31:54 +02:00
Guillem Hernandez Sola
233697cca1 fe 2026-05-08 10:04:27 +02:00
Guillem Hernandez Sola
7deeec0a41 Video posting 2026-05-08 09:53:59 +02:00
Guillem Hernandez Sola
3cbb0a5853 he 2026-05-08 09:43:31 +02:00
Guillem Hernandez Sola
d14a1f6d9d Fet 2026-05-08 09:22:03 +02:00
Guillem Hernandez Sola
6b1cafbc65 fixes for video posting 2026-05-08 09:14:48 +02:00
Guillem Hernandez Sola
46fde6aa7f fixes 2026-05-08 09:07:40 +02:00
Guillem Hernandez Sola
80cefaf948 improve videos 2026-05-08 08:53:04 +02:00
Guillem Hernandez Sola
a784cc428d More jitter 2026-05-08 08:48:22 +02:00
Guillem Hernandez Sola
83c0bd3443 Fixes on Jenkinsfiles 2026-05-08 08:47:58 +02:00
Guillem Hernandez Sola
cb26dcc3ee eurosky 2026-05-08 08:44:42 +02:00
Guillem Hernandez Sola
6d0a4a5133 Fixes 2026-05-08 08:43:28 +02:00
Guillem Hernandez Sola
4d08c4045d Fet 2026-05-08 08:41:38 +02:00
Guillem Hernandez Sola
dd096029f1 feat: harden Bluesky login with robust retry and error handling
- Ported advanced error detection (`is_auth_error`, `is_transient_error`, `is_network_error`) from the daemon script to accurately classify exceptions.
- Implemented `get_rate_limit_wait_seconds` to intelligently parse HTTP rate-limit headers (`retry-after`, `ratelimit-reset`) instead of relying on static backoffs.
- Increased default login retry attempts to 5, with jitter and bounded delays.
- Updated `login_with_backoff` to fail fast on invalid credentials while gracefully handling transient network issues and rate limits.
2026-05-08 08:32:40 +02:00
Guillem Hernandez Sola
55a327a10e Sunday 2026-05-07 09:45:02 +02:00
Guillem Hernandez Sola
49ef582998 Some jobs 2026-05-07 09:42:42 +02:00
Guillem Hernandez Sola
de54458fd7 retries 2026-05-07 09:34:16 +02:00
Guillem Hernandez Sola
0511f0a087 Fix 2026-05-07 09:27:29 +02:00
Guillem Hernandez Sola
91bcf096f2 Fix 2026-05-07 09:26:00 +02:00
Guillem Hernandez Sola
78580f3267 Fix on JKenkins file 2026-05-07 09:24:29 +02:00
Guillem Hernandez Sola
f93d765c1a Fix 2026-05-07 09:22:33 +02:00
Guillem Hernandez Sola
26027c6e91 feat: add bsky_post.py and Jenkinsfile for weekly Dijous post
- New standalone script `bsky_post.py` to post text + optional image
  or video to a Bluesky PDS instance. Supports --image, --video (mutually
  exclusive), --alt, --lang, --service, --username, --password flags.
  Reuses the same login-with-backoff pattern as rss2bsky and the Twitter bot.

- New Jenkinsfile that triggers every Thursday at 07:15 (cron: 15 7 * * 4),
  reads credentials from Jenkins secret text entries, and runs bsky_post.py
  with the configured image and Catalan language tag.
2026-05-07 09:21:47 +02:00
Guillem Hernandez Sola
33b4e32738 feat: add multi-language support to rss2bsky via --lang flag
- Changed `post_lang: str` to `post_langs: List[str]` in `run_once`
  and `try_send_post_with_variants` to support multiple BCP-47 language
  tags passed to Bluesky's `langs=` field.

- Updated `--lang` CLI argument to accept comma-separated language codes
  (e.g. `--lang ca,es`), parsed into a list at startup. Defaults to `["ca"]`.

- Added startup log line reporting the configured language(s) per run.
2026-05-05 14:00:48 +02:00
Guillem Hernandez Sola
09b9d16791 fix: prevent video URL bleed-through and stale listener across tweets
- Add `page.remove_listener("response", handle_response)` in
  `extract_video_url_from_tweet_page` finally block to detach the
  network listener before page close, preventing ghost callbacks
  from leaking captured URLs across tweet iterations.

- Confirmed `build_media_fingerprint` already uses `canonicalize_tweet_url`
  as stable video identifier instead of unreliable `media_url_https`,
  avoiding false fingerprint collisions between different video tweets.

- Confirmed `sync_feeds` already guards against `None` video URL after
  extraction, ensuring no silent fallthrough to stale captures.
2026-05-05 13:39:22 +02:00
Guillem Hernandez Sola
388c327a13 Added language as an option 2026-04-30 10:30:24 +02:00
Guillem Hernandez Sola
375191c497 Add --bsky-langs es to Jenkins pipeline for specific language tagging 2026-04-30 10:20:41 +02:00
Guillem Hernandez Sola
19b8e09f29 Fix CI 2026-04-29 12:02:02 +02:00
Guillem Hernandez Sola
7bf452c7f8 fix typo 2026-04-29 12:01:28 +02:00
Guillem Hernandez Sola
d609b371c1 ci: add Jenkinsfile to delete .png and .mp4 files from workspace every 15 days 2026-04-29 11:59:05 +02:00
Guillem Hernandez Sola
111cbe30d3 More timeout 2026-04-28 21:52:58 +02:00
Guillem Hernandez Sola
46956a4d84 refactor: remove ellipsis from all text truncation paths
- truncate_text_safely: slice to full max_length, drop trailing ...
- truncate_text_preserving_tail: remove ... prefix/infix, adjust
  reserve from +4 to +1
- build_dynamic_alt: slice to DYNAMIC_ALT_MAX_LENGTH, drop ...
- make_rich: remove … from hashtag rstrip chars
- sync_feeds: remove conditional ... suffix in dry-run log
2026-04-28 21:32:25 +02:00
Guillem Hernandez Sola
70551a4c2a Increased timeout 2026-04-28 18:40:57 +02:00
Guillem Hernandez Sola
ea46714ca5 Fix regex in strip_trailing_url_punctuation to properly escape special characters
- Corrected the regular expression in the `strip_trailing_url_punctuation` function to properly escape the single quote (') and ensure valid syntax.
- Fixed potential issues caused by unescaped characters in the regex pattern.
2026-04-28 17:35:02 +02:00
Guillem Hernandez Sola
67a4152be3 Ellipsis erased 2026-04-28 17:26:42 +02:00
Guillem Hernandez Sola
c850965147 Reverted 2026-04-28 17:23:08 +02:00
Guillem Hernandez Sola
b36c06b529 Fixed 2026-04-28 14:27:48 +02:00
Guillem Hernandez Sola
591a6d9563 Refactor text truncation logic in rss2bsky.py to remove ellipsis
- Updated the text truncation logic to avoid using "..." when shortening text.
- Ensured that text is truncated to the maximum allowed length without additional trailing characters.
- Improved handling of text variants to maintain clarity and avoid unnecessary truncation.
2026-04-28 14:23:36 +02:00
Guillem Hernandez Sola
40b379e261 docs: Revamp README with comprehensive documentation and troubleshooting guides
- Add quick start section with 3-step setup instructions
- Include prerequisites and platform compatibility information
- Expand credentials configuration with security best practices
- Add detailed configuration section with media constraints table
- Provide concrete usage examples for RSS, Twitter daemon, and systemd
- Include cron job integration examples for scheduling
- Add project structure diagram showing all key files and directories
- Create extensive troubleshooting section with common issues and solutions
- Add debugging guide with log analysis tips
- Include FAQ section addressing typical user questions
- Document use cases and real-world scenarios
- Add security notes for credential management
- Improve contributing guidelines with step-by-step workflow
- Enhance formatting with emojis, tables, and better organization
- Replace vague descriptions with actionable, specific guidance

This makes the documentation suitable for both beginner and advanced users while providing clear paths for setup, usage, and troubleshooting.

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 06:56:13 +02:00