GithubHelp home page GithubHelp logo

Comments (4)

nanos avatar nanos commented on August 15, 2024 4

Thanks for the suggestion @MrHamel and thanks for the detailed report @Teqed !

For user profile backfilling, there is a user/notes endpoint but it requires a userID which does not parse from the user's name in the URL. It should be possible to make a request against the users/search endpoint and provide the parsed username as the query parameter, which will return the required userID.

That's the same with Mastodon, see

def get_user_id(server, user = None, access_token = None):
annoyingly a different path, though.

Because the user URLs match the same pattern as Mastodon profiles, the choices here would be to either:

  1. After failing against any Mastodon API, attempt Misskey/Calckey API.
  2. Implement nodeinfo as discussed here to determine the appropriate API.

I'm personally strongly in favour of the 2nd option here. Doing 2 requests per user seems wasteful.

I'm not currently having capacity to actually implement this, but hopefully later in the summer. If you have an itch, and the time, I'd be very happy, too, though ๐Ÿ˜‰

from fedifetcher.

Teqed avatar Teqed commented on August 15, 2024

Additional information:

Calckey is downstream of Misskey, differences are noted.

  • .well-known/nodeinfo response: Yes
  • Nodeinfo path: {server}/nodeinfo/2.0 and {server}/nodeinfo/2.1
  • Nodeinfo response: misskey or calckey
  • Users URL pattern: {server}/@{user}
  • "Posts" URL pattern: {server}/notes/{id}

Calckey's API documentation mentions notes/children and notes/conversation endpoints which can be POSTed to using a noteID as parsed from the URL. This appears to function similar to Mastodon's Context API and respectively fetch ancestors and descendants of a "note".

A CLI example: curl -X POST -H "Content-type: application/json" -H "Accept: application/json" -d '{ "noteId": "{id}" }' {server}/api/notes/children will return a JSON with the replies, including a URL that can be handed back to the local Mastodon server's search API for lookup.

For user profile backfilling, there is a user/notes endpoint but it requires a userID which does not parse from the user's name in the URL. It should be possible to make a request against the users/search endpoint and provide the parsed username as the query parameter, which will return the required userID.

Because the user URLs match the same pattern as Mastodon profiles, the choices here would be to either:

  1. After failing against any Mastodon API, attempt Misskey/Calckey API.
  2. Implement nodeinfo as discussed here to determine the appropriate API.

from fedifetcher.

MrHamel avatar MrHamel commented on August 15, 2024

Let's reopen this issue since the script still does not import posts into CalcKey/FireFish instances, thanks.

from fedifetcher.

nanos avatar nanos commented on August 15, 2024

Apologies @MrHamel. Like @ToadKing i understood this issue to mean to offer support for pulling in content from Calckey/Firefish instances, not to actually support running FediFetcher against them.

I need to be honest though: I do not have a Firefish instance, so Iโ€™m unable to implement Firefish support myself. Unless someone else came along and implemented this, and was willing to commit to ongoing testing and support Firefish, this is unfortunately very unlikely to be implemented in FediFetcher.

from fedifetcher.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.