♻️: refactor bsky session

This commit is contained in:
VC
2024-10-07 11:55:20 +02:00
parent 89aec3e0ed
commit c0244c8c30
7 changed files with 89 additions and 79 deletions

View File

@@ -1,4 +1,3 @@
use bsky_sdk::BskyAgent;
use log::debug;
mod error;
@@ -22,7 +21,7 @@ mod twitter;
use twitter::{delete_tweet, generate_media_ids, post_tweet, transform_poll};
mod bsky;
use bsky::{build_post_record, generate_media_records, BskyReply};
use bsky::{build_post_record, generate_media_records, get_session, BskyReply};
use rusqlite::Connection;
@@ -33,10 +32,9 @@ pub async fn run(config: &Config) {
let mastodon = get_mastodon_instance(&config.mastodon);
let bluesky = BskyAgent::builder()
.build()
let bluesky = get_session(&config.bluesky)
.await
.unwrap_or_else(|e| panic!("Cant build Bsky Agent: {}", e));
.unwrap_or_else(|e| panic!("Cannot get Bsky session: {}", e));
let last_entry =
read_state(&conn, None).unwrap_or_else(|e| panic!("Cannot get last toot id: {}", e));
@@ -64,13 +62,6 @@ pub async fn run(config: &Config) {
panic!("Cannot delete Tweet ID ({}): {}", t.tweet_id, e)
});
}
debug!("Create Bsky session prior to deletion");
bluesky
.login(&config.bluesky.handle, &config.bluesky.password)
.await
.unwrap_or_else(|e| panic!("Cannot login to Bsky: {}", e));
for local_record_uri in local_record_uris.into_iter() {
bluesky
.delete_record(&local_record_uri)
@@ -108,14 +99,6 @@ pub async fn run(config: &Config) {
continue; // skip in case we cant strip something
};
debug!("Now we need a valid Bsky session, creating it");
if bluesky.api.com.atproto.server.get_session().await.is_err() {
bluesky
.login(&config.bluesky.handle, &config.bluesky.password)
.await
.unwrap_or_else(|e| panic!("Cannot login to Bsky: {}", e));
}
// threads if necessary
let (mut tweet_reply_to, mut record_reply_to) = toot
.in_reply_to_id