Files
post2bsky/testlogin.py
2026-03-29 17:44:14 +02:00

47 lines
1.5 KiB
Python

import argparse
import logging
import time
from atproto import Client
# --- Logging ---
LOG_PATH = "rss2bsky_test.log"
logging.basicConfig(
format="%(asctime)s %(message)s",
filename=LOG_PATH,
encoding="utf-8",
level=logging.INFO,
)
def main():
# --- Parse command-line arguments ---
parser = argparse.ArgumentParser(description="Post RSS to Bluesky.")
parser.add_argument("rss_feed", help="RSS feed URL")
parser.add_argument("bsky_handle", help="Bluesky handle")
parser.add_argument("bsky_username", help="Bluesky username")
parser.add_argument("bsky_app_password", help="Bluesky app password")
parser.add_argument("--service", default="https://bsky.social", help="Bluesky server URL (default: https://bsky.social)")
args = parser.parse_args()
bsky_username = args.bsky_username
bsky_password = args.bsky_app_password
service_url = args.service
# --- Login ---
# SOLUCIÓ: Passem el base_url directament al constructor del Client
client = Client(base_url=service_url)
backoff = 60
while True:
try:
logging.info(f"Attempting login to server: {service_url} with user: {bsky_username}")
client.login(bsky_username, bsky_password)
logging.info(f"Login successful for user: {bsky_username}")
break
except Exception as e:
logging.exception("Login exception")
time.sleep(backoff)
backoff = min(backoff + 60, 600)
if __name__ == "__main__":
main()