From 0540bb3ae2887ca99d80109303169bfe30c8c0d3 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 7 Aug 2023 16:54:56 +0200 Subject: [PATCH] feat: add a site info dialog --- src/api/community.rs | 2 +- src/api/site.rs | 4 + src/components/community_page.rs | 1 - src/components/loading_indicator.rs | 22 + src/components/mod.rs | 1 + src/dialogs/editor.rs | 10 +- src/dialogs/mod.rs | 1 + src/dialogs/site_info.rs | 86 +++ src/examples/community.json | 219 ++++++- src/examples/person.json | 938 +++++++++++++++++++++++++++- src/examples/post.json | 855 ++++++++++++++++++++++++- src/examples/site.json | 379 +++++++++++ src/main.rs | 46 +- 13 files changed, 2535 insertions(+), 29 deletions(-) create mode 100644 src/components/loading_indicator.rs create mode 100644 src/dialogs/site_info.rs create mode 100644 src/examples/site.json diff --git a/src/api/community.rs b/src/api/community.rs index 0c3b6c9..0ceb5a1 100644 --- a/src/api/community.rs +++ b/src/api/community.rs @@ -20,7 +20,7 @@ pub fn follow_community( follow: bool, ) -> Result { let params = FollowCommunity { - community_id: community_id, + community_id, follow, auth: settings::get_current_account().jwt.unwrap(), }; diff --git a/src/api/site.rs b/src/api/site.rs index 6618f02..f2ab553 100644 --- a/src/api/site.rs +++ b/src/api/site.rs @@ -8,3 +8,7 @@ pub fn fetch_site() -> std::result::Result { }; super::get("/site", ¶ms) } + +pub fn default_site_info() -> GetSiteResponse { + serde_json::from_str(include_str!("../examples/site.json")).unwrap() +} diff --git a/src/components/community_page.rs b/src/components/community_page.rs index f86c7f8..48f1068 100644 --- a/src/components/community_page.rs +++ b/src/components/community_page.rs @@ -155,7 +155,6 @@ impl SimpleComponent for CommunityPage { connect_clicked => CommunityInput::FetchPosts, } } - } } diff --git a/src/components/loading_indicator.rs b/src/components/loading_indicator.rs new file mode 100644 index 0000000..7b2e3cb --- /dev/null +++ b/src/components/loading_indicator.rs @@ -0,0 +1,22 @@ +use relm4::prelude::*; +use gtk::prelude::*; + +#[relm4::widget_template(pub)] +impl WidgetTemplate for LoadingIndicator { + view! { + gtk::Box { + set_hexpand: true, + set_orientation: gtk::Orientation::Vertical, + set_spacing: 12, + set_valign: gtk::Align::Center, + set_halign: gtk::Align::Center, + gtk::Spinner { + set_spinning: true, + set_height_request: 80, + }, + gtk::Label { + set_text: "Loading", + }, + } + } +} \ No newline at end of file diff --git a/src/components/mod.rs b/src/components/mod.rs index ce7eb07..0853f7c 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -7,6 +7,7 @@ pub mod community_row; pub mod inbox_page; pub mod instance_row; pub mod instances_page; +pub mod loading_indicator; pub mod login_page; pub mod mention_row; pub mod moderates_row; diff --git a/src/dialogs/editor.rs b/src/dialogs/editor.rs index 53a0f20..00a5aa5 100644 --- a/src/dialogs/editor.rs +++ b/src/dialogs/editor.rs @@ -60,6 +60,11 @@ impl SimpleComponent for EditorDialog { set_visible: model.visible, set_modal: true, + connect_close_request[sender] => move |_| { + sender.input(DialogMsg::Hide); + gtk::Inhibit(false) + }, + #[wrap(Some)] set_child = >k::Box { set_orientation: gtk::Orientation::Vertical, @@ -145,11 +150,6 @@ impl SimpleComponent for EditorDialog { } } }, - - connect_close_request[sender] => move |_| { - sender.input(DialogMsg::Hide); - gtk::Inhibit(false) - } } } diff --git a/src/dialogs/mod.rs b/src/dialogs/mod.rs index ff1266e..71c2182 100644 --- a/src/dialogs/mod.rs +++ b/src/dialogs/mod.rs @@ -1,2 +1,3 @@ pub mod about; pub mod editor; +pub mod site_info; \ No newline at end of file diff --git a/src/dialogs/site_info.rs b/src/dialogs/site_info.rs new file mode 100644 index 0000000..26ab1e7 --- /dev/null +++ b/src/dialogs/site_info.rs @@ -0,0 +1,86 @@ +use gtk::prelude::*; +use lemmy_api_common::site::GetSiteResponse; +use relm4::prelude::*; +use crate::components::loading_indicator::LoadingIndicator; + +use crate::api; + +pub struct SiteInfo { + visible: bool, + loading: bool, + site_info: GetSiteResponse, +} + +#[derive(Debug)] +pub enum SiteInfoInput { + Fetch, + Update(GetSiteResponse), + Hide, +} + +#[relm4::component(pub)] +impl SimpleComponent for SiteInfo { + type Init = (); + type Input = SiteInfoInput; + type Output = crate::AppMsg; + + view! { + dialog = gtk::Dialog { + #[watch] + set_visible: model.visible, + set_modal: true, + + connect_close_request[sender] => move |_| { + sender.input(SiteInfoInput::Hide); + gtk::Inhibit(false) + }, + + gtk::Box { + match model.loading { + true => gtk::Box { + #[template] + LoadingIndicator, + } + false => gtk::Box { + + } + } + }, + } + } + + fn init( + _init: Self::Init, + root: &Self::Root, + sender: ComponentSender, + ) -> ComponentParts { + let model = Self { visible: false, loading: true, site_info: api::site::default_site_info() }; + let widgets = view_output!(); + ComponentParts { model, widgets } + } + + fn update(&mut self, message: Self::Input, sender: ComponentSender) { + match message { + SiteInfoInput::Fetch => { + self.loading = true; + self.visible = true; + std::thread::spawn(move || { + match api::site::fetch_site() { + Ok(site_info) => sender.input(SiteInfoInput::Update(site_info)), + Err(err) => { + sender.output_sender().emit(crate::AppMsg::ShowMessage(err.to_string())); + sender.input_sender().emit(SiteInfoInput::Hide); + } + } + }); + } + SiteInfoInput::Update(site_info) => { + self.site_info = site_info; + self.loading = false; + } + SiteInfoInput::Hide => { + self.visible = false; + } + } + } +} diff --git a/src/examples/community.json b/src/examples/community.json index d980f90..9aa9baa 100644 --- a/src/examples/community.json +++ b/src/examples/community.json @@ -1 +1,218 @@ -{"community_view":{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"subscribed":"NotSubscribed","blocked":false,"counts":{"id":424,"community_id":8,"subscribers":18954,"posts":1820,"comments":35171,"published":"2019-04-25T04:58:33.886275","users_active_day":913,"users_active_week":3241,"users_active_month":7600,"users_active_half_year":7785,"hot_rank":0}},"moderators":[{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"moderator":{"id":12911,"name":"Cloak","display_name":"Evan","avatar":"https://lemmy.ml/pictrs/image/e659146a-e628-44a1-ba8b-6fd2fe542544.png","banned":false,"published":"2020-07-05T16:11:40.290179","updated":"2022-02-01T02:01:10.936854","actor_id":"https://lemmy.ml/u/Cloak","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":394}},{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"moderator":{"id":32030,"name":"14specks","display_name":"OrangeSlice","avatar":"https://lemmy.ml/pictrs/image/155ebbd4-38a0-4d99-8104-11be9c695cad.jpeg","banned":false,"published":"2021-07-19T19:34:39.739022","actor_id":"https://lemmy.ml/u/14specks","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":394}},{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"moderator":{"id":32603,"name":"mekhos","display_name":"mekhos","avatar":"https://lemmy.ml/pictrs/image/d2b98e44-3728-44a8-8b10-96d771a0f159.png","banned":false,"published":"2021-07-28T10:54:22.350381","updated":"2022-04-14T10:03:57.643726","actor_id":"https://lemmy.ml/u/mekhos","bio":"only here for the lemmy bucks","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":394}},{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"moderator":{"id":36323,"name":"tmpod","display_name":"Tmpod","avatar":"https://lemmy.pt/pictrs/image/gIPQUt3mxw.png","banned":false,"published":"2021-09-10T19:37:20.367073","updated":"2022-08-04T16:23:06.747838","actor_id":"https://lemmy.pt/u/tmpod","bio":"Estudante de Engenharia Informática apaixonado pela área; algures em Portugal.\n\nAdministrador da instância lemmy.pt.\n\n---\n\nComputer Science student, passionate about the field; somewhere in Portugal.\n\nlemmy.pt instance administrator.\n\n---\n\nhttps://tmpod.dev","local":false,"banner":"https://lemmy.pt/pictrs/image/iLIlqIIuaW.jpg","deleted":false,"matrix_user_id":"@tmpod:matrix.org","admin":false,"bot_account":false,"instance_id":9}},{"community":{"id":8,"name":"asklemmy","title":"asklemmy","description":"A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!","removed":false,"published":"2019-04-25T04:58:33.886275","updated":"2023-06-14T00:05:37.871496","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/asklemmy","local":true,"icon":"https://lemmy.ml/pictrs/image/UsuGsKF2fl.png","banner":"https://lemmy.ml/pictrs/image/XKAjSZCX2P.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"moderator":{"id":687022,"name":"hsl","display_name":"HSL","avatar":"https://wayfarershaven.eu/pictrs/image/2a0b9789-4247-49df-827b-07cbbe88c51c.jpeg","banned":false,"published":"2023-06-11T10:35:20.772540","actor_id":"https://wayfarershaven.eu/u/hsl","bio":"World citizen based outside of Stockholm, Sweden.","local":false,"deleted":false,"admin":false,"bot_account":false,"instance_id":137395}}],"discussion_languages":[]} \ No newline at end of file +{ + "community_view": { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "subscribed": "NotSubscribed", + "blocked": false, + "counts": { + "id": 424, + "community_id": 8, + "subscribers": 18954, + "posts": 1820, + "comments": 35171, + "published": "2019-04-25T04:58:33.886275", + "users_active_day": 913, + "users_active_week": 3241, + "users_active_month": 7600, + "users_active_half_year": 7785, + "hot_rank": 0 + } + }, + "moderators": [ + { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "moderator": { + "id": 12911, + "name": "Cloak", + "display_name": "Evan", + "avatar": "https://lemmy.ml/pictrs/image/e659146a-e628-44a1-ba8b-6fd2fe542544.png", + "banned": false, + "published": "2020-07-05T16:11:40.290179", + "updated": "2022-02-01T02:01:10.936854", + "actor_id": "https://lemmy.ml/u/Cloak", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 394 + } + }, + { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "moderator": { + "id": 32030, + "name": "14specks", + "display_name": "OrangeSlice", + "avatar": "https://lemmy.ml/pictrs/image/155ebbd4-38a0-4d99-8104-11be9c695cad.jpeg", + "banned": false, + "published": "2021-07-19T19:34:39.739022", + "actor_id": "https://lemmy.ml/u/14specks", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 394 + } + }, + { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "moderator": { + "id": 32603, + "name": "mekhos", + "display_name": "mekhos", + "avatar": "https://lemmy.ml/pictrs/image/d2b98e44-3728-44a8-8b10-96d771a0f159.png", + "banned": false, + "published": "2021-07-28T10:54:22.350381", + "updated": "2022-04-14T10:03:57.643726", + "actor_id": "https://lemmy.ml/u/mekhos", + "bio": "only here for the lemmy bucks", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 394 + } + }, + { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "moderator": { + "id": 36323, + "name": "tmpod", + "display_name": "Tmpod", + "avatar": "https://lemmy.pt/pictrs/image/gIPQUt3mxw.png", + "banned": false, + "published": "2021-09-10T19:37:20.367073", + "updated": "2022-08-04T16:23:06.747838", + "actor_id": "https://lemmy.pt/u/tmpod", + "bio": "Estudante de Engenharia Informática apaixonado pela área; algures em Portugal.\n\nAdministrador da instância lemmy.pt.\n\n---\n\nComputer Science student, passionate about the field; somewhere in Portugal.\n\nlemmy.pt instance administrator.\n\n---\n\nhttps://tmpod.dev", + "local": false, + "banner": "https://lemmy.pt/pictrs/image/iLIlqIIuaW.jpg", + "deleted": false, + "matrix_user_id": "@tmpod:matrix.org", + "admin": false, + "bot_account": false, + "instance_id": 9 + } + }, + { + "community": { + "id": 8, + "name": "asklemmy", + "title": "asklemmy", + "description": "A loosely moderated place to ask open ended questions\n\nIf your post is\n\n1. Open ended \n2. Not offensive (At this point, I do not have the bandwidth to moderate partisan political discussions)\n3. **Not regarding lemmy support** ([!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support) )\n4. not ad nauseam inducing (please make sure its a question that would be new to most members)\n5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n\nit’s welcome here!", + "removed": false, + "published": "2019-04-25T04:58:33.886275", + "updated": "2023-06-14T00:05:37.871496", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/asklemmy", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/UsuGsKF2fl.png", + "banner": "https://lemmy.ml/pictrs/image/XKAjSZCX2P.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "moderator": { + "id": 687022, + "name": "hsl", + "display_name": "HSL", + "avatar": "https://wayfarershaven.eu/pictrs/image/2a0b9789-4247-49df-827b-07cbbe88c51c.jpeg", + "banned": false, + "published": "2023-06-11T10:35:20.772540", + "actor_id": "https://wayfarershaven.eu/u/hsl", + "bio": "World citizen based outside of Stockholm, Sweden.", + "local": false, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 137395 + } + } + ], + "discussion_languages": [] +} diff --git a/src/examples/person.json b/src/examples/person.json index 0b85b1b..af8824a 100644 --- a/src/examples/person.json +++ b/src/examples/person.json @@ -1 +1,937 @@ -{"person_view":{"person":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1, "inbox_url": "https://programming.dev/user/bnyro"},"counts":{"id":30597,"person_id":57561,"post_count":1,"post_score":157,"comment_count":10,"comment_score":32}},"comments":[{"comment":{"id":281217,"creator_id":57561,"post_id":91261,"content":"Oh well, looks like I just misunderstood you then. No worries!","removed":false,"published":"2023-06-22T11:53:30.544357","deleted":false,"ap_id":"https://programming.dev/comment/281217","local":true,"path":"0.203688.232877.260859.277839.281217","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":254518,"comment_id":281217,"score":1,"upvotes":1,"downvotes":0,"published":"2023-06-22T11:53:30.544357","child_count":0,"hot_rank":5},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":244934,"creator_id":57561,"post_id":91261,"content":"There now are instructions how to build it using Docker in the Readme :)","removed":false,"published":"2023-06-20T20:05:28.263782","deleted":false,"ap_id":"https://programming.dev/comment/244934","local":true,"path":"0.228971.244934","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":221493,"comment_id":244934,"score":2,"upvotes":2,"downvotes":0,"published":"2023-06-20T20:05:28.263782","child_count":1,"hot_rank":2},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":256831,"creator_id":57561,"post_id":91261,"content":"Yes, likely. I have never published an app there before so it'll be kinda interesting to get it working, but I guess that'll be fine (I'll probably try it in two weeks or so).\nI'll also try to add it to Void Linux's repos once it's stable, hope we'll get accepted there too","removed":false,"published":"2023-06-21T10:32:55.127470","deleted":false,"ap_id":"https://programming.dev/comment/256831","local":true,"path":"0.206380.256831","distinguished":false,"language_id":0},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":232326,"comment_id":256831,"score":1,"upvotes":1,"downvotes":0,"published":"2023-06-21T10:32:55.127470","child_count":1,"hot_rank":2},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":256787,"creator_id":57561,"post_id":91261,"content":"Hmm, I've symlinked the gtk-4.0 folder to catppuccin, but some apps like Nautilus don't seem to get themed (not even sure if it uses libadwaita though). Some others do work.","removed":false,"published":"2023-06-21T10:29:37.474107","deleted":false,"ap_id":"https://programming.dev/comment/256787","local":true,"path":"0.209202.213065.246390.256787","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":232287,"comment_id":256787,"score":1,"upvotes":1,"downvotes":0,"published":"2023-06-21T10:29:37.474107","child_count":1,"hot_rank":2},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":260859,"creator_id":57561,"post_id":91261,"content":"As already stated out, the project is still in alpha. Apart from that, there is a screenshot in the post ...","removed":false,"published":"2023-06-21T14:38:50.455100","deleted":false,"ap_id":"https://programming.dev/comment/260859","local":true,"path":"0.203688.232877.260859","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":236023,"comment_id":260859,"score":1,"upvotes":1,"downvotes":0,"published":"2023-06-21T14:38:50.455100","child_count":2,"hot_rank":2},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":213065,"creator_id":57561,"post_id":91261,"content":"Yes, that's also the reason why the app uses gtk4 without libadwaita, I want to be able to use Catppuccin on it :)","removed":false,"published":"2023-06-19T04:54:09.617058","deleted":false,"ap_id":"https://programming.dev/comment/213065","local":true,"path":"0.209202.213065","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":192398,"comment_id":213065,"score":2,"upvotes":2,"downvotes":0,"published":"2023-06-19T04:54:09.617058","child_count":3,"hot_rank":1},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":203490,"creator_id":57561,"post_id":91261,"content":"Please keep in mind it's still at a very early stage, so if things sometimes don't work out perfectly yet, that's matter to change in the future :)","removed":false,"published":"2023-06-18T19:38:48.217219","deleted":false,"ap_id":"https://programming.dev/comment/203490","local":true,"path":"0.203453.203490","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":183731,"comment_id":203490,"score":4,"upvotes":4,"downvotes":0,"published":"2023-06-18T19:38:48.217219","child_count":0,"hot_rank":1},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":203846,"creator_id":57561,"post_id":91261,"content":"Yes, I totally agree with you!\nI didn't yet add screenshots to the README since some parts of the app are still matter to be changed in the near future. The development started actually just four days ago, so there's still room for UI improvements.\nI'll make sure to add screenshots to the README once it's more mature.","removed":false,"published":"2023-06-18T19:59:26.580276","deleted":false,"ap_id":"https://programming.dev/comment/203846","local":true,"path":"0.203688.203846","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":184058,"comment_id":203846,"score":8,"upvotes":8,"downvotes":0,"published":"2023-06-18T19:59:26.580276","child_count":4,"hot_rank":1},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":205183,"creator_id":57561,"post_id":91261,"content":"Hey, thanks for your interest!\nWhat's probably needed the most currently is someone spending some time to get all the things that require authentication done, but of course other things like adding screenshots to the README, adding CI via GitHub actions, etc would be useful too! :)","removed":false,"published":"2023-06-18T20:58:21.315295","deleted":false,"ap_id":"https://programming.dev/comment/205183","local":true,"path":"0.203688.203846.204306.205183","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":185278,"comment_id":205183,"score":6,"upvotes":6,"downvotes":0,"published":"2023-06-18T20:58:21.315295","child_count":0,"hot_rank":1},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false},{"comment":{"id":205130,"creator_id":57561,"post_id":91261,"content":"I don't mind if someone creates a PR with some screenshots, however I would rather wait one or two weeks so that there's no need to create a newscreenshots when a new feature is added.","removed":false,"published":"2023-06-18T20:55:40.995043","deleted":false,"ap_id":"https://programming.dev/comment/205130","local":true,"path":"0.203688.203846.204952.205130","distinguished":false,"language_id":37},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"counts":{"id":185230,"comment_id":205130,"score":6,"upvotes":6,"downvotes":0,"published":"2023-06-18T20:55:40.995043","child_count":0,"hot_rank":1},"creator_banned_from_community":false,"subscribed":"NotSubscribed","saved":false,"creator_blocked":false}],"posts":[{"post":{"id":91261,"name":"Lemoa - A Gtk client for Lemmy","url":"https://github.com/lemmy-gtk/lemoa","body":"Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.","creator_id":57561,"community_id":3,"removed":false,"locked":false,"published":"2023-06-18T19:22:51.244313","updated":"2023-06-18T20:02:42.852752","deleted":false,"nsfw":false,"embed_title":"GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy","embed_description":"Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.","thumbnail_url":"https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png","ap_id":"https://programming.dev/post/91261","local":true,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":57561,"name":"bnyro","avatar":"https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png","banned":false,"published":"2023-06-13T20:49:52.684593","actor_id":"https://programming.dev/u/bnyro","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":1},"community":{"id":3,"name":"programming","title":"Programming","description":"A general purpose programming community for English speakers","removed":false,"published":"2023-06-06T06:54:33.621165","updated":"2023-06-23T03:45:17.904810","deleted":false,"nsfw":false,"actor_id":"https://programming.dev/c/programming","local":true,"icon":"https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png","banner":"https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1},"creator_banned_from_community":false,"counts":{"id":31854,"post_id":91261,"comments":28,"score":157,"upvotes":157,"downvotes":0,"published":"2023-06-18T19:22:51.244313","newest_comment_time_necro":"2023-06-20T18:50:51.945264","newest_comment_time":"2023-06-22T11:53:30.544357","featured_community":false,"featured_local":false,"hot_rank":3,"hot_rank_active":6},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":28}],"moderates":[]} \ No newline at end of file +{ + "person_view": { + "person": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1, + "inbox_url": "https://programming.dev/user/bnyro" + }, + "counts": { + "id": 30597, + "person_id": 57561, + "post_count": 1, + "post_score": 157, + "comment_count": 10, + "comment_score": 32 + } + }, + "comments": [ + { + "comment": { + "id": 281217, + "creator_id": 57561, + "post_id": 91261, + "content": "Oh well, looks like I just misunderstood you then. No worries!", + "removed": false, + "published": "2023-06-22T11:53:30.544357", + "deleted": false, + "ap_id": "https://programming.dev/comment/281217", + "local": true, + "path": "0.203688.232877.260859.277839.281217", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 254518, + "comment_id": 281217, + "score": 1, + "upvotes": 1, + "downvotes": 0, + "published": "2023-06-22T11:53:30.544357", + "child_count": 0, + "hot_rank": 5 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 244934, + "creator_id": 57561, + "post_id": 91261, + "content": "There now are instructions how to build it using Docker in the Readme :)", + "removed": false, + "published": "2023-06-20T20:05:28.263782", + "deleted": false, + "ap_id": "https://programming.dev/comment/244934", + "local": true, + "path": "0.228971.244934", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 221493, + "comment_id": 244934, + "score": 2, + "upvotes": 2, + "downvotes": 0, + "published": "2023-06-20T20:05:28.263782", + "child_count": 1, + "hot_rank": 2 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 256831, + "creator_id": 57561, + "post_id": 91261, + "content": "Yes, likely. I have never published an app there before so it'll be kinda interesting to get it working, but I guess that'll be fine (I'll probably try it in two weeks or so).\nI'll also try to add it to Void Linux's repos once it's stable, hope we'll get accepted there too", + "removed": false, + "published": "2023-06-21T10:32:55.127470", + "deleted": false, + "ap_id": "https://programming.dev/comment/256831", + "local": true, + "path": "0.206380.256831", + "distinguished": false, + "language_id": 0 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 232326, + "comment_id": 256831, + "score": 1, + "upvotes": 1, + "downvotes": 0, + "published": "2023-06-21T10:32:55.127470", + "child_count": 1, + "hot_rank": 2 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 256787, + "creator_id": 57561, + "post_id": 91261, + "content": "Hmm, I've symlinked the gtk-4.0 folder to catppuccin, but some apps like Nautilus don't seem to get themed (not even sure if it uses libadwaita though). Some others do work.", + "removed": false, + "published": "2023-06-21T10:29:37.474107", + "deleted": false, + "ap_id": "https://programming.dev/comment/256787", + "local": true, + "path": "0.209202.213065.246390.256787", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 232287, + "comment_id": 256787, + "score": 1, + "upvotes": 1, + "downvotes": 0, + "published": "2023-06-21T10:29:37.474107", + "child_count": 1, + "hot_rank": 2 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 260859, + "creator_id": 57561, + "post_id": 91261, + "content": "As already stated out, the project is still in alpha. Apart from that, there is a screenshot in the post ...", + "removed": false, + "published": "2023-06-21T14:38:50.455100", + "deleted": false, + "ap_id": "https://programming.dev/comment/260859", + "local": true, + "path": "0.203688.232877.260859", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 236023, + "comment_id": 260859, + "score": 1, + "upvotes": 1, + "downvotes": 0, + "published": "2023-06-21T14:38:50.455100", + "child_count": 2, + "hot_rank": 2 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 213065, + "creator_id": 57561, + "post_id": 91261, + "content": "Yes, that's also the reason why the app uses gtk4 without libadwaita, I want to be able to use Catppuccin on it :)", + "removed": false, + "published": "2023-06-19T04:54:09.617058", + "deleted": false, + "ap_id": "https://programming.dev/comment/213065", + "local": true, + "path": "0.209202.213065", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 192398, + "comment_id": 213065, + "score": 2, + "upvotes": 2, + "downvotes": 0, + "published": "2023-06-19T04:54:09.617058", + "child_count": 3, + "hot_rank": 1 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 203490, + "creator_id": 57561, + "post_id": 91261, + "content": "Please keep in mind it's still at a very early stage, so if things sometimes don't work out perfectly yet, that's matter to change in the future :)", + "removed": false, + "published": "2023-06-18T19:38:48.217219", + "deleted": false, + "ap_id": "https://programming.dev/comment/203490", + "local": true, + "path": "0.203453.203490", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 183731, + "comment_id": 203490, + "score": 4, + "upvotes": 4, + "downvotes": 0, + "published": "2023-06-18T19:38:48.217219", + "child_count": 0, + "hot_rank": 1 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 203846, + "creator_id": 57561, + "post_id": 91261, + "content": "Yes, I totally agree with you!\nI didn't yet add screenshots to the README since some parts of the app are still matter to be changed in the near future. The development started actually just four days ago, so there's still room for UI improvements.\nI'll make sure to add screenshots to the README once it's more mature.", + "removed": false, + "published": "2023-06-18T19:59:26.580276", + "deleted": false, + "ap_id": "https://programming.dev/comment/203846", + "local": true, + "path": "0.203688.203846", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 184058, + "comment_id": 203846, + "score": 8, + "upvotes": 8, + "downvotes": 0, + "published": "2023-06-18T19:59:26.580276", + "child_count": 4, + "hot_rank": 1 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 205183, + "creator_id": 57561, + "post_id": 91261, + "content": "Hey, thanks for your interest!\nWhat's probably needed the most currently is someone spending some time to get all the things that require authentication done, but of course other things like adding screenshots to the README, adding CI via GitHub actions, etc would be useful too! :)", + "removed": false, + "published": "2023-06-18T20:58:21.315295", + "deleted": false, + "ap_id": "https://programming.dev/comment/205183", + "local": true, + "path": "0.203688.203846.204306.205183", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 185278, + "comment_id": 205183, + "score": 6, + "upvotes": 6, + "downvotes": 0, + "published": "2023-06-18T20:58:21.315295", + "child_count": 0, + "hot_rank": 1 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + }, + { + "comment": { + "id": 205130, + "creator_id": 57561, + "post_id": 91261, + "content": "I don't mind if someone creates a PR with some screenshots, however I would rather wait one or two weeks so that there's no need to create a newscreenshots when a new feature is added.", + "removed": false, + "published": "2023-06-18T20:55:40.995043", + "deleted": false, + "ap_id": "https://programming.dev/comment/205130", + "local": true, + "path": "0.203688.203846.204952.205130", + "distinguished": false, + "language_id": 37 + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "counts": { + "id": 185230, + "comment_id": 205130, + "score": 6, + "upvotes": 6, + "downvotes": 0, + "published": "2023-06-18T20:55:40.995043", + "child_count": 0, + "hot_rank": 1 + }, + "creator_banned_from_community": false, + "subscribed": "NotSubscribed", + "saved": false, + "creator_blocked": false + } + ], + "posts": [ + { + "post": { + "id": 91261, + "name": "Lemoa - A Gtk client for Lemmy", + "url": "https://github.com/lemmy-gtk/lemoa", + "body": "Hello everyone,\nI recently started working on a Gtk client for Lemmy written in Rust, called [Lemoa](https://github.com/lemmy-gtk/lemoa) and the awesome Relm4 crate.\n\nSo far, it supports most of the basic things that do not require a login, like viewing trending posts, browsing communities, viewing profiles, etc...\nLogin features are planned to become added within the next one or two weeks, so that Lemoa can be used as a replacement for the web UI on a desktop.\n\nScreenshot of an example community page:\n![](https://programming.dev/pictrs/image/0515ec44-c83c-4929-9ced-1d4c7645e5e9.png)\n\nId you want to feel free to already try it at \"alpha stage\" (installation instructions are in the Readme).\n\nFeedback and any kind of contributions welcome!\n\nPS: I'm sorry if that's the wrong place to post about it, I didn't know where else to.", + "creator_id": 57561, + "community_id": 3, + "removed": false, + "locked": false, + "published": "2023-06-18T19:22:51.244313", + "updated": "2023-06-18T20:02:42.852752", + "deleted": false, + "nsfw": false, + "embed_title": "GitHub - lemmy-gtk/lemoa: Native Gtk client for Lemmy", + "embed_description": "Native Gtk client for Lemmy. Contribute to lemmy-gtk/lemoa development by creating an account on GitHub.", + "thumbnail_url": "https://programming.dev/pictrs/image/61170b78-ea0f-40b1-9446-eef96184d0c7.png", + "ap_id": "https://programming.dev/post/91261", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 57561, + "name": "bnyro", + "avatar": "https://programming.dev/pictrs/image/eae629c1-36e7-4707-b1d5-b56dd4987810.png", + "banned": false, + "published": "2023-06-13T20:49:52.684593", + "actor_id": "https://programming.dev/u/bnyro", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1 + }, + "community": { + "id": 3, + "name": "programming", + "title": "Programming", + "description": "A general purpose programming community for English speakers", + "removed": false, + "published": "2023-06-06T06:54:33.621165", + "updated": "2023-06-23T03:45:17.904810", + "deleted": false, + "nsfw": false, + "actor_id": "https://programming.dev/c/programming", + "local": true, + "icon": "https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png", + "banner": "https://programming.dev/pictrs/image/d7711fb2-cb17-41cd-b06e-a6de83db25b7.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1 + }, + "creator_banned_from_community": false, + "counts": { + "id": 31854, + "post_id": 91261, + "comments": 28, + "score": 157, + "upvotes": 157, + "downvotes": 0, + "published": "2023-06-18T19:22:51.244313", + "newest_comment_time_necro": "2023-06-20T18:50:51.945264", + "newest_comment_time": "2023-06-22T11:53:30.544357", + "featured_community": false, + "featured_local": false, + "hot_rank": 3, + "hot_rank_active": 6 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 28 + } + ], + "moderates": [] +} diff --git a/src/examples/post.json b/src/examples/post.json index bd84caf..4eda5bf 100644 --- a/src/examples/post.json +++ b/src/examples/post.json @@ -1 +1,854 @@ -{"post_view":{"post":{"id":1465740,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"## What is Lemmy?\n\nLemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n\n## Major Changes\n\n### HTTP API instead of Websocket\n\nUntil now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n\nHTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n\n### Two-Factor Authentication\n\nNew support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\nhttps://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n\n### Custom Emojis\n\nInstance admins can add different images as emojis which can be referenced by users when posting.\n\n### Other changes\n\n#### Progressive Web App\n\nLemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n\n**Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n\n#### Error Pages\n\nLemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n\n#### Route Changes\n\nPages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n\n```\nhttps://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n```\n\nThe new route would look like this:\n\n```\nhttps://lemmy.ml?listingType=All\n```\nNote that you now only have to specify parameters you want instead of all of them.\n\n#### Searchable select redesign\nThe searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n\n#### Share button\n\nPosts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n\n#### Lemmy-UI Overall look and feel\n\nlemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n\nSpecial thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n\n#### Database optimizations\n\nSpecial thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n\nQuery speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n\n#### Captchas\n\nCaptchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n\n## Upgrade instructions\n\nFollow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n\nIf you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n\n## Support development\n\nWe (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n\nIf you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n","creator_id":34,"community_id":2,"removed":false,"locked":false,"published":"2023-06-23T13:58:47.746304","updated":"2023-06-23T14:01:35.997494","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.ml/post/1465740","local":true,"language_id":37,"featured_community":false,"featured_local":true},"creator":{"id":34,"name":"dessalines","display_name":"Dessalines","avatar":"https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp","banned":false,"published":"2019-04-17T23:34:40.912940","updated":"2022-09-15T13:41:47.087316","actor_id":"https://lemmy.ml/u/dessalines","local":true,"banner":"https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg","deleted":false,"matrix_user_id":"@happydooby:matrix.org","admin":true,"bot_account":false,"instance_id":394},"community":{"id":2,"name":"announcements","title":"Announcements","description":"Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)","removed":false,"published":"2019-06-02T16:43:50.799554","updated":"2023-06-20T09:04:28.814065","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/announcements","local":true,"icon":"https://lemmy.ml/pictrs/image/waqyZwLAy4.webp","hidden":false,"posting_restricted_to_mods":true,"instance_id":394},"creator_banned_from_community":false,"counts":{"id":230246,"post_id":1465740,"comments":109,"score":606,"upvotes":608,"downvotes":2,"published":"2023-06-23T13:58:47.746304","newest_comment_time_necro":"2023-06-24T10:08:48.214496","newest_comment_time":"2023-06-24T10:08:48.214496","featured_community":false,"featured_local":true,"hot_rank":101,"hot_rank_active":5604},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":109},"community_view":{"community":{"id":2,"name":"announcements","title":"Announcements","description":"Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)","removed":false,"published":"2019-06-02T16:43:50.799554","updated":"2023-06-20T09:04:28.814065","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/announcements","local":true,"icon":"https://lemmy.ml/pictrs/image/waqyZwLAy4.webp","hidden":false,"posting_restricted_to_mods":true,"instance_id":394},"subscribed":"NotSubscribed","blocked":false,"counts":{"id":1297,"community_id":2,"subscribers":19984,"posts":375,"comments":3207,"published":"2019-06-02T16:43:50.799554","users_active_day":73,"users_active_week":99,"users_active_month":124,"users_active_half_year":179,"hot_rank":0}},"moderators":[{"community":{"id":2,"name":"announcements","title":"Announcements","description":"Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)","removed":false,"published":"2019-06-02T16:43:50.799554","updated":"2023-06-20T09:04:28.814065","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/announcements","local":true,"icon":"https://lemmy.ml/pictrs/image/waqyZwLAy4.webp","hidden":false,"posting_restricted_to_mods":true,"instance_id":394},"moderator":{"id":34,"name":"dessalines","display_name":"Dessalines","avatar":"https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp","banned":false,"published":"2019-04-17T23:34:40.912940","updated":"2022-09-15T13:41:47.087316","actor_id":"https://lemmy.ml/u/dessalines","local":true,"banner":"https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg","deleted":false,"matrix_user_id":"@happydooby:matrix.org","admin":true,"bot_account":false,"instance_id":394}},{"community":{"id":2,"name":"announcements","title":"Announcements","description":"Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)","removed":false,"published":"2019-06-02T16:43:50.799554","updated":"2023-06-20T09:04:28.814065","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/announcements","local":true,"icon":"https://lemmy.ml/pictrs/image/waqyZwLAy4.webp","hidden":false,"posting_restricted_to_mods":true,"instance_id":394},"moderator":{"id":8169,"name":"nutomic","avatar":"https://lemmy.ml/pictrs/image/24716431-8f92-417a-8492-06d5d3fe9fab.jpeg","banned":false,"published":"2020-01-17T01:38:22.348392","updated":"2022-09-14T09:59:20.428102","actor_id":"https://lemmy.ml/u/nutomic","bio":"Lemmy maintainer. Like programming in Rust.\n\nAlso posting at https://fedibb.ml/view_profile?u=2","local":true,"deleted":false,"admin":true,"bot_account":false,"instance_id":394}}],"cross_posts":[{"post":{"id":1469537,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ","creator_id":629726,"community_id":49771,"removed":false,"locked":false,"published":"2023-06-23T18:07:48.846002","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://beehaw.org/post/723906","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":629726,"name":"ericjmorey","banned":false,"published":"2023-06-02T06:03:44.692840","actor_id":"https://beehaw.org/u/ericjmorey","local":false,"deleted":false,"admin":false,"bot_account":false,"instance_id":1520},"community":{"id":49771,"name":"foss","title":"Free and Open Source Software","description":"If it's free and open source and it's also software, it can be discussed here. Subcommunity of [Technology](https://beehaw.org/c/technology).\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).","removed":false,"published":"2022-09-02T16:49:00.964477","updated":"2023-06-15T17:26:25.768075","deleted":false,"nsfw":false,"actor_id":"https://beehaw.org/c/foss","local":false,"icon":"https://beehaw.org/pictrs/image/1be75b15-2f18-429d-acf7-dcea8e512a4b.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":1520},"creator_banned_from_community":false,"counts":{"id":231455,"post_id":1469537,"comments":11,"score":42,"upvotes":43,"downvotes":1,"published":"2023-06-23T18:07:48.846002","newest_comment_time_necro":"2023-06-24T02:01:09.770156","newest_comment_time":"2023-06-24T02:01:09.770156","featured_community":false,"featured_local":false,"hot_rank":86,"hot_rank_active":237},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":11},{"post":{"id":1467679,"name":"Lemmy v0.18.0 Release – tchncs has been updated","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"Crossposted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ","creator_id":628005,"community_id":85043,"removed":false,"locked":false,"published":"2023-06-23T16:09:39.034126","updated":"2023-06-23T16:10:17.232240","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://discuss.tchncs.de/post/256266","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":628005,"name":"milan","display_name":"Milan","avatar":"https://discuss.tchncs.de/pictrs/image/5bea8d5d-fa3b-4f84-a2ed-9f8e390b5478.jpeg","banned":false,"published":"2023-06-01T19:49:12.233431","actor_id":"https://discuss.tchncs.de/u/milan","bio":"Your friendly tchncs.de admin","local":false,"banner":"https://discuss.tchncs.de/pictrs/image/cfcc25a3-72dd-434a-af5a-0f9babd6dc3b.jpeg","deleted":false,"matrix_user_id":"@Milan:tchncs.de","admin":false,"bot_account":false,"instance_id":136752},"community":{"id":85043,"name":"tchncs","title":"..:: tchncs ::..","description":"Your friendly https://tchncs.de community! Discuss whats happening in the tchncs world and/or just use it as a community forum.\n\nGerman and english allowed.\n\nIf you are looking for a way to support tchncs, please check out https://tchncs.de/donate\n****","removed":false,"published":"2023-06-01T19:53:14.608676","updated":"2023-06-02T18:08:06.962976","deleted":false,"nsfw":false,"actor_id":"https://discuss.tchncs.de/c/tchncs","local":false,"icon":"https://discuss.tchncs.de/pictrs/image/cd599a51-9de5-467d-aec2-c5a090b919b6.png","banner":"https://discuss.tchncs.de/pictrs/image/21f3bb06-22a5-4f4f-b8d5-8b377ce49715.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":136752},"creator_banned_from_community":false,"counts":{"id":230905,"post_id":1467679,"comments":16,"score":86,"upvotes":86,"downvotes":0,"published":"2023-06-23T16:09:39.034126","newest_comment_time_necro":"2023-06-24T10:27:02.263606","newest_comment_time":"2023-06-24T10:27:02.263606","featured_community":false,"featured_local":false,"hot_rank":85,"hot_rank_active":4973},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":16},{"post":{"id":1465742,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","creator_id":34,"community_id":15016,"removed":false,"locked":false,"published":"2023-06-23T13:59:21.783691","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.ml/post/1465742","local":true,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":34,"name":"dessalines","display_name":"Dessalines","avatar":"https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp","banned":false,"published":"2019-04-17T23:34:40.912940","updated":"2022-09-15T13:41:47.087316","actor_id":"https://lemmy.ml/u/dessalines","local":true,"banner":"https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg","deleted":false,"matrix_user_id":"@happydooby:matrix.org","admin":true,"bot_account":false,"instance_id":394},"community":{"id":15016,"name":"lemmy","title":"Lemmy","description":"Everything about Lemmy; bugs, gripes, praises, and advocacy.\n\nFor discussion about the lemmy.ml instance, go to [!meta@lemmy.ml](https://lemmy.ml/c/meta).","removed":false,"published":"2020-03-16T13:55:00.695055","updated":"2023-03-30T15:18:12.792099","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/lemmy","local":true,"hidden":false,"posting_restricted_to_mods":false,"instance_id":394},"creator_banned_from_community":false,"counts":{"id":230248,"post_id":1465742,"comments":54,"score":184,"upvotes":184,"downvotes":0,"published":"2023-06-23T13:59:21.783691","newest_comment_time_necro":"2023-06-24T10:28:51.811543","newest_comment_time":"2023-06-24T10:28:51.811543","featured_community":false,"featured_local":false,"hot_rank":83,"hot_rank_active":5963},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":54},{"post":{"id":1472982,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ","creator_id":748787,"community_id":96975,"removed":false,"locked":false,"published":"2023-06-23T21:48:30.093841","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.sdf.org/post/253225","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":748787,"name":"randombit","banned":false,"published":"2023-06-14T11:52:06.216152","actor_id":"https://lemmy.sdf.org/u/randombit","bio":"Formerly [@RandomBit@sh.itjust.works](https://sh.itjust.works/u/RandomBit)","local":false,"deleted":false,"admin":false,"bot_account":false,"instance_id":137017},"community":{"id":96975,"name":"sdfpubnix","title":"sdfpubnix","description":"A hangout for members of the SDF Public Access UNIX System","removed":false,"published":"2023-06-06T20:51:57.981858","updated":"2023-06-06T20:59:43.091698","deleted":false,"nsfw":false,"actor_id":"https://lemmy.sdf.org/c/sdfpubnix","local":false,"icon":"https://lemmy.sdf.org/pictrs/image/8f4b88d6-dde1-4060-bc8b-8b0e961c2085.png","banner":"https://lemmy.sdf.org/pictrs/image/13964425-57a8-4fb7-a300-0504c72a176f.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":137017},"creator_banned_from_community":false,"counts":{"id":232088,"post_id":1472982,"comments":2,"score":8,"upvotes":8,"downvotes":0,"published":"2023-06-23T21:48:30.093841","newest_comment_time_necro":"2023-06-24T06:36:13.218034","newest_comment_time":"2023-06-24T06:36:13.218034","featured_community":false,"featured_local":false,"hot_rank":81,"hot_rank_active":416},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":2},{"post":{"id":1469473,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ","creator_id":635056,"community_id":87689,"removed":false,"locked":false,"published":"2023-06-23T18:03:54.910272","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.world/post/477487","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":635056,"name":"ericjmorey","banned":false,"published":"2023-06-02T18:41:09.905246","actor_id":"https://lemmy.world/u/ericjmorey","bio":"I created a space for people to make connections and learn from each other. I call it Grok.Town and plan to start up a Lemmy instance at that domain, but for now it's a space on Matrix with a few rooms to chat and get to know one another. Check it out @ https://matrix.to/#/#groktown:matrix.org","local":false,"deleted":false,"admin":false,"bot_account":false,"instance_id":136816},"community":{"id":87689,"name":"selfhosted","title":"Selfhosted","description":"A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.\n\nResources: \n* [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n* [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n* [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n\n> Any issues on the community? Report it using the report flag.\n\n> Questions? DM the mods!","removed":false,"published":"2023-06-05T11:23:43.291224","updated":"2023-06-12T13:21:50.819782","deleted":false,"nsfw":false,"actor_id":"https://lemmy.world/c/selfhosted","local":false,"icon":"https://lemmy.world/pictrs/image/8286e071-7449-4413-a084-1eb5242e2cf4.png","banner":"https://lemmy.world/pictrs/image/9111ecb9-344c-4836-bbda-a87c27f3bdb9.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":136816},"creator_banned_from_community":false,"counts":{"id":231440,"post_id":1469473,"comments":4,"score":19,"upvotes":19,"downvotes":0,"published":"2023-06-23T18:03:54.910272","newest_comment_time_necro":"2023-06-23T21:07:31.324676","newest_comment_time":"2023-06-23T18:35:48.816183","featured_community":false,"featured_local":false,"hot_rank":70,"hot_rank_active":97},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":4},{"post":{"id":1466251,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","creator_id":638516,"community_id":33582,"removed":false,"locked":false,"published":"2023-06-23T14:31:26.043197","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.ml/post/1466251","local":true,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":638516,"name":"ColonelPanic","banned":false,"published":"2023-06-04T14:11:18.837539","actor_id":"https://lemmy.ml/u/ColonelPanic","local":true,"deleted":false,"admin":false,"bot_account":false,"instance_id":394},"community":{"id":33582,"name":"technology","title":"Technology","description":"Rumors, happenings, and innovations in the technology sphere. If it's technological news, it probably belongs here.\n\nSubcommunities on Beehaw:\n- [Free and Open Source Software](https://beehaw.org/c/foss)\n- [Programming](https://beehaw.org/c/programming)\n- [Operating Systems](https://beehaw.org/c/operating_systems)\n\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).","removed":false,"published":"2022-01-28T13:11:37.712220","updated":"2023-06-15T16:57:12.295243","deleted":false,"nsfw":false,"actor_id":"https://beehaw.org/c/technology","local":false,"icon":"https://beehaw.org/pictrs/image/c0e83ceb-b7e5-41b4-9b76-bfd152dd8d00.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":1520},"creator_banned_from_community":false,"counts":{"id":230412,"post_id":1466251,"comments":4,"score":42,"upvotes":42,"downvotes":0,"published":"2023-06-23T14:31:26.043197","newest_comment_time_necro":"2023-06-23T18:23:30.945458","newest_comment_time":"2023-06-23T18:23:30.945458","featured_community":false,"featured_local":false,"hot_rank":63,"hot_rank_active":89},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":4},{"post":{"id":1467781,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"Would be great to get upgraded soon! Lots of UI improvements.","creator_id":634658,"community_id":45703,"removed":false,"locked":false,"published":"2023-06-23T16:25:00.584014","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://beehaw.org/post/722299","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":634658,"name":"jay","display_name":"Jay","avatar":"https://beehaw.org/pictrs/image/c30633d1-487d-4380-95b7-272e892d8c1d.png","banned":false,"published":"2023-06-03T10:42:30.670028","actor_id":"https://beehaw.org/u/jay","bio":"[@jsit@social.coop](https://social.coop/@jsit)","local":false,"banner":"https://beehaw.org/pictrs/image/db248a37-508f-4ddf-a283-3a064813294d.jpeg","deleted":false,"matrix_user_id":"@jsit:matrix.org","admin":false,"bot_account":false,"instance_id":1520},"community":{"id":45703,"name":"support","title":"Beehaw Support","description":"Support and meta community for Beehaw. Ask your questions about the community, technical issues, and other such things here.\n\nA brief FAQ for lurkers and new users can be found [here](https://docs.beehaw.org/docs/faq/).\n\nOur [June 2023 financial update is here](https://beehaw.org/post/428209).\n\nFor a refresher on our philosophy, see also [What is Beehaw?](https://docs.beehaw.org/docs/core-principles/what-is-beehaw/), [The spirit of the rules](https://docs.beehaw.org/docs/core-principles/the-spirit-of-beehaw/), and [Beehaw is a Community](https://docs.beehaw.org/docs/core-principles/beehaw-is-a-community/)\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).","removed":false,"published":"2022-01-28T12:49:35.450320","updated":"2023-06-20T22:03:41.412607","deleted":false,"nsfw":false,"actor_id":"https://beehaw.org/c/support","local":false,"icon":"https://beehaw.org/pictrs/image/b101eefc-9ec4-4c03-8913-78a4ebacd206.png","banner":"https://beehaw.org/pictrs/image/439dfc09-d740-4a9c-a03e-a41d627d342b.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":1520},"creator_banned_from_community":false,"counts":{"id":230984,"post_id":1467781,"comments":12,"score":22,"upvotes":22,"downvotes":0,"published":"2023-06-23T16:25:00.584014","newest_comment_time_necro":"2023-06-23T23:58:34.647589","newest_comment_time":"2023-06-23T23:58:34.647589","featured_community":false,"featured_local":false,"hot_rank":62,"hot_rank_active":146},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":12},{"post":{"id":1470059,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"cross-posted from: https://beehaw.org/post/723906\n\n> cross-posted from: https://lemmy.ml/post/1465740\n> \n> > ## What is Lemmy?\n> > \n> > Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> > \n> > ## Major Changes\n> > \n> > ### HTTP API instead of Websocket\n> > \n> > Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> > \n> > HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> > \n> > ### Two-Factor Authentication\n> > \n> > New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> > https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> > \n> > ### Custom Emojis\n> > \n> > Instance admins can add different images as emojis which can be referenced by users when posting.\n> > \n> > ### Other changes\n> > \n> > #### Progressive Web App\n> > \n> > Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> > \n> > **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> > \n> > #### Error Pages\n> > \n> > Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> > \n> > #### Route Changes\n> > \n> > Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> > \n> > ```\n> > https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> > ```\n> > \n> > The new route would look like this:\n> > \n> > ```\n> > https://lemmy.ml?listingType=All\n> > ```\n> > Note that you now only have to specify parameters you want instead of all of them.\n> > \n> > #### Searchable select redesign\n> > The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> > \n> > #### Share button\n> > \n> > Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> > \n> > #### Lemmy-UI Overall look and feel\n> > \n> > lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> > \n> > Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> > \n> > #### Database optimizations\n> > \n> > Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> > \n> > Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> > \n> > #### Captchas\n> > \n> > Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> > \n> > ## Upgrade instructions\n> > \n> > Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> > \n> > If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> > \n> > ## Support development\n> > \n> > We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> > \n> > If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> > ","creator_id":724565,"community_id":94575,"removed":false,"locked":false,"published":"2023-06-23T19:09:41.189030","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.linuxuserspace.show/post/4758","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":724565,"name":"monetaryabyss","display_name":"Dan Simmons","avatar":"https://lemmy.linuxuserspace.show/pictrs/image/5bdf55d7-bf7a-41e2-acfa-04fb138e2448.png","banned":false,"published":"2023-06-13T01:36:22.522336","actor_id":"https://lemmy.linuxuserspace.show/u/monetaryabyss","bio":"LUS Host","local":false,"deleted":false,"matrix_user_id":"@kc2bez:matrix.org","admin":false,"bot_account":false,"instance_id":137704},"community":{"id":94575,"name":"news","title":"Linux, Open Source and Tech News","description":"This is where all the News about all the things Linux and Linux adjacent goes.","removed":false,"published":"2023-06-13T18:37:21.585477","deleted":false,"nsfw":false,"actor_id":"https://lemmy.linuxuserspace.show/c/news","local":false,"icon":"https://lemmy.linuxuserspace.show/pictrs/image/64541d2a-1873-4648-a492-adf034b5e3e8.png","banner":"https://lemmy.linuxuserspace.show/pictrs/image/4fcb1175-d8f9-47e1-a849-a516d36b6549.png","hidden":false,"posting_restricted_to_mods":false,"instance_id":137704},"creator_banned_from_community":false,"counts":{"id":231574,"post_id":1470059,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-06-23T19:09:41.189030","newest_comment_time_necro":"2023-06-23T19:09:41.189030","newest_comment_time":"2023-06-23T19:09:41.189030","featured_community":false,"featured_local":false,"hot_rank":35,"hot_rank_active":35},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":0},{"post":{"id":1466143,"name":"Lemmy v0.18.0 Release","url":"https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0","body":"cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ","creator_id":699011,"community_id":87926,"removed":false,"locked":false,"published":"2023-06-23T14:27:23.790681","deleted":false,"nsfw":false,"embed_title":"News","ap_id":"https://lemmy.world/post/469356","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":699011,"name":"PancitCantot","display_name":"Pancit Canton","avatar":"https://lemmy.world/pictrs/image/8a7e141f-72d9-4938-8db0-13e3da8b0f04.png","banned":false,"published":"2023-06-12T05:26:03.978663","actor_id":"https://lemmy.world/u/PancitCantot","bio":"In 1991, Lucky Me! introduced the first dry stir-fry pouched noodles in the Philippine market, called Lucky Me! Pancit Canton. Lucky Me! Pancit Canton is arguably the country's most popular pouched noodles sold in the Philippine market.\n\nThis is an **unofficial** Lemmy account, so don't get fooled. ","local":false,"banner":"https://lemmy.world/pictrs/image/81dae25a-0076-4993-bfc6-d740aa5fa7f2.jpeg","deleted":false,"admin":false,"bot_account":false,"instance_id":136816},"community":{"id":87926,"name":"philippines","title":"Philippines","description":"***A community for the Philippines and all things Filipino!***\n\n![Image](https://i.imgur.com/UZES4iw.jpg)\n\n# Rules\n\n1. Follow [Code of Conduct](https://mastodon.world/about)\n2. Posts should be PH relevant\n3. No flaming or name-calling\n4. No editorialized titles\n5. Use screenshots for FB posts\n6. Censor personal information\n7. No pornography\n8. Go to [thevisoria](https://lemmy.world/c/thevisoria) for classifieds\n9. Tag spoilers\n10. Provide sources for any claims\n11. No reposts\n12. Use [Teddit](https://teddit.net/) for Reddit links\n\n# PH Fediverse\n\n* [thevisoria](https://lemmy.world/c/thevisoria)\n\n# Credits\n\n* Banner by [Jeriel Jan del Prado](https://unsplash.com/photos/0RAHb5oWwbA)\n* Daily pixel art by [adroitcell](https://www.instagram.com/adroitcell.pxl/)\n","removed":false,"published":"2023-06-09T10:56:24.159941","updated":"2023-06-24T06:13:42.647855","deleted":false,"nsfw":false,"actor_id":"https://lemmy.world/c/philippines","local":false,"icon":"https://lemmy.world/pictrs/image/064ea535-8d40-4a92-ac87-72bbed187213.png","banner":"https://lemmy.world/pictrs/image/cc2de825-5eab-41df-af43-e48f4134fb91.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":136816},"creator_banned_from_community":false,"counts":{"id":230391,"post_id":1466143,"comments":10,"score":3,"upvotes":3,"downvotes":0,"published":"2023-06-23T14:27:23.790681","newest_comment_time_necro":"2023-06-24T07:00:44.986806","newest_comment_time":"2023-06-24T07:00:44.986806","featured_community":false,"featured_local":false,"hot_rank":29,"hot_rank_active":353},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"unread_comments":10}]} \ No newline at end of file +{ + "post_view": { + "post": { + "id": 1465740, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "## What is Lemmy?\n\nLemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n\n## Major Changes\n\n### HTTP API instead of Websocket\n\nUntil now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n\nHTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n\n### Two-Factor Authentication\n\nNew support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\nhttps://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n\n### Custom Emojis\n\nInstance admins can add different images as emojis which can be referenced by users when posting.\n\n### Other changes\n\n#### Progressive Web App\n\nLemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n\n**Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n\n#### Error Pages\n\nLemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n\n#### Route Changes\n\nPages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n\n```\nhttps://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n```\n\nThe new route would look like this:\n\n```\nhttps://lemmy.ml?listingType=All\n```\nNote that you now only have to specify parameters you want instead of all of them.\n\n#### Searchable select redesign\nThe searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n\n#### Share button\n\nPosts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n\n#### Lemmy-UI Overall look and feel\n\nlemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n\nSpecial thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n\n#### Database optimizations\n\nSpecial thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n\nQuery speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n\n#### Captchas\n\nCaptchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n\n## Upgrade instructions\n\nFollow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n\nIf you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n\n## Support development\n\nWe (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n\nIf you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n", + "creator_id": 34, + "community_id": 2, + "removed": false, + "locked": false, + "published": "2023-06-23T13:58:47.746304", + "updated": "2023-06-23T14:01:35.997494", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.ml/post/1465740", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": true + }, + "creator": { + "id": 34, + "name": "dessalines", + "display_name": "Dessalines", + "avatar": "https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp", + "banned": false, + "published": "2019-04-17T23:34:40.912940", + "updated": "2022-09-15T13:41:47.087316", + "actor_id": "https://lemmy.ml/u/dessalines", + "local": true, + "banner": "https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg", + "deleted": false, + "matrix_user_id": "@happydooby:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 394 + }, + "community": { + "id": 2, + "name": "announcements", + "title": "Announcements", + "description": "Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)", + "removed": false, + "published": "2019-06-02T16:43:50.799554", + "updated": "2023-06-20T09:04:28.814065", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/announcements", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/waqyZwLAy4.webp", + "hidden": false, + "posting_restricted_to_mods": true, + "instance_id": 394 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230246, + "post_id": 1465740, + "comments": 109, + "score": 606, + "upvotes": 608, + "downvotes": 2, + "published": "2023-06-23T13:58:47.746304", + "newest_comment_time_necro": "2023-06-24T10:08:48.214496", + "newest_comment_time": "2023-06-24T10:08:48.214496", + "featured_community": false, + "featured_local": true, + "hot_rank": 101, + "hot_rank_active": 5604 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 109 + }, + "community_view": { + "community": { + "id": 2, + "name": "announcements", + "title": "Announcements", + "description": "Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)", + "removed": false, + "published": "2019-06-02T16:43:50.799554", + "updated": "2023-06-20T09:04:28.814065", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/announcements", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/waqyZwLAy4.webp", + "hidden": false, + "posting_restricted_to_mods": true, + "instance_id": 394 + }, + "subscribed": "NotSubscribed", + "blocked": false, + "counts": { + "id": 1297, + "community_id": 2, + "subscribers": 19984, + "posts": 375, + "comments": 3207, + "published": "2019-06-02T16:43:50.799554", + "users_active_day": 73, + "users_active_week": 99, + "users_active_month": 124, + "users_active_half_year": 179, + "hot_rank": 0 + } + }, + "moderators": [ + { + "community": { + "id": 2, + "name": "announcements", + "title": "Announcements", + "description": "Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)", + "removed": false, + "published": "2019-06-02T16:43:50.799554", + "updated": "2023-06-20T09:04:28.814065", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/announcements", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/waqyZwLAy4.webp", + "hidden": false, + "posting_restricted_to_mods": true, + "instance_id": 394 + }, + "moderator": { + "id": 34, + "name": "dessalines", + "display_name": "Dessalines", + "avatar": "https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp", + "banned": false, + "published": "2019-04-17T23:34:40.912940", + "updated": "2022-09-15T13:41:47.087316", + "actor_id": "https://lemmy.ml/u/dessalines", + "local": true, + "banner": "https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg", + "deleted": false, + "matrix_user_id": "@happydooby:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 394 + } + }, + { + "community": { + "id": 2, + "name": "announcements", + "title": "Announcements", + "description": "Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.\n\nYou can also find major news on [join-lemmy.org](https://join-lemmy.org/news)", + "removed": false, + "published": "2019-06-02T16:43:50.799554", + "updated": "2023-06-20T09:04:28.814065", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/announcements", + "local": true, + "icon": "https://lemmy.ml/pictrs/image/waqyZwLAy4.webp", + "hidden": false, + "posting_restricted_to_mods": true, + "instance_id": 394 + }, + "moderator": { + "id": 8169, + "name": "nutomic", + "avatar": "https://lemmy.ml/pictrs/image/24716431-8f92-417a-8492-06d5d3fe9fab.jpeg", + "banned": false, + "published": "2020-01-17T01:38:22.348392", + "updated": "2022-09-14T09:59:20.428102", + "actor_id": "https://lemmy.ml/u/nutomic", + "bio": "Lemmy maintainer. Like programming in Rust.\n\nAlso posting at https://fedibb.ml/view_profile?u=2", + "local": true, + "deleted": false, + "admin": true, + "bot_account": false, + "instance_id": 394 + } + } + ], + "cross_posts": [ + { + "post": { + "id": 1469537, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ", + "creator_id": 629726, + "community_id": 49771, + "removed": false, + "locked": false, + "published": "2023-06-23T18:07:48.846002", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://beehaw.org/post/723906", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 629726, + "name": "ericjmorey", + "banned": false, + "published": "2023-06-02T06:03:44.692840", + "actor_id": "https://beehaw.org/u/ericjmorey", + "local": false, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 1520 + }, + "community": { + "id": 49771, + "name": "foss", + "title": "Free and Open Source Software", + "description": "If it's free and open source and it's also software, it can be discussed here. Subcommunity of [Technology](https://beehaw.org/c/technology).\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).", + "removed": false, + "published": "2022-09-02T16:49:00.964477", + "updated": "2023-06-15T17:26:25.768075", + "deleted": false, + "nsfw": false, + "actor_id": "https://beehaw.org/c/foss", + "local": false, + "icon": "https://beehaw.org/pictrs/image/1be75b15-2f18-429d-acf7-dcea8e512a4b.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1520 + }, + "creator_banned_from_community": false, + "counts": { + "id": 231455, + "post_id": 1469537, + "comments": 11, + "score": 42, + "upvotes": 43, + "downvotes": 1, + "published": "2023-06-23T18:07:48.846002", + "newest_comment_time_necro": "2023-06-24T02:01:09.770156", + "newest_comment_time": "2023-06-24T02:01:09.770156", + "featured_community": false, + "featured_local": false, + "hot_rank": 86, + "hot_rank_active": 237 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 11 + }, + { + "post": { + "id": 1467679, + "name": "Lemmy v0.18.0 Release – tchncs has been updated", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "Crossposted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ", + "creator_id": 628005, + "community_id": 85043, + "removed": false, + "locked": false, + "published": "2023-06-23T16:09:39.034126", + "updated": "2023-06-23T16:10:17.232240", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://discuss.tchncs.de/post/256266", + "local": false, + "language_id": 0, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 628005, + "name": "milan", + "display_name": "Milan", + "avatar": "https://discuss.tchncs.de/pictrs/image/5bea8d5d-fa3b-4f84-a2ed-9f8e390b5478.jpeg", + "banned": false, + "published": "2023-06-01T19:49:12.233431", + "actor_id": "https://discuss.tchncs.de/u/milan", + "bio": "Your friendly tchncs.de admin", + "local": false, + "banner": "https://discuss.tchncs.de/pictrs/image/cfcc25a3-72dd-434a-af5a-0f9babd6dc3b.jpeg", + "deleted": false, + "matrix_user_id": "@Milan:tchncs.de", + "admin": false, + "bot_account": false, + "instance_id": 136752 + }, + "community": { + "id": 85043, + "name": "tchncs", + "title": "..:: tchncs ::..", + "description": "Your friendly https://tchncs.de community! Discuss whats happening in the tchncs world and/or just use it as a community forum.\n\nGerman and english allowed.\n\nIf you are looking for a way to support tchncs, please check out https://tchncs.de/donate\n****", + "removed": false, + "published": "2023-06-01T19:53:14.608676", + "updated": "2023-06-02T18:08:06.962976", + "deleted": false, + "nsfw": false, + "actor_id": "https://discuss.tchncs.de/c/tchncs", + "local": false, + "icon": "https://discuss.tchncs.de/pictrs/image/cd599a51-9de5-467d-aec2-c5a090b919b6.png", + "banner": "https://discuss.tchncs.de/pictrs/image/21f3bb06-22a5-4f4f-b8d5-8b377ce49715.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 136752 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230905, + "post_id": 1467679, + "comments": 16, + "score": 86, + "upvotes": 86, + "downvotes": 0, + "published": "2023-06-23T16:09:39.034126", + "newest_comment_time_necro": "2023-06-24T10:27:02.263606", + "newest_comment_time": "2023-06-24T10:27:02.263606", + "featured_community": false, + "featured_local": false, + "hot_rank": 85, + "hot_rank_active": 4973 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 16 + }, + { + "post": { + "id": 1465742, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "creator_id": 34, + "community_id": 15016, + "removed": false, + "locked": false, + "published": "2023-06-23T13:59:21.783691", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.ml/post/1465742", + "local": true, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 34, + "name": "dessalines", + "display_name": "Dessalines", + "avatar": "https://lemmy.ml/pictrs/image/fac94410-decc-4d55-be6d-648a3bd67aa9.webp", + "banned": false, + "published": "2019-04-17T23:34:40.912940", + "updated": "2022-09-15T13:41:47.087316", + "actor_id": "https://lemmy.ml/u/dessalines", + "local": true, + "banner": "https://lemmy.ml/pictrs/image/d69b9c2a-c1db-4483-ba34-349561a290b5.jpeg", + "deleted": false, + "matrix_user_id": "@happydooby:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 394 + }, + "community": { + "id": 15016, + "name": "lemmy", + "title": "Lemmy", + "description": "Everything about Lemmy; bugs, gripes, praises, and advocacy.\n\nFor discussion about the lemmy.ml instance, go to [!meta@lemmy.ml](https://lemmy.ml/c/meta).", + "removed": false, + "published": "2020-03-16T13:55:00.695055", + "updated": "2023-03-30T15:18:12.792099", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.ml/c/lemmy", + "local": true, + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 394 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230248, + "post_id": 1465742, + "comments": 54, + "score": 184, + "upvotes": 184, + "downvotes": 0, + "published": "2023-06-23T13:59:21.783691", + "newest_comment_time_necro": "2023-06-24T10:28:51.811543", + "newest_comment_time": "2023-06-24T10:28:51.811543", + "featured_community": false, + "featured_local": false, + "hot_rank": 83, + "hot_rank_active": 5963 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 54 + }, + { + "post": { + "id": 1472982, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ", + "creator_id": 748787, + "community_id": 96975, + "removed": false, + "locked": false, + "published": "2023-06-23T21:48:30.093841", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.sdf.org/post/253225", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 748787, + "name": "randombit", + "banned": false, + "published": "2023-06-14T11:52:06.216152", + "actor_id": "https://lemmy.sdf.org/u/randombit", + "bio": "Formerly [@RandomBit@sh.itjust.works](https://sh.itjust.works/u/RandomBit)", + "local": false, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 137017 + }, + "community": { + "id": 96975, + "name": "sdfpubnix", + "title": "sdfpubnix", + "description": "A hangout for members of the SDF Public Access UNIX System", + "removed": false, + "published": "2023-06-06T20:51:57.981858", + "updated": "2023-06-06T20:59:43.091698", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.sdf.org/c/sdfpubnix", + "local": false, + "icon": "https://lemmy.sdf.org/pictrs/image/8f4b88d6-dde1-4060-bc8b-8b0e961c2085.png", + "banner": "https://lemmy.sdf.org/pictrs/image/13964425-57a8-4fb7-a300-0504c72a176f.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 137017 + }, + "creator_banned_from_community": false, + "counts": { + "id": 232088, + "post_id": 1472982, + "comments": 2, + "score": 8, + "upvotes": 8, + "downvotes": 0, + "published": "2023-06-23T21:48:30.093841", + "newest_comment_time_necro": "2023-06-24T06:36:13.218034", + "newest_comment_time": "2023-06-24T06:36:13.218034", + "featured_community": false, + "featured_local": false, + "hot_rank": 81, + "hot_rank_active": 416 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 2 + }, + { + "post": { + "id": 1469473, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ", + "creator_id": 635056, + "community_id": 87689, + "removed": false, + "locked": false, + "published": "2023-06-23T18:03:54.910272", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.world/post/477487", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 635056, + "name": "ericjmorey", + "banned": false, + "published": "2023-06-02T18:41:09.905246", + "actor_id": "https://lemmy.world/u/ericjmorey", + "bio": "I created a space for people to make connections and learn from each other. I call it Grok.Town and plan to start up a Lemmy instance at that domain, but for now it's a space on Matrix with a few rooms to chat and get to know one another. Check it out @ https://matrix.to/#/#groktown:matrix.org", + "local": false, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 136816 + }, + "community": { + "id": 87689, + "name": "selfhosted", + "title": "Selfhosted", + "description": "A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.\n\nResources: \n* [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n* [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n* [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n\n> Any issues on the community? Report it using the report flag.\n\n> Questions? DM the mods!", + "removed": false, + "published": "2023-06-05T11:23:43.291224", + "updated": "2023-06-12T13:21:50.819782", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.world/c/selfhosted", + "local": false, + "icon": "https://lemmy.world/pictrs/image/8286e071-7449-4413-a084-1eb5242e2cf4.png", + "banner": "https://lemmy.world/pictrs/image/9111ecb9-344c-4836-bbda-a87c27f3bdb9.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 136816 + }, + "creator_banned_from_community": false, + "counts": { + "id": 231440, + "post_id": 1469473, + "comments": 4, + "score": 19, + "upvotes": 19, + "downvotes": 0, + "published": "2023-06-23T18:03:54.910272", + "newest_comment_time_necro": "2023-06-23T21:07:31.324676", + "newest_comment_time": "2023-06-23T18:35:48.816183", + "featured_community": false, + "featured_local": false, + "hot_rank": 70, + "hot_rank_active": 97 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 4 + }, + { + "post": { + "id": 1466251, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "creator_id": 638516, + "community_id": 33582, + "removed": false, + "locked": false, + "published": "2023-06-23T14:31:26.043197", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.ml/post/1466251", + "local": true, + "language_id": 0, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 638516, + "name": "ColonelPanic", + "banned": false, + "published": "2023-06-04T14:11:18.837539", + "actor_id": "https://lemmy.ml/u/ColonelPanic", + "local": true, + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 394 + }, + "community": { + "id": 33582, + "name": "technology", + "title": "Technology", + "description": "Rumors, happenings, and innovations in the technology sphere. If it's technological news, it probably belongs here.\n\nSubcommunities on Beehaw:\n- [Free and Open Source Software](https://beehaw.org/c/foss)\n- [Programming](https://beehaw.org/c/programming)\n- [Operating Systems](https://beehaw.org/c/operating_systems)\n\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).", + "removed": false, + "published": "2022-01-28T13:11:37.712220", + "updated": "2023-06-15T16:57:12.295243", + "deleted": false, + "nsfw": false, + "actor_id": "https://beehaw.org/c/technology", + "local": false, + "icon": "https://beehaw.org/pictrs/image/c0e83ceb-b7e5-41b4-9b76-bfd152dd8d00.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1520 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230412, + "post_id": 1466251, + "comments": 4, + "score": 42, + "upvotes": 42, + "downvotes": 0, + "published": "2023-06-23T14:31:26.043197", + "newest_comment_time_necro": "2023-06-23T18:23:30.945458", + "newest_comment_time": "2023-06-23T18:23:30.945458", + "featured_community": false, + "featured_local": false, + "hot_rank": 63, + "hot_rank_active": 89 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 4 + }, + { + "post": { + "id": 1467781, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "Would be great to get upgraded soon! Lots of UI improvements.", + "creator_id": 634658, + "community_id": 45703, + "removed": false, + "locked": false, + "published": "2023-06-23T16:25:00.584014", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://beehaw.org/post/722299", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 634658, + "name": "jay", + "display_name": "Jay", + "avatar": "https://beehaw.org/pictrs/image/c30633d1-487d-4380-95b7-272e892d8c1d.png", + "banned": false, + "published": "2023-06-03T10:42:30.670028", + "actor_id": "https://beehaw.org/u/jay", + "bio": "[@jsit@social.coop](https://social.coop/@jsit)", + "local": false, + "banner": "https://beehaw.org/pictrs/image/db248a37-508f-4ddf-a283-3a064813294d.jpeg", + "deleted": false, + "matrix_user_id": "@jsit:matrix.org", + "admin": false, + "bot_account": false, + "instance_id": 1520 + }, + "community": { + "id": 45703, + "name": "support", + "title": "Beehaw Support", + "description": "Support and meta community for Beehaw. Ask your questions about the community, technical issues, and other such things here.\n\nA brief FAQ for lurkers and new users can be found [here](https://docs.beehaw.org/docs/faq/).\n\nOur [June 2023 financial update is here](https://beehaw.org/post/428209).\n\nFor a refresher on our philosophy, see also [What is Beehaw?](https://docs.beehaw.org/docs/core-principles/what-is-beehaw/), [The spirit of the rules](https://docs.beehaw.org/docs/core-principles/the-spirit-of-beehaw/), and [Beehaw is a Community](https://docs.beehaw.org/docs/core-principles/beehaw-is-a-community/)\n\n---\n\nThis community's icon was made by Aaron Schneider, under the [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/).", + "removed": false, + "published": "2022-01-28T12:49:35.450320", + "updated": "2023-06-20T22:03:41.412607", + "deleted": false, + "nsfw": false, + "actor_id": "https://beehaw.org/c/support", + "local": false, + "icon": "https://beehaw.org/pictrs/image/b101eefc-9ec4-4c03-8913-78a4ebacd206.png", + "banner": "https://beehaw.org/pictrs/image/439dfc09-d740-4a9c-a03e-a41d627d342b.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 1520 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230984, + "post_id": 1467781, + "comments": 12, + "score": 22, + "upvotes": 22, + "downvotes": 0, + "published": "2023-06-23T16:25:00.584014", + "newest_comment_time_necro": "2023-06-23T23:58:34.647589", + "newest_comment_time": "2023-06-23T23:58:34.647589", + "featured_community": false, + "featured_local": false, + "hot_rank": 62, + "hot_rank_active": 146 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 12 + }, + { + "post": { + "id": 1470059, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "cross-posted from: https://beehaw.org/post/723906\n\n> cross-posted from: https://lemmy.ml/post/1465740\n> \n> > ## What is Lemmy?\n> > \n> > Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> > \n> > ## Major Changes\n> > \n> > ### HTTP API instead of Websocket\n> > \n> > Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> > \n> > HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> > \n> > ### Two-Factor Authentication\n> > \n> > New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> > https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> > \n> > ### Custom Emojis\n> > \n> > Instance admins can add different images as emojis which can be referenced by users when posting.\n> > \n> > ### Other changes\n> > \n> > #### Progressive Web App\n> > \n> > Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> > \n> > **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> > \n> > #### Error Pages\n> > \n> > Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> > \n> > #### Route Changes\n> > \n> > Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> > \n> > ```\n> > https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> > ```\n> > \n> > The new route would look like this:\n> > \n> > ```\n> > https://lemmy.ml?listingType=All\n> > ```\n> > Note that you now only have to specify parameters you want instead of all of them.\n> > \n> > #### Searchable select redesign\n> > The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> > \n> > #### Share button\n> > \n> > Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> > \n> > #### Lemmy-UI Overall look and feel\n> > \n> > lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> > \n> > Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> > \n> > #### Database optimizations\n> > \n> > Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> > \n> > Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> > \n> > #### Captchas\n> > \n> > Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> > \n> > ## Upgrade instructions\n> > \n> > Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> > \n> > If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> > \n> > ## Support development\n> > \n> > We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> > \n> > If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> > ", + "creator_id": 724565, + "community_id": 94575, + "removed": false, + "locked": false, + "published": "2023-06-23T19:09:41.189030", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.linuxuserspace.show/post/4758", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 724565, + "name": "monetaryabyss", + "display_name": "Dan Simmons", + "avatar": "https://lemmy.linuxuserspace.show/pictrs/image/5bdf55d7-bf7a-41e2-acfa-04fb138e2448.png", + "banned": false, + "published": "2023-06-13T01:36:22.522336", + "actor_id": "https://lemmy.linuxuserspace.show/u/monetaryabyss", + "bio": "LUS Host", + "local": false, + "deleted": false, + "matrix_user_id": "@kc2bez:matrix.org", + "admin": false, + "bot_account": false, + "instance_id": 137704 + }, + "community": { + "id": 94575, + "name": "news", + "title": "Linux, Open Source and Tech News", + "description": "This is where all the News about all the things Linux and Linux adjacent goes.", + "removed": false, + "published": "2023-06-13T18:37:21.585477", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.linuxuserspace.show/c/news", + "local": false, + "icon": "https://lemmy.linuxuserspace.show/pictrs/image/64541d2a-1873-4648-a492-adf034b5e3e8.png", + "banner": "https://lemmy.linuxuserspace.show/pictrs/image/4fcb1175-d8f9-47e1-a849-a516d36b6549.png", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 137704 + }, + "creator_banned_from_community": false, + "counts": { + "id": 231574, + "post_id": 1470059, + "comments": 0, + "score": 1, + "upvotes": 1, + "downvotes": 0, + "published": "2023-06-23T19:09:41.189030", + "newest_comment_time_necro": "2023-06-23T19:09:41.189030", + "newest_comment_time": "2023-06-23T19:09:41.189030", + "featured_community": false, + "featured_local": false, + "hot_rank": 35, + "hot_rank_active": 35 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 0 + }, + { + "post": { + "id": 1466143, + "name": "Lemmy v0.18.0 Release", + "url": "https://join-lemmy.org/news/2023-06-23_-_Lemmy_Release_v0.18.0", + "body": "cross-posted from: https://lemmy.ml/post/1465740\n\n> ## What is Lemmy?\n> \n> Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.\n> \n> ## Major Changes\n> \n> ### HTTP API instead of Websocket\n> \n> Until now Lemmy-UI used websocket for all API requests. This has [many disadvantages](https://github.com/LemmyNet/lemmy/issues/2841#issuecomment-1535469357), like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. [@CannotSleep420](https://lemmygrad.ml/u/CannotSleep420) and [@dessalines](https://lemmy.ml/u/dessalines) have been working hard for the past weeks to implement this change in lemmy-ui.\n> \n> HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an [experimental nginx config](https://github.com/LemmyNet/lemmy-ansible/pull/75) which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk. \n> \n> ### Two-Factor Authentication\n> \n> New support for two-factor authentication. Use an app like [andOTP](https://f-droid.org/es/packages/org.shadowice.flocke.andotp/) or [Authenticator Pro](\n> https://f-droid.org/packages/me.jmh.authenticatorpro/) to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.\n> \n> ### Custom Emojis\n> \n> Instance admins can add different images as emojis which can be referenced by users when posting.\n> \n> ### Other changes\n> \n> #### Progressive Web App\n> \n> Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.\n> \n> **Note for desktop Firefox users**: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use [use this extension](https://addons.mozilla.org/en-US/firefox/addon/pwas-for-firefox/).\n> \n> #### Error Pages\n> \n> Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text \"404 *error message here*\".\n> \n> #### Route Changes\n> \n> Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:\n> \n> ```\n> https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1\n> ```\n> \n> The new route would look like this:\n> \n> ```\n> https://lemmy.ml?listingType=All\n> ```\n> Note that you now only have to specify parameters you want instead of all of them.\n> \n> #### Searchable select redesign\n> The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!\n> \n> #### Share button\n> \n> Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.\n> \n> #### Lemmy-UI Overall look and feel\n> \n> lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.\n> \n> Special thanks to [sleepless](https://github.com/SleeplessOne1917), [alectrocute](https://github.com/alectrocute), [jsit](https://github.com/jsit), and many others for their great work on improving and re-organizing lemmy-ui.\n> \n> #### Database optimizations\n> \n> Special thanks to [johanndt](https://github.com/johanndt), for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way. \n> \n> Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.\n> \n> #### Captchas\n> \n> Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.\n> \n> ## Upgrade instructions\n> \n> Follow the upgrade instructions for [ansible](https://github.com/LemmyNet/lemmy-ansible#upgrading) or [docker](https://join-lemmy.org/docs/en/administration/install_docker.html#updating).\n> \n> If you need help with the upgrade, you can ask in our [support forum](https://lemmy.ml/c/lemmy_support) or on the [Matrix Chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org).\n> \n> ## Support development\n> \n> We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from [NLnet foundation](https://nlnet.nl/). \n> \n> If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider [donating to support its development](https://join-lemmy.org/donate). No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.\n> ", + "creator_id": 699011, + "community_id": 87926, + "removed": false, + "locked": false, + "published": "2023-06-23T14:27:23.790681", + "deleted": false, + "nsfw": false, + "embed_title": "News", + "ap_id": "https://lemmy.world/post/469356", + "local": false, + "language_id": 37, + "featured_community": false, + "featured_local": false + }, + "creator": { + "id": 699011, + "name": "PancitCantot", + "display_name": "Pancit Canton", + "avatar": "https://lemmy.world/pictrs/image/8a7e141f-72d9-4938-8db0-13e3da8b0f04.png", + "banned": false, + "published": "2023-06-12T05:26:03.978663", + "actor_id": "https://lemmy.world/u/PancitCantot", + "bio": "In 1991, Lucky Me! introduced the first dry stir-fry pouched noodles in the Philippine market, called Lucky Me! Pancit Canton. Lucky Me! Pancit Canton is arguably the country's most popular pouched noodles sold in the Philippine market.\n\nThis is an **unofficial** Lemmy account, so don't get fooled. ", + "local": false, + "banner": "https://lemmy.world/pictrs/image/81dae25a-0076-4993-bfc6-d740aa5fa7f2.jpeg", + "deleted": false, + "admin": false, + "bot_account": false, + "instance_id": 136816 + }, + "community": { + "id": 87926, + "name": "philippines", + "title": "Philippines", + "description": "***A community for the Philippines and all things Filipino!***\n\n![Image](https://i.imgur.com/UZES4iw.jpg)\n\n# Rules\n\n1. Follow [Code of Conduct](https://mastodon.world/about)\n2. Posts should be PH relevant\n3. No flaming or name-calling\n4. No editorialized titles\n5. Use screenshots for FB posts\n6. Censor personal information\n7. No pornography\n8. Go to [thevisoria](https://lemmy.world/c/thevisoria) for classifieds\n9. Tag spoilers\n10. Provide sources for any claims\n11. No reposts\n12. Use [Teddit](https://teddit.net/) for Reddit links\n\n# PH Fediverse\n\n* [thevisoria](https://lemmy.world/c/thevisoria)\n\n# Credits\n\n* Banner by [Jeriel Jan del Prado](https://unsplash.com/photos/0RAHb5oWwbA)\n* Daily pixel art by [adroitcell](https://www.instagram.com/adroitcell.pxl/)\n", + "removed": false, + "published": "2023-06-09T10:56:24.159941", + "updated": "2023-06-24T06:13:42.647855", + "deleted": false, + "nsfw": false, + "actor_id": "https://lemmy.world/c/philippines", + "local": false, + "icon": "https://lemmy.world/pictrs/image/064ea535-8d40-4a92-ac87-72bbed187213.png", + "banner": "https://lemmy.world/pictrs/image/cc2de825-5eab-41df-af43-e48f4134fb91.jpeg", + "hidden": false, + "posting_restricted_to_mods": false, + "instance_id": 136816 + }, + "creator_banned_from_community": false, + "counts": { + "id": 230391, + "post_id": 1466143, + "comments": 10, + "score": 3, + "upvotes": 3, + "downvotes": 0, + "published": "2023-06-23T14:27:23.790681", + "newest_comment_time_necro": "2023-06-24T07:00:44.986806", + "newest_comment_time": "2023-06-24T07:00:44.986806", + "featured_community": false, + "featured_local": false, + "hot_rank": 29, + "hot_rank_active": 353 + }, + "subscribed": "NotSubscribed", + "saved": false, + "read": false, + "creator_blocked": false, + "unread_comments": 10 + } + ] +} diff --git a/src/examples/site.json b/src/examples/site.json new file mode 100644 index 0000000..c1cefeb --- /dev/null +++ b/src/examples/site.json @@ -0,0 +1,379 @@ +{ + "site_view": { + "site": { + "id": 1, + "name": "programming.dev", + "sidebar": "# Welcome Programmers\n[programming.dev](https://programming.dev) is a collection of programming communities aimed at topics relevant to software engineers, hackers, hardware and software enthusiasts, script kiddies, cryptographers, researchers, roboticists, and more.\n\nTo begin with this site we will have a limited number of communities. Please visit[/c/community_request](https://programming.dev/c/community_request) to request more communities, and upvote those you see there so we can make a decision on which to choose next. \n\nThe instance is primarily english with some communities in other languages\n\n# Donations \nIf you would like to help support the server you can donate on [@snowe](https://programming.dev/u/snowe)'s [GitHub Sponsors page](https://github.com/sponsors/snowe2010/). We will be setting up a different method to donate later, but for now, we've been getting asked a ton for how to donate. \n\n# Finding Communities\n\nYou can find communities on other instances by using one of the following:\n\n- [lemmyverse](https://lemmyverse.net/)\n- [sub.rehab](https://sub.rehab/?visibleServices=lemmy)\n- [feddit](https://browse.feddit.de/)\n- [redditmigration](https://redditmigration.com/)\n\n### Notice: MAJOR BUG\n\nCurrently there is a major bug with TOTP. Please see the discord #user-help page or the matrix for more information. \n\n", + "published": "2023-06-06T06:35:12.365276", + "updated": "2023-07-29T18:02:56.713573", + "icon": "https://programming.dev/pictrs/image/1e947440-0f0d-4768-ba4b-1480551e7cc9.png", + "banner": "https://programming.dev/pictrs/image/52f986a9-7020-4442-8224-6499d5e84ed2.png", + "description": "A collection of programming communities", + "actor_id": "https://programming.dev/", + "last_refreshed_at": "2023-06-06T06:35:12.362138", + "inbox_url": "https://programming.dev/site_inbox", + "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtNaplH0kO+ic1Fusl/oS\nTnhReaHPmafik2tsa/YM3jlp2FRjESKPsWMuedvyWQZklSATI3SI0q305vU4fSRM\ncz/r/gjhmE2tlQA9I8qMTAk1LGhutmAcGUeSWxQRmG9DVhHOW9RE/7goPF7q+o+4\nQ1N+FpIsxAeHZDYxDyJQAOdLnmuo/Y5FdueXzG6MV8iiZ0FoCYQ7q41b4PjLzCkY\npPeDaNuMqAD3eHnjLUCBKOYnAxtnAhpFbqyA0JKhWHjDTlwfdrHXQrejaPQutIy/\nYg5rCnMxq6IBefNlr68o2CkRBlmX01N7GJzuIsbRvr/Fdbe+/M/C7aTcnxJt3S4t\nzQIDAQAB\n-----END PUBLIC KEY-----\n", + "instance_id": 1 + }, + "local_site": { + "id": 1, + "site_id": 1, + "site_setup": true, + "enable_downvotes": true, + "enable_nsfw": true, + "community_creation_admin_only": true, + "require_email_verification": false, + "application_question": "to verify that you are human, please explain why you want to create an account on this site\n\nFor issues join the [discord](https://discord.com/invite/kwyxvYEYt4) or [matrix](https://matrix.to/#/#programming.dev:matrix.org)", + "private_instance": false, + "default_theme": "browser", + "default_post_listing_type": "Local", + "legal_information": "Logo is created using `Fira Code`, used under the OFL-1.1", + "hide_modlog_mod_names": true, + "application_email_admins": false, + "actor_name_max_length": 50, + "federation_enabled": true, + "captcha_enabled": false, + "captcha_difficulty": "medium", + "published": "2023-06-06T06:35:12.436871", + "updated": "2023-07-29T18:02:56.714758", + "registration_mode": "RequireApplication", + "reports_email_admins": true + }, + "local_site_rate_limit": { + "id": 1, + "local_site_id": 1, + "message": 999, + "message_per_second": 60, + "post": 999, + "post_per_second": 600, + "register": 999, + "register_per_second": 3600, + "image": 999, + "image_per_second": 3600, + "comment": 999, + "comment_per_second": 600, + "search": 999, + "search_per_second": 600, + "published": "2023-06-06T06:35:12.438204" + }, + "counts": { + "id": 1, + "site_id": 1, + "users": 5977, + "posts": 3426, + "comments": 23673, + "communities": 152, + "users_active_day": 191, + "users_active_week": 543, + "users_active_month": 1096, + "users_active_half_year": 1641 + } + }, + "admins": [ + { + "person": { + "id": 2, + "name": "snowe", + "display_name": "snowe", + "avatar": "https://programming.dev/pictrs/image/234e8715-6cb9-465f-ab9b-08bc736f19e9.jpeg", + "banned": false, + "published": "2023-06-06T06:35:11.863885", + "actor_id": "https://programming.dev/u/snowe", + "bio": "I'm a staff software engineer at Sunrun, the USA's largest residential solar installer. \n\nI mostly work with kotlin, but also java, python, ruby, javascript, typescript. My hobby is picking up new hobbies. Currently bird photography and camping. ", + "local": true, + "deleted": false, + "matrix_user_id": "@snowe:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 1 + }, + "counts": { + "id": 1, + "person_id": 2, + "post_count": 17, + "post_score": 219, + "comment_count": 273, + "comment_score": 454 + } + }, + { + "person": { + "id": 6720, + "name": "erlingur", + "display_name": "Erlingur", + "avatar": "https://programming.dev/pictrs/image/b6bbaea7-9e3e-4210-97ca-cbaded5c320f.jpeg", + "banned": false, + "published": "2023-06-08T23:20:19.502444", + "actor_id": "https://programming.dev/u/erlingur", + "local": true, + "deleted": false, + "admin": true, + "bot_account": false, + "instance_id": 1 + }, + "counts": { + "id": 4998, + "person_id": 6720, + "post_count": 36, + "post_score": 29, + "comment_count": 69, + "comment_score": 93 + } + }, + { + "person": { + "id": 6861, + "name": "Ategon", + "display_name": "Ategon", + "avatar": "https://programming.dev/pictrs/image/8c68e034-020a-4513-9567-574c26f76a9d.png", + "banned": false, + "published": "2023-06-08T23:54:01.599070", + "actor_id": "https://programming.dev/u/Ategon", + "bio": "Indie game developer 🇨🇦\n\nWorking on some games for game jams in my free time\n\nSocials: https://ategon.carrd.co/", + "local": true, + "banner": "https://programming.dev/pictrs/image/2ba1df13-1d16-4a36-bb88-647b5d4c165c.png", + "deleted": false, + "matrix_user_id": "@ategon:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 1 + }, + "counts": { + "id": 5117, + "person_id": 6861, + "post_count": 176, + "post_score": 1207, + "comment_count": 442, + "comment_score": 399 + } + }, + { + "person": { + "id": 16482, + "name": "nibblebit", + "avatar": "https://programming.dev/pictrs/image/31de4d67-90fd-43cd-9266-d902c14237fd.png", + "banned": false, + "published": "2023-06-10T08:28:18.077456", + "actor_id": "https://programming.dev/u/nibblebit", + "bio": "Azure | .NET | Godot | nibble.blog\n ", + "local": true, + "banner": "https://programming.dev/pictrs/image/83dde52d-0bb6-4f47-8248-d01c6245236e.png", + "deleted": false, + "matrix_user_id": "@nibblebit:matrix.org", + "admin": true, + "bot_account": false, + "instance_id": 1 + }, + "counts": { + "id": 11496, + "person_id": 16482, + "post_count": 15, + "post_score": 31, + "comment_count": 107, + "comment_score": 100 + } + } + ], + "version": "0.18.3", + "all_languages": [ + { "id": 0, "code": "und", "name": "Undetermined" }, + { "id": 1, "code": "aa", "name": "Afaraf" }, + { "id": 2, "code": "ab", "name": "аҧсуа бызшәа" }, + { "id": 3, "code": "ae", "name": "avesta" }, + { "id": 4, "code": "af", "name": "Afrikaans" }, + { "id": 5, "code": "ak", "name": "Akan" }, + { "id": 6, "code": "am", "name": "አማርኛ" }, + { "id": 7, "code": "an", "name": "aragonés" }, + { "id": 8, "code": "ar", "name": "اَلْعَرَبِيَّةُ" }, + { "id": 9, "code": "as", "name": "অসমীয়া" }, + { "id": 10, "code": "av", "name": "авар мацӀ" }, + { "id": 11, "code": "ay", "name": "aymar aru" }, + { "id": 12, "code": "az", "name": "azərbaycan dili" }, + { "id": 13, "code": "ba", "name": "башҡорт теле" }, + { "id": 14, "code": "be", "name": "беларуская мова" }, + { "id": 15, "code": "bg", "name": "български език" }, + { "id": 16, "code": "bi", "name": "Bislama" }, + { "id": 17, "code": "bm", "name": "bamanankan" }, + { "id": 18, "code": "bn", "name": "বাংলা" }, + { "id": 19, "code": "bo", "name": "བོད་ཡིག" }, + { "id": 20, "code": "br", "name": "brezhoneg" }, + { "id": 21, "code": "bs", "name": "bosanski jezik" }, + { "id": 22, "code": "ca", "name": "Català" }, + { "id": 23, "code": "ce", "name": "нохчийн мотт" }, + { "id": 24, "code": "ch", "name": "Chamoru" }, + { "id": 25, "code": "co", "name": "corsu" }, + { "id": 26, "code": "cr", "name": "ᓀᐦᐃᔭᐍᐏᐣ" }, + { "id": 27, "code": "cs", "name": "čeština" }, + { "id": 28, "code": "cu", "name": "ѩзыкъ словѣньскъ" }, + { "id": 29, "code": "cv", "name": "чӑваш чӗлхи" }, + { "id": 30, "code": "cy", "name": "Cymraeg" }, + { "id": 31, "code": "da", "name": "dansk" }, + { "id": 32, "code": "de", "name": "Deutsch" }, + { "id": 33, "code": "dv", "name": "ދިވެހި" }, + { "id": 34, "code": "dz", "name": "རྫོང་ཁ" }, + { "id": 35, "code": "ee", "name": "Eʋegbe" }, + { "id": 36, "code": "el", "name": "Ελληνικά" }, + { "id": 37, "code": "en", "name": "English" }, + { "id": 38, "code": "eo", "name": "Esperanto" }, + { "id": 39, "code": "es", "name": "Español" }, + { "id": 40, "code": "et", "name": "eesti" }, + { "id": 41, "code": "eu", "name": "euskara" }, + { "id": 42, "code": "fa", "name": "فارسی" }, + { "id": 43, "code": "ff", "name": "Fulfulde" }, + { "id": 44, "code": "fi", "name": "suomi" }, + { "id": 45, "code": "fj", "name": "vosa Vakaviti" }, + { "id": 46, "code": "fo", "name": "føroyskt" }, + { "id": 47, "code": "fr", "name": "Français" }, + { "id": 48, "code": "fy", "name": "Frysk" }, + { "id": 49, "code": "ga", "name": "Gaeilge" }, + { "id": 50, "code": "gd", "name": "Gàidhlig" }, + { "id": 51, "code": "gl", "name": "galego" }, + { "id": 52, "code": "gn", "name": "Avañe'ẽ" }, + { "id": 53, "code": "gu", "name": "ગુજરાતી" }, + { "id": 54, "code": "gv", "name": "Gaelg" }, + { "id": 55, "code": "ha", "name": "هَوُسَ" }, + { "id": 56, "code": "he", "name": "עברית" }, + { "id": 57, "code": "hi", "name": "हिन्दी" }, + { "id": 58, "code": "ho", "name": "Hiri Motu" }, + { "id": 59, "code": "hr", "name": "Hrvatski" }, + { "id": 60, "code": "ht", "name": "Kreyòl ayisyen" }, + { "id": 61, "code": "hu", "name": "magyar" }, + { "id": 62, "code": "hy", "name": "Հայերեն" }, + { "id": 63, "code": "hz", "name": "Otjiherero" }, + { "id": 64, "code": "ia", "name": "Interlingua" }, + { "id": 65, "code": "id", "name": "Bahasa Indonesia" }, + { "id": 66, "code": "ie", "name": "Interlingue" }, + { "id": 67, "code": "ig", "name": "Asụsụ Igbo" }, + { "id": 68, "code": "ii", "name": "ꆈꌠ꒿ Nuosuhxop" }, + { "id": 69, "code": "ik", "name": "Iñupiaq" }, + { "id": 70, "code": "io", "name": "Ido" }, + { "id": 71, "code": "is", "name": "Íslenska" }, + { "id": 72, "code": "it", "name": "Italiano" }, + { "id": 73, "code": "iu", "name": "ᐃᓄᒃᑎᑐᑦ" }, + { "id": 74, "code": "ja", "name": "日本語" }, + { "id": 75, "code": "jv", "name": "basa Jawa" }, + { "id": 76, "code": "ka", "name": "ქართული" }, + { "id": 77, "code": "kg", "name": "Kikongo" }, + { "id": 78, "code": "ki", "name": "Gĩkũyũ" }, + { "id": 79, "code": "kj", "name": "Kuanyama" }, + { "id": 80, "code": "kk", "name": "қазақ тілі" }, + { "id": 81, "code": "kl", "name": "kalaallisut" }, + { "id": 82, "code": "km", "name": "ខេមរភាសា" }, + { "id": 83, "code": "kn", "name": "ಕನ್ನಡ" }, + { "id": 84, "code": "ko", "name": "한국어" }, + { "id": 85, "code": "kr", "name": "Kanuri" }, + { "id": 86, "code": "ks", "name": "कश्मीरी" }, + { "id": 87, "code": "ku", "name": "Kurdî" }, + { "id": 88, "code": "kv", "name": "коми кыв" }, + { "id": 89, "code": "kw", "name": "Kernewek" }, + { "id": 90, "code": "ky", "name": "Кыргызча" }, + { "id": 91, "code": "la", "name": "latine" }, + { "id": 92, "code": "lb", "name": "Lëtzebuergesch" }, + { "id": 93, "code": "lg", "name": "Luganda" }, + { "id": 94, "code": "li", "name": "Limburgs" }, + { "id": 95, "code": "ln", "name": "Lingála" }, + { "id": 96, "code": "lo", "name": "ພາສາລາວ" }, + { "id": 97, "code": "lt", "name": "lietuvių kalba" }, + { "id": 98, "code": "lu", "name": "Kiluba" }, + { "id": 99, "code": "lv", "name": "latviešu valoda" }, + { "id": 100, "code": "mg", "name": "fiteny malagasy" }, + { "id": 101, "code": "mh", "name": "Kajin M̧ajeļ" }, + { "id": 102, "code": "mi", "name": "te reo Māori" }, + { "id": 103, "code": "mk", "name": "македонски јазик" }, + { "id": 104, "code": "ml", "name": "മലയാളം" }, + { "id": 105, "code": "mn", "name": "Монгол хэл" }, + { "id": 106, "code": "mr", "name": "मराठी" }, + { "id": 107, "code": "ms", "name": "Bahasa Melayu" }, + { "id": 108, "code": "mt", "name": "Malti" }, + { "id": 109, "code": "my", "name": "ဗမာစာ" }, + { "id": 110, "code": "na", "name": "Dorerin Naoero" }, + { "id": 111, "code": "nb", "name": "Norsk bokmål" }, + { "id": 112, "code": "nd", "name": "isiNdebele" }, + { "id": 113, "code": "ne", "name": "नेपाली" }, + { "id": 114, "code": "ng", "name": "Owambo" }, + { "id": 115, "code": "nl", "name": "Nederlands" }, + { "id": 116, "code": "nn", "name": "Norsk nynorsk" }, + { "id": 117, "code": "no", "name": "Norsk" }, + { "id": 118, "code": "nr", "name": "isiNdebele" }, + { "id": 119, "code": "nv", "name": "Diné bizaad" }, + { "id": 120, "code": "ny", "name": "chiCheŵa" }, + { "id": 121, "code": "oc", "name": "occitan" }, + { "id": 122, "code": "oj", "name": "ᐊᓂᔑᓈᐯᒧᐎᓐ" }, + { "id": 123, "code": "om", "name": "Afaan Oromoo" }, + { "id": 124, "code": "or", "name": "ଓଡ଼ିଆ" }, + { "id": 125, "code": "os", "name": "ирон æвзаг" }, + { "id": 126, "code": "pa", "name": "ਪੰਜਾਬੀ" }, + { "id": 127, "code": "pi", "name": "पाऴि" }, + { "id": 128, "code": "pl", "name": "Polski" }, + { "id": 129, "code": "ps", "name": "پښتو" }, + { "id": 130, "code": "pt", "name": "Português" }, + { "id": 131, "code": "qu", "name": "Runa Simi" }, + { "id": 132, "code": "rm", "name": "rumantsch grischun" }, + { "id": 133, "code": "rn", "name": "Ikirundi" }, + { "id": 134, "code": "ro", "name": "Română" }, + { "id": 135, "code": "ru", "name": "Русский" }, + { "id": 136, "code": "rw", "name": "Ikinyarwanda" }, + { "id": 137, "code": "sa", "name": "संस्कृतम्" }, + { "id": 138, "code": "sc", "name": "sardu" }, + { "id": 139, "code": "sd", "name": "सिन्धी" }, + { "id": 140, "code": "se", "name": "Davvisámegiella" }, + { "id": 141, "code": "sg", "name": "yângâ tî sängö" }, + { "id": 142, "code": "si", "name": "සිංහල" }, + { "id": 143, "code": "sk", "name": "slovenčina" }, + { "id": 144, "code": "sl", "name": "slovenščina" }, + { "id": 145, "code": "sm", "name": "gagana fa'a Samoa" }, + { "id": 146, "code": "sn", "name": "chiShona" }, + { "id": 147, "code": "so", "name": "Soomaaliga" }, + { "id": 148, "code": "sq", "name": "Shqip" }, + { "id": 149, "code": "sr", "name": "српски језик" }, + { "id": 150, "code": "ss", "name": "SiSwati" }, + { "id": 151, "code": "st", "name": "Sesotho" }, + { "id": 152, "code": "su", "name": "Basa Sunda" }, + { "id": 153, "code": "sv", "name": "Svenska" }, + { "id": 154, "code": "sw", "name": "Kiswahili" }, + { "id": 155, "code": "ta", "name": "தமிழ்" }, + { "id": 156, "code": "te", "name": "తెలుగు" }, + { "id": 157, "code": "tg", "name": "тоҷикӣ" }, + { "id": 158, "code": "th", "name": "ไทย" }, + { "id": 159, "code": "ti", "name": "ትግርኛ" }, + { "id": 160, "code": "tk", "name": "Türkmençe" }, + { "id": 161, "code": "tl", "name": "Wikang Tagalog" }, + { "id": 162, "code": "tn", "name": "Setswana" }, + { "id": 163, "code": "to", "name": "faka Tonga" }, + { "id": 164, "code": "tr", "name": "Türkçe" }, + { "id": 165, "code": "ts", "name": "Xitsonga" }, + { "id": 166, "code": "tt", "name": "татар теле" }, + { "id": 167, "code": "tw", "name": "Twi" }, + { "id": 168, "code": "ty", "name": "Reo Tahiti" }, + { "id": 169, "code": "ug", "name": "ئۇيغۇرچە‎" }, + { "id": 170, "code": "uk", "name": "Українська" }, + { "id": 171, "code": "ur", "name": "اردو" }, + { "id": 172, "code": "uz", "name": "Ўзбек" }, + { "id": 173, "code": "ve", "name": "Tshivenḓa" }, + { "id": 174, "code": "vi", "name": "Tiếng Việt" }, + { "id": 175, "code": "vo", "name": "Volapük" }, + { "id": 176, "code": "wa", "name": "walon" }, + { "id": 177, "code": "wo", "name": "Wollof" }, + { "id": 178, "code": "xh", "name": "isiXhosa" }, + { "id": 179, "code": "yi", "name": "ייִדיש" }, + { "id": 180, "code": "yo", "name": "Yorùbá" }, + { "id": 181, "code": "za", "name": "Saɯ cueŋƅ" }, + { "id": 182, "code": "zh", "name": "中文" }, + { "id": 183, "code": "zu", "name": "isiZulu" } + ], + "discussion_languages": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183 + ], + "taglines": [], + "custom_emojis": [] +} diff --git a/src/main.rs b/src/main.rs index 3ff2352..aadb810 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,11 +12,12 @@ use components::{ community_page::{self, CommunityPage}, inbox_page::{InboxInput, InboxPage}, instances_page::{InstancesPage, InstancesPageInput}, + loading_indicator::LoadingIndicator, post_page::{self, PostPage}, posts_page::{PostsPage, PostsPageInput}, profile_page::{ProfileInput, ProfilePage}, }; -use dialogs::about::AboutDialog; +use dialogs::{about::AboutDialog, site_info::{SiteInfo, SiteInfoInput}}; use gtk::prelude::*; use lemmy_api_common::{ community::GetCommunityResponse, @@ -64,8 +65,9 @@ struct App { login_page: Controller, accounts_page: Controller, saved_page: Controller, - logged_in: bool, about_dialog: Controller, + site_info: Controller, + logged_in: bool, } #[derive(Debug, Clone)] @@ -139,18 +141,8 @@ impl SimpleComponent for App { posts_page -> gtk::ScrolledWindow {} } AppState::Loading => gtk::Box { - set_hexpand: true, - set_orientation: gtk::Orientation::Vertical, - set_spacing: 12, - set_valign: gtk::Align::Center, - set_halign: gtk::Align::Center, - gtk::Spinner { - set_spinning: true, - set_height_request: 80, - }, - gtk::Label { - set_text: "Loading", - }, + #[template] + LoadingIndicator, } AppState::ChooseInstance => gtk::Box { #[local_ref] @@ -226,6 +218,7 @@ impl SimpleComponent for App { "Accounts" => AccountsAction, "Login" => LoginAction, "Profile" => ProfileAction, + "Site Info" => SiteInfoAction, "About" => AboutAction } } @@ -278,11 +271,14 @@ impl SimpleComponent for App { let saved_page = ProfilePage::builder() .launch((default_person(), true)) .forward(sender.input_sender(), |msg| msg); + let site_info = SiteInfo::builder() + .transient_for(root) + .launch(()) + .forward(sender.input_sender(), |msg| msg); let model = App { state, back_queue: vec![], - logged_in, posts_page, instances_page, profile_page, @@ -295,6 +291,8 @@ impl SimpleComponent for App { message: None, about_dialog, saved_page, + site_info, + logged_in, }; // fetch posts if that's the initial page @@ -333,9 +331,16 @@ impl SimpleComponent for App { profile_sender.input(AppMsg::OpenPerson(PersonId(person.id))); } }); + let sender = sender.clone(); let login_action: RelmAction = RelmAction::new_stateless(move |_| { sender.input(AppMsg::UpdateState(AppState::Login)); }); + let site_info_action: RelmAction = { + let sender = model.site_info.sender().clone(); + RelmAction::new_stateless(move |_| { + sender.emit(SiteInfoInput::Fetch); + }) + }; let about_action = { let sender = model.about_dialog.sender().clone(); RelmAction::::new_stateless(move |_| { @@ -348,6 +353,7 @@ impl SimpleComponent for App { group.add_action(accounts_action); group.add_action(profile_action); group.add_action(login_action); + group.add_action(site_info_action); group.add_action(about_action); group.register_for_widget(&widgets.main_window); @@ -462,10 +468,11 @@ impl SimpleComponent for App { AppMsg::UpdateState(state) => { self.state = state; } - AppMsg::OpenPosts => self - .posts_page - .sender() - .emit(PostsPageInput::FetchPosts(ListingType::Local, SortType::Hot, true)), + AppMsg::OpenPosts => self.posts_page.sender().emit(PostsPageInput::FetchPosts( + ListingType::Local, + SortType::Hot, + true, + )), } } } @@ -475,6 +482,7 @@ relm4::new_stateless_action!(ChangeInstanceAction, WindowActionGroup, "instance" relm4::new_stateless_action!(AccountsAction, WindowActionGroup, "accounts"); relm4::new_stateless_action!(LoginAction, WindowActionGroup, "login"); relm4::new_stateless_action!(ProfileAction, WindowActionGroup, "profile"); +relm4::new_stateless_action!(SiteInfoAction, WindowActionGroup, "site_info"); relm4::new_stateless_action!(AboutAction, WindowActionGroup, "about"); fn main() {