tangled
alpha
login
or
join now
indexx.dev
/
tweets2bsky
forked from
j4ck.xyz/tweets2bsky
0
fork
atom
A simple tool which lets you scrape twitter accounts and crosspost them to bluesky accounts! Comes with a CLI and a webapp for managing profiles! Works with images/videos/link embeds/threads.
0
fork
atom
overview
issues
pulls
pipelines
fix: only add fallback links when necessary
jack
2 months ago
500e78bc
2e27c7b8
+2
1 changed file
expand all
collapse all
unified
split
src
index.ts
+2
src/index.ts
···
591
console.log(`[${twitterUsername}] ๐ Found quoted tweet in local history.`);
592
quoteEmbed = { $type: 'app.bsky.embed.record', record: { uri: quoteRef.uri, cid: quoteRef.cid } };
593
} else {
0
594
const quoteUrlEntity = urls.find((u) => u.expanded_url?.includes(quoteId));
595
externalQuoteUrl = quoteUrlEntity?.expanded_url || `https://twitter.com/i/status/${quoteId}`;
596
console.log(`[${twitterUsername}] ๐ Quoted tweet is external: ${externalQuoteUrl}`);
597
}
598
}
599
0
600
if (externalQuoteUrl && !text.includes(externalQuoteUrl)) {
601
text += `\n\nQT: ${externalQuoteUrl}`;
602
}
···
591
console.log(`[${twitterUsername}] ๐ Found quoted tweet in local history.`);
592
quoteEmbed = { $type: 'app.bsky.embed.record', record: { uri: quoteRef.uri, cid: quoteRef.cid } };
593
} else {
594
+
// If it's NOT in our managed account history, it's external
595
const quoteUrlEntity = urls.find((u) => u.expanded_url?.includes(quoteId));
596
externalQuoteUrl = quoteUrlEntity?.expanded_url || `https://twitter.com/i/status/${quoteId}`;
597
console.log(`[${twitterUsername}] ๐ Quoted tweet is external: ${externalQuoteUrl}`);
598
}
599
}
600
601
+
// Only append link for external quotes
602
if (externalQuoteUrl && !text.includes(externalQuoteUrl)) {
603
text += `\n\nQT: ${externalQuoteUrl}`;
604
}