nmtake

joined 2 years ago
[–] nmtake@lemm.ee 4 points 2 years ago (3 children)

For learning real Lemmy stuff, I'd run multiple Lemmy instances on LAN without internet connection to ensure the testing won't pollute the fediverse.

[–] nmtake@lemm.ee 3 points 2 years ago* (last edited 2 years ago)

Hi, thanks for setting up this community. I'm not a Lemmy source contributer but I like to read open sources. Here is a very simplified web application (including Lemmy) architecture overview and I hope this text helps for some newbies:

  1. A user agent (web browser, mobile app, etc.) sends an HTTP request to a Lemmy instance.
  2. The lemmy instance examines the HTTP request and dispatches the request to a relevant function called controller. The mapping from a path in the URL to a function is called a router - see https://github.com/LemmyNet/lemmy/blob/0.19.3/src/api_routes_http.rs for example.
  3. The controller makes an HTTP response for the request and returns it to the user agent.
  4. The user agent displays the returned response to the user.

To find an controller from a path in the router, just grep (or a similar search function you use) the Lemmy source. For example, if I want to know how GET /user/export_settings works, I'll run these commands:

$ git clone https://github.com/LemmyNet/lemmy/  # if you haven't download the source yet
$ cd lemmy
$ rg export_settings
src/api_routes_http.rs
131:  user_settings_backup::{export_settings, import_settings},
274:        web::resource("/user/export_settings")
276:          .route(web::get().to(export_settings)),

crates/apub/src/api/user_settings_backup.rs
68:pub async fn export_settings(
301:  use crate::api::user_settings_backup::{export_settings, import_settings};
366:    let backup = export_settings(export_user.clone(), context.reset_request_count()).await?;
402:    let mut backup = export_settings(export_user.clone(), context.reset_request_count()).await?;

So we got the relevant route and the controller definitions very quickly. Settings to be exported are defined as a struct UserSettingsBackup. The controller is defined as pub async fn export_settings and it converts the struct to a JSON.

Rust might not be a easy programming language but the official text (calld The Book is very friendly for newbies, so don't hesitate to read and to write a simple program like guessing game.

[–] nmtake@lemm.ee 4 points 2 years ago

Have you checked the shell command history? (e.g, history | grep spotify)

[–] nmtake@lemm.ee 8 points 2 years ago (2 children)

Most cases will be solved with these settings (but some applications may need additional tweeks):

  1. Use ja_JP.UTF-8locale, or
  2. Use ~/.config/fontconfig/fonts.conf
[–] nmtake@lemm.ee 1 points 2 years ago (1 children)

I noticed some shortcuts for window navigation don't work properly. For example, "View split on left" (Shift+Super+H on my machine) doesn't work if the target window is receiving text input. It seems that killing ibus temporary solves the issue, so beware if you're using ibus.

[–] nmtake@lemm.ee 2 points 2 years ago* (last edited 2 years ago) (1 children)
[–] nmtake@lemm.ee 3 points 2 years ago

As far as I know lemm.ee has disabled image uploads. See https://lemm.ee/post/5905754 for details.

[–] nmtake@lemm.ee 1 points 2 years ago

I'm not sure what "lemmy_server api_tests context" does mean, but

curl 'https://<instance>/api/v3/community?name=lemmydev' | jq .moderators

seems to work for me.

[–] nmtake@lemm.ee 1 points 2 years ago

I suspect your instance was used to backup the original communities.

[–] nmtake@lemm.ee 3 points 2 years ago

No problem! Thanks for moderating this community.

view more: ‹ prev next ›