this post was submitted on 11 Jun 2023
4 points (100.0% liked)

Asklemmy

43958 readers
2170 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_[email protected]~

founded 5 years ago
MODERATORS
 

Hi I'm looking for how to make some bookmarklets to browse a few things in a different way. Is there some way to at least get a json of a post/community/user to view some info that isn't readily available on the UI?

top 5 comments
sorted by: hot top controversial new old
[โ€“] csos95 2 points 1 year ago* (last edited 1 year ago) (2 children)

There's an API section1 in the Lemmy documentation that describes some basic information and links to other resources.
The LemmyHttp class2 in the linked lemmy-js-client documentation lists out the endpoints, parameters, and return values.

[โ€“] [email protected] 2 points 1 year ago* (last edited 1 year ago)

nevermind, i actually did it now 4 minutes after complaining because i saw there's code examples here:

https://github.com/LemmyNet/lemmy/blob/ecc9469a02e63eab4e19093007c7ba6db0dca079/api_tests/src/shared.ts#L4

this works:

import { GetPost, GetPostResponse, LemmyHttp, Login } from "lemmy-js-client";

export interface API {
  client: LemmyHttp;
  auth: string;
}

export let alpha: API = {
  client: new LemmyHttp("https://sh.itjust.works"),
  auth: "",
};

let formAlpha: Login = {
  username_or_email: "username",
  password: "password",
};

export async function getPost(
  api: API,
  post_id: number
): Promise<GetPostResponse> {
  let form: GetPost = {
    id: post_id,
    auth: api.auth,
  };
  return api.client.getPost(form);
}

getPost(alpha, 1).then((res) => {
  console.log(res);
});
[โ€“] [email protected] 1 points 1 year ago

been playing with it for like 20 minutes and it seems like the documentation and the code are different, so i can't implement any of what they say i can, been trying to just find the answers in the code with no luck cuz apparently the repo is all typescript and there's no code in the main repo, idk where this client's source code is.

have u been able to do any requests w it?

[โ€“] [email protected] 0 points 1 year ago (1 children)

https://join-lemmy.org/docs/en/contributors/04-api.html

Not sure about any info that is hidden to the default Lemmy-UI though

[โ€“] [email protected] 1 points 1 year ago

yeah there' is a lot of info there i found that is hidden on the UI but it's not enough to switch a post's url to another instance sadly. Seems there's no permlink or unique ID that is searchable, only a post id on the local server and a post id on the remote server but there's nothing like /c/community/permlink, it's all post/numbers and the numbers are different on each instance

here's an example response from the api when u get a post or comment:

https://sh.itjust.works/api/v3/post?id=1000

load more comments
view more: next โ€บ