add: post full unlist option
This commit is contained in:
parent
bdd8f9a869
commit
14f3bf849e
6 changed files with 45 additions and 3 deletions
|
@ -173,6 +173,12 @@
|
||||||
("class" "flex items-center")
|
("class" "flex items-center")
|
||||||
("style" "color: var(--color-primary)")
|
("style" "color: var(--color-primary)")
|
||||||
(text "{{ icon \"square-asterisk\" }}"))
|
(text "{{ icon \"square-asterisk\" }}"))
|
||||||
|
(text "{%- endif %} {% if post.context.full_unlist -%}")
|
||||||
|
(span
|
||||||
|
("title" "Unlisted")
|
||||||
|
("class" "flex items-center")
|
||||||
|
("style" "color: var(--color-primary)")
|
||||||
|
(icon (text "eye-off")))
|
||||||
(text "{%- endif %} {% if post.stack -%}")
|
(text "{%- endif %} {% if post.stack -%}")
|
||||||
(a
|
(a
|
||||||
("title" "Posted to a stack you're in")
|
("title" "Posted to a stack you're in")
|
||||||
|
@ -1507,6 +1513,7 @@
|
||||||
is_nsfw: false,
|
is_nsfw: false,
|
||||||
content_warning: \"\",
|
content_warning: \"\",
|
||||||
tags: [],
|
tags: [],
|
||||||
|
full_unlist: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
window.BLANK_INITIAL_SETTINGS = JSON.stringify(
|
window.BLANK_INITIAL_SETTINGS = JSON.stringify(
|
||||||
|
@ -1543,6 +1550,11 @@
|
||||||
// window.POST_INITIAL_SETTINGS.is_nsfw.toString(),
|
// window.POST_INITIAL_SETTINGS.is_nsfw.toString(),
|
||||||
// \"checkbox\",
|
// \"checkbox\",
|
||||||
// ],
|
// ],
|
||||||
|
[
|
||||||
|
[\"full_unlist\", \"Unlist from timelines\"],
|
||||||
|
window.POST_INITIAL_SETTINGS.full_unlist.toString(),
|
||||||
|
\"checkbox\",
|
||||||
|
],
|
||||||
[
|
[
|
||||||
[\"content_warning\", \"Content warning\"],
|
[\"content_warning\", \"Content warning\"],
|
||||||
window.POST_INITIAL_SETTINGS.content_warning,
|
window.POST_INITIAL_SETTINGS.content_warning,
|
||||||
|
|
|
@ -201,7 +201,7 @@
|
||||||
\"checkbox\",
|
\"checkbox\",
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[\"is_nsfw\", \"Hide from public timelines\"],
|
[\"is_nsfw\", \"Mark as NSFW\"],
|
||||||
\"{{ community.context.is_nsfw }}\",
|
\"{{ community.context.is_nsfw }}\",
|
||||||
\"checkbox\",
|
\"checkbox\",
|
||||||
],
|
],
|
||||||
|
@ -210,6 +210,11 @@
|
||||||
settings.content_warning,
|
settings.content_warning,
|
||||||
\"textarea\",
|
\"textarea\",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
[\"full_unlist\", \"Unlist from timelines\"],
|
||||||
|
\"{{ user.settings.auto_full_unlist }}\",
|
||||||
|
\"checkbox\",
|
||||||
|
],
|
||||||
[
|
[
|
||||||
[\"tags\", \"Tags\"],
|
[\"tags\", \"Tags\"],
|
||||||
settings.tags.join(\", \"),
|
settings.tags.join(\", \"),
|
||||||
|
|
|
@ -1526,6 +1526,16 @@
|
||||||
\"{{ profile.settings.auto_unlist }}\",
|
\"{{ profile.settings.auto_unlist }}\",
|
||||||
\"checkbox\",
|
\"checkbox\",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
[\"auto_full_unlist\", \"Only publish my posts to my profile\"],
|
||||||
|
\"{{ profile.settings.auto_unlist }}\",
|
||||||
|
\"checkbox\",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[],
|
||||||
|
\"Your posts will still be visible in the \\\"Following\\\" timeline for users following you.\",
|
||||||
|
\"text\",
|
||||||
|
],
|
||||||
[
|
[
|
||||||
[\"all_timeline_hide_answers\", 'Hide posts answering questions from the \"All\" timeline'],
|
[\"all_timeline_hide_answers\", 'Hide posts answering questions from the \"All\" timeline'],
|
||||||
\"{{ profile.settings.all_timeline_hide_answers }}\",
|
\"{{ profile.settings.all_timeline_hide_answers }}\",
|
||||||
|
|
|
@ -1468,7 +1468,7 @@ impl DataManager {
|
||||||
let res = query_rows!(
|
let res = query_rows!(
|
||||||
&conn,
|
&conn,
|
||||||
&format!(
|
&format!(
|
||||||
"SELECT * FROM posts WHERE replying_to = 0{}{}{} ORDER BY created DESC LIMIT $1 OFFSET $2",
|
"SELECT * FROM posts WHERE replying_to = 0{}{}{} AND NOT context LIKE '%\"full_unlist\":true%' ORDER BY created DESC LIMIT $1 OFFSET $2",
|
||||||
if before_time > 0 {
|
if before_time > 0 {
|
||||||
format!(" AND created < {before_time}")
|
format!(" AND created < {before_time}")
|
||||||
} else {
|
} else {
|
||||||
|
@ -1534,7 +1534,7 @@ impl DataManager {
|
||||||
let res = query_rows!(
|
let res = query_rows!(
|
||||||
&conn,
|
&conn,
|
||||||
&format!(
|
&format!(
|
||||||
"SELECT * FROM posts WHERE (community = {} {query_string}){} AND replying_to = 0 AND is_deleted = 0 ORDER BY created DESC LIMIT $1 OFFSET $2",
|
"SELECT * FROM posts WHERE (community = {} {query_string}){} AND NOT context LIKE '%\"full_unlist\":true%' AND replying_to = 0 AND is_deleted = 0 ORDER BY created DESC LIMIT $1 OFFSET $2",
|
||||||
first.community,
|
first.community,
|
||||||
if hide_nsfw {
|
if hide_nsfw {
|
||||||
" AND NOT context LIKE '%\"is_nsfw\":true%'"
|
" AND NOT context LIKE '%\"is_nsfw\":true%'"
|
||||||
|
@ -1979,6 +1979,10 @@ impl DataManager {
|
||||||
data.context.is_nsfw = true;
|
data.context.is_nsfw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if owner.settings.auto_full_unlist {
|
||||||
|
data.context.full_unlist = true;
|
||||||
|
}
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
let conn = match self.0.connect().await {
|
let conn = match self.0.connect().await {
|
||||||
Ok(c) => c,
|
Ok(c) => c,
|
||||||
|
@ -2379,6 +2383,10 @@ impl DataManager {
|
||||||
x.is_nsfw = true;
|
x.is_nsfw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if user.settings.auto_full_unlist {
|
||||||
|
x.full_unlist = true;
|
||||||
|
}
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
let conn = match self.0.connect().await {
|
let conn = match self.0.connect().await {
|
||||||
Ok(c) => c,
|
Ok(c) => c,
|
||||||
|
|
|
@ -308,6 +308,10 @@ pub struct UserSettings {
|
||||||
/// be shown in the UI (or API).
|
/// be shown in the UI (or API).
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub hide_from_social_lists: bool,
|
pub hide_from_social_lists: bool,
|
||||||
|
/// Automatically hide your posts from all timelines except your profile
|
||||||
|
/// and the following timeline.
|
||||||
|
#[serde(default)]
|
||||||
|
pub auto_full_unlist: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn mime_avif() -> String {
|
fn mime_avif() -> String {
|
||||||
|
|
|
@ -190,6 +190,8 @@ pub struct PostContext {
|
||||||
pub content_warning: String,
|
pub content_warning: String,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub tags: Vec<String>,
|
pub tags: Vec<String>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub full_unlist: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_comments_enabled() -> bool {
|
fn default_comments_enabled() -> bool {
|
||||||
|
@ -218,6 +220,7 @@ impl Default for PostContext {
|
||||||
reactions_enabled: default_reactions_enabled(),
|
reactions_enabled: default_reactions_enabled(),
|
||||||
content_warning: String::new(),
|
content_warning: String::new(),
|
||||||
tags: Vec::new(),
|
tags: Vec::new(),
|
||||||
|
full_unlist: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue