Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
ce4391e
For XWizardImportOrBuildPage, use option cards instead of radio butto…
micahflee Jan 19, 2025
624fa32
Add nav to the wizard sidebar that includes "Migrate to Bluesky"
micahflee Jan 19, 2025
62e0883
Add a migrate wizard page
micahflee Jan 19, 2025
90d2361
Rename ImportOrBuild to Database
micahflee Jan 19, 2025
5abc9df
Show premium badge on migrate page
micahflee Jan 19, 2025
ef86344
Add things to consider
micahflee Jan 20, 2025
6f0bfad
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Jan 26, 2025
55e220b
Add @atproto/oauth-client-node dep, and start implementing OAuth
micahflee Jan 28, 2025
38ebece
Delete dead code
micahflee Feb 3, 2025
8db4d90
Start an interface for connecting a Bluesky account
micahflee Feb 3, 2025
c2b2d38
Bluesky OAuth client successfully created and authenticated
micahflee Feb 4, 2025
359e40f
When atproto oauth has an error, show the error to the user
micahflee Feb 4, 2025
8e1281a
Make the OAuth client_id use the API after all
micahflee Feb 4, 2025
41d4ef4
Store bluesky state and handle in individual X account, not in global…
micahflee Feb 4, 2025
fca3571
Pass oauth params from the cyd:// link all the way to the XWizardMigr…
micahflee Feb 4, 2025
8fe72ca
Finish OAuth flow, and show details about logged in profile
micahflee Feb 4, 2025
d89f4ee
Pass all querystrings from the oauth callback to the oauthCallback fu…
micahflee Feb 4, 2025
68bf09a
Handle errors before trying to complete the callback
micahflee Feb 4, 2025
53a1b5e
Support deleting configs, including with LIKE, and add support for di…
micahflee Feb 4, 2025
1f09775
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 4, 2025
c02b2fc
Add bluesky migration join table
micahflee Feb 5, 2025
c0b732b
Count the number of tweets to migrate before starting migration, and …
micahflee Feb 5, 2025
2d21ab6
Main process sends the renderer a list of tweetIDs to migrate, and it…
micahflee Feb 5, 2025
a0c96a0
Implement posting tweets to bluesky
micahflee Feb 6, 2025
14fcc75
Disable the cancel button if you have already clicked it
micahflee Feb 6, 2025
1c34ff7
Rename XWizardMigrate to XWizardMigrateBluesky in anticipation of sup…
micahflee Feb 7, 2025
5499297
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 7, 2025
209d1a5
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 18, 2025
76ab649
Merge branch '354-index-media' into 369-migrate-to-bluesky
micahflee Feb 18, 2025
904fb0b
Rename AccountXViewModel to XViewModel after merge
micahflee Feb 18, 2025
3808f7a
Accurately calculate which tweets can and cannot be migrated to Bluesky
micahflee Feb 18, 2025
88ab2d4
Add links to bsky migrations
micahflee Feb 18, 2025
33dcf4c
Show finished state
micahflee Feb 18, 2025
bbcc40b
Add support for deleting migrated tweets
micahflee Feb 18, 2025
4ff2368
Handle migrating replies
micahflee Feb 18, 2025
8f59c85
Support quoted tweets
micahflee Feb 18, 2025
d831373
Support migrating images
micahflee Feb 18, 2025
944114c
Almost support video uploads
micahflee Feb 18, 2025
647db3c
Add console logs
micahflee Feb 18, 2025
370de4f
Remove comment
micahflee Feb 18, 2025
fd17d55
Display errors when migrating on the finished page
micahflee Feb 18, 2025
3487f90
Ask if the user is sure they want to delete migrated tweets
micahflee Feb 18, 2025
0a119de
Make the CheckPremium view work for migrating to Bluesky, not just de…
micahflee Feb 18, 2025
0a3dc16
Finish check premium flow, so if you're signing up from the Migrate t…
micahflee Feb 18, 2025
3f6246c
After migrating tweets to bsky, or deleting migrating tweets, rebuild…
micahflee Feb 18, 2025
b1a1212
Display warning if a local database exists but was created before Feb…
micahflee Feb 18, 2025
8687ea3
Make the XLastImportOrBuildComponent flow make more sense and look be…
micahflee Feb 19, 2025
2fef9c8
Fix bug where it was adding 0 images for every post without videos
micahflee Feb 19, 2025
926773d
Force checking for user auth and premium each time you click the migr…
micahflee Feb 19, 2025
c97e880
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 19, 2025
f77f8b8
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 19, 2025
9b054d5
Merge branch 'main' into 369-migrate-to-bluesky
micahflee Feb 19, 2025
1ffa04b
Add userID to xAccount table
micahflee Feb 19, 2025
2475f9e
Refactor cookie tracking in XAccountController to keep track of cooki…
micahflee Feb 19, 2025
e7a7c6b
When logging in, get the username, userID, profile pic, and followers…
micahflee Feb 19, 2025
61a22e6
When reloading stats, just run the login function again
micahflee Feb 19, 2025
03626af
Delete XAccountController.indexParseAllJSON because it is no longer used
micahflee Feb 19, 2025
2cb3e84
In blueskyGetTweetCounts, pull the userID from the X account
micahflee Feb 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions archive-static-sites/x-archive/src/components/TweetComponent.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ const quoteTweet = computed(() => {
return archiveData.value.tweets.find(t => t.tweetID == tweetID);
});

// https://github.com/bluesky-social/atproto/discussions/2523#discussioncomment-9552109
function atUriToBlueskyUrl(atUri: string): string {
const parts = atUri.split('/');
if (!(parts.length === 5 && parts[0] === 'at:' && parts[1] === '')) {
throw new Error('Invalid AT URI');
}
const did = parts[2];
const rkey = parts[4];
return `https://bsky.app/profile/${did}/post/${rkey}`;
}
</script>

<template>
Expand All @@ -40,6 +50,8 @@ const quoteTweet = computed(() => {
:href="`./Archived Tweets/${formatDateToYYYYMMDD(tweet.createdAt)}_${tweet.tweetID}.html`"
target="_blank">archived</a>
<a :href="`https://x.com/${tweet.path}`" target="_blank">original</a>
<a v-for="atprotoURI in tweet.blueskyMigrationURIs" :key="atprotoURI" :href="atUriToBlueskyUrl(atprotoURI)"
target="_blank">migrated to Bluesky</a>
<small v-if="tweet.createdAt">{{ formattedDatetime(tweet.createdAt) }}</small>
<small v-else class="text-muted">unknown date</small>
</div>
Expand Down
2 changes: 1 addition & 1 deletion archive-static-sites/x-archive/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export type Tweet = {
displayURL: string;
expandedURL: string;
}[];

blueskyMigrationURIs: string[];
};

export type User = {
Expand Down
Loading