Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(マージしない) Import note kakurega #1

Closed
wants to merge 61 commits into from

Conversation

nakkaa
Copy link
Owner

@nakkaa nakkaa commented Sep 5, 2024

What

Misskeyにノートのインポート機能を追加します。
(このPRは機能上は問題ないですが、commitのauthor情報がおかしいです。私はcherry-pickしただけですので、正式なauthorは以下のPRをご確認ください。)

Why

面白そうだから。

Misskey本家にはノートのエクスポート機能はあるが、インポート機能がない。
サーバー閉鎖やソフトウェアの開発終了に伴い、過去ログの参照が不便になる問題がある。
インポート機能を導入することで、過去投稿の参照が容易になり、閉鎖したサーバーやサポート終了ソフトウェアの利用者からの流入も得られる可能性がある。

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

Mar0xy and others added 30 commits September 5, 2024 03:06
- Supports Instagram, Mastodon/Pleroma/Akkoma, Twitter and *key
Co-Authored-By: Marie <[email protected]>
Stop renotes/boosts from *key from being imported due to missing functionality of getting the related posts
`recreateChain` converts a list of notes into a forest of notes, using
notes that are not replies as roots, and replies as child nodes,
recursively.

Previously, notes that are replies to notes not included in the
export, and their children, were never put in the forest, and
therefore wheren't imported.

This can be fine when importing from Twitter, since we can't really
link a note to a tweet.

And, for the moment, it's acceptable when importing from *key, because
the export doesn't contain the instance URL, so we can't resolve ids
to remote notes.

It's less fine when importing from Mastodon / Pleroma / Akkoma,
because in those cases we _can_ link to the remote note that the user
was replying to.

This commit makes `recreateChain` optionally return "orphaned" note
trees, so in the (near) future we can use it to properly thread
imported notes from those services.
the id / replyId are not at the top level, so now `recreateChain`
takes a list of keys to walk, not just a single key
I have _not_ tested this, but it should work fine, those exports are
the same shape as Mastodon's
Also adds the visibility function to mastodon imports
ChaoticLeah and others added 28 commits September 5, 2024 03:06
thanks Alina for the suggestion
thanks Alina
there's no `fs.promises.exists`
thanks Alina
apparently *some* tweets have those ☹
@nakkaa nakkaa changed the title (wip)Import note kakurega (マージしない) Import note kakurega Sep 5, 2024
@nakkaa nakkaa closed this Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants