Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
5d677828
Commit
5d677828
authored
Dec 29, 2025
by
Johnny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: remove NSFW content settings from instance configuration
parent
96a91ebf
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
11 additions
and
144 deletions
+11
-144
instance_service.proto
proto/api/v1/instance_service.proto
+0
-4
instance_service.pb.go
proto/gen/api/v1/instance_service.pb.go
+4
-25
openapi.yaml
proto/gen/openapi.yaml
+0
-8
instance_setting.pb.go
proto/gen/store/instance_setting.pb.go
+3
-24
instance_setting.proto
proto/store/instance_setting.proto
+0
-4
instance_service.go
server/router/api/v1/instance_service.go
+0
-4
instance_setting.go
store/instance_setting.go
+0
-6
useNsfwContent.ts
web/src/components/MemoView/hooks/useNsfwContent.ts
+3
-6
MemoRelatedSettings.tsx
web/src/components/Settings/MemoRelatedSettings.tsx
+0
-48
instance_service_pb.ts
web/src/types/proto/api/v1/instance_service_pb.ts
+1
-15
No files found.
proto/api/v1/instance_service.proto
View file @
5d677828
...
...
@@ -157,10 +157,6 @@ message InstanceSetting {
bool
enable_double_click_edit
=
4
;
// reactions is the list of reactions.
repeated
string
reactions
=
7
;
// enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
bool
enable_blur_nsfw_content
=
9
;
// nsfw_tags is the list of tags that mark content as NSFW for blurring.
repeated
string
nsfw_tags
=
10
;
}
}
...
...
proto/gen/api/v1/instance_service.pb.go
View file @
5d677828
...
...
@@ -654,11 +654,7 @@ type InstanceSetting_MemoRelatedSetting struct {
// enable_double_click_edit enables editing on double click.
EnableDoubleClickEdit
bool
`protobuf:"varint,4,opt,name=enable_double_click_edit,json=enableDoubleClickEdit,proto3" json:"enable_double_click_edit,omitempty"`
// reactions is the list of reactions.
Reactions
[]
string
`protobuf:"bytes,7,rep,name=reactions,proto3" json:"reactions,omitempty"`
// enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
EnableBlurNsfwContent
bool
`protobuf:"varint,9,opt,name=enable_blur_nsfw_content,json=enableBlurNsfwContent,proto3" json:"enable_blur_nsfw_content,omitempty"`
// nsfw_tags is the list of tags that mark content as NSFW for blurring.
NsfwTags
[]
string
`protobuf:"bytes,10,rep,name=nsfw_tags,json=nsfwTags,proto3" json:"nsfw_tags,omitempty"`
Reactions
[]
string
`protobuf:"bytes,7,rep,name=reactions,proto3" json:"reactions,omitempty"`
unknownFields
protoimpl
.
UnknownFields
sizeCache
protoimpl
.
SizeCache
}
...
...
@@ -728,20 +724,6 @@ func (x *InstanceSetting_MemoRelatedSetting) GetReactions() []string {
return
nil
}
func
(
x
*
InstanceSetting_MemoRelatedSetting
)
GetEnableBlurNsfwContent
()
bool
{
if
x
!=
nil
{
return
x
.
EnableBlurNsfwContent
}
return
false
}
func
(
x
*
InstanceSetting_MemoRelatedSetting
)
GetNsfwTags
()
[]
string
{
if
x
!=
nil
{
return
x
.
NsfwTags
}
return
nil
}
// Custom profile configuration for instance branding.
type
InstanceSetting_GeneralSetting_CustomProfile
struct
{
state
protoimpl
.
MessageState
`protogen:"open.v1"`
...
...
@@ -899,7 +881,7 @@ const file_api_v1_instance_service_proto_rawDesc = "" +
"
\a
version
\x18\x02
\x01
(
\t
R
\a
version
\x12\x12\n
"
+
"
\x04
mode
\x18\x03
\x01
(
\t
R
\x04
mode
\x12
!
\n
"
+
"
\f
instance_url
\x18\x06
\x01
(
\t
R
\v
instanceUrl
\"\x1b\n
"
+
"
\x19
GetInstanceProfileRequest
\"\x
ef
\x0f\n
"
+
"
\x19
GetInstanceProfileRequest
\"\x
99
\x0f\n
"
+
"
\x0f
InstanceSetting
\x12\x17\n
"
+
"
\x04
name
\x18\x01
\x01
(
\t
B
\x03\xe0
A
\b
R
\x04
name
\x12
W
\n
"
+
"
\x0f
general_setting
\x18\x02
\x01
(
\v
2,.memos.api.v1.InstanceSetting.GeneralSettingH
\x00
R
\x0e
generalSetting
\x12
W
\n
"
+
...
...
@@ -934,16 +916,13 @@ const file_api_v1_instance_service_proto_rawDesc = "" +
"
\x18
STORAGE_TYPE_UNSPECIFIED
\x10\x00\x12\f\n
"
+
"
\b
DATABASE
\x10\x01\x12\t\n
"
+
"
\x05
LOCAL
\x10\x02\x12\x06\n
"
+
"
\x02
S3
\x10\x03\x1a\x
ea
\x02\n
"
+
"
\x02
S3
\x10\x03\x1a\x
94
\x02\n
"
+
"
\x12
MemoRelatedSetting
\x12
<
\n
"
+
"
\x1a
disallow_public_visibility
\x18\x01
\x01
(
\b
R
\x18
disallowPublicVisibility
\x12
7
\n
"
+
"
\x18
display_with_update_time
\x18\x02
\x01
(
\b
R
\x15
displayWithUpdateTime
\x12
0
\n
"
+
"
\x14
content_length_limit
\x18\x03
\x01
(
\x05
R
\x12
contentLengthLimit
\x12
7
\n
"
+
"
\x18
enable_double_click_edit
\x18\x04
\x01
(
\b
R
\x15
enableDoubleClickEdit
\x12\x1c\n
"
+
"
\t
reactions
\x18\a
\x03
(
\t
R
\t
reactions
\x12
7
\n
"
+
"
\x18
enable_blur_nsfw_content
\x18\t
\x01
(
\b
R
\x15
enableBlurNsfwContent
\x12\x1b\n
"
+
"
\t
nsfw_tags
\x18\n
"
+
"
\x03
(
\t
R
\b
nsfwTags
\"
F
\n
"
+
"
\t
reactions
\x18\a
\x03
(
\t
R
\t
reactions
\"
F
\n
"
+
"
\x03
Key
\x12\x13\n
"
+
"
\x0f
KEY_UNSPECIFIED
\x10\x00\x12\v\n
"
+
"
\a
GENERAL
\x10\x01\x12\v\n
"
+
...
...
proto/gen/openapi.yaml
View file @
5d677828
...
...
@@ -2210,14 +2210,6 @@ components:
items
:
type
:
string
description
:
reactions is the list of reactions.
enableBlurNsfwContent
:
type
:
boolean
description
:
enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
nsfwTags
:
type
:
array
items
:
type
:
string
description
:
nsfw_tags is the list of tags that mark content as NSFW for blurring.
description
:
Memo-related instance settings and policies.
InstanceSetting_StorageSetting
:
type
:
object
...
...
proto/gen/store/instance_setting.pb.go
View file @
5d677828
...
...
@@ -650,11 +650,7 @@ type InstanceMemoRelatedSetting struct {
// enable_double_click_edit enables editing on double click.
EnableDoubleClickEdit
bool
`protobuf:"varint,4,opt,name=enable_double_click_edit,json=enableDoubleClickEdit,proto3" json:"enable_double_click_edit,omitempty"`
// reactions is the list of reactions.
Reactions
[]
string
`protobuf:"bytes,7,rep,name=reactions,proto3" json:"reactions,omitempty"`
// enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
EnableBlurNsfwContent
bool
`protobuf:"varint,9,opt,name=enable_blur_nsfw_content,json=enableBlurNsfwContent,proto3" json:"enable_blur_nsfw_content,omitempty"`
// nsfw_tags is the list of tags that mark content as NSFW for blurring.
NsfwTags
[]
string
`protobuf:"bytes,10,rep,name=nsfw_tags,json=nsfwTags,proto3" json:"nsfw_tags,omitempty"`
Reactions
[]
string
`protobuf:"bytes,7,rep,name=reactions,proto3" json:"reactions,omitempty"`
unknownFields
protoimpl
.
UnknownFields
sizeCache
protoimpl
.
SizeCache
}
...
...
@@ -724,20 +720,6 @@ func (x *InstanceMemoRelatedSetting) GetReactions() []string {
return
nil
}
func
(
x
*
InstanceMemoRelatedSetting
)
GetEnableBlurNsfwContent
()
bool
{
if
x
!=
nil
{
return
x
.
EnableBlurNsfwContent
}
return
false
}
func
(
x
*
InstanceMemoRelatedSetting
)
GetNsfwTags
()
[]
string
{
if
x
!=
nil
{
return
x
.
NsfwTags
}
return
nil
}
var
File_store_instance_setting_proto
protoreflect
.
FileDescriptor
const
file_store_instance_setting_proto_rawDesc
=
""
+
...
...
@@ -783,16 +765,13 @@ const file_store_instance_setting_proto_rawDesc = "" +
"
\b
endpoint
\x18\x03
\x01
(
\t
R
\b
endpoint
\x12\x16\n
"
+
"
\x06
region
\x18\x04
\x01
(
\t
R
\x06
region
\x12\x16\n
"
+
"
\x06
bucket
\x18\x05
\x01
(
\t
R
\x06
bucket
\x12
$
\n
"
+
"
\x0e
use_path_style
\x18\x06
\x01
(
\b
R
\f
usePathStyle
\"\x
f2
\x02\n
"
+
"
\x0e
use_path_style
\x18\x06
\x01
(
\b
R
\f
usePathStyle
\"\x
9c
\x02\n
"
+
"
\x1a
InstanceMemoRelatedSetting
\x12
<
\n
"
+
"
\x1a
disallow_public_visibility
\x18\x01
\x01
(
\b
R
\x18
disallowPublicVisibility
\x12
7
\n
"
+
"
\x18
display_with_update_time
\x18\x02
\x01
(
\b
R
\x15
displayWithUpdateTime
\x12
0
\n
"
+
"
\x14
content_length_limit
\x18\x03
\x01
(
\x05
R
\x12
contentLengthLimit
\x12
7
\n
"
+
"
\x18
enable_double_click_edit
\x18\x04
\x01
(
\b
R
\x15
enableDoubleClickEdit
\x12\x1c\n
"
+
"
\t
reactions
\x18\a
\x03
(
\t
R
\t
reactions
\x12
7
\n
"
+
"
\x18
enable_blur_nsfw_content
\x18\t
\x01
(
\b
R
\x15
enableBlurNsfwContent
\x12\x1b\n
"
+
"
\t
nsfw_tags
\x18\n
"
+
"
\x03
(
\t
R
\b
nsfwTags*q
\n
"
+
"
\t
reactions
\x18\a
\x03
(
\t
R
\t
reactions*q
\n
"
+
"
\x12
InstanceSettingKey
\x12
$
\n
"
+
" INSTANCE_SETTING_KEY_UNSPECIFIED
\x10\x00\x12\t\n
"
+
"
\x05
BASIC
\x10\x01\x12\v\n
"
+
...
...
proto/store/instance_setting.proto
View file @
5d677828
...
...
@@ -102,8 +102,4 @@ message InstanceMemoRelatedSetting {
bool
enable_double_click_edit
=
4
;
// reactions is the list of reactions.
repeated
string
reactions
=
7
;
// enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
bool
enable_blur_nsfw_content
=
9
;
// nsfw_tags is the list of tags that mark content as NSFW for blurring.
repeated
string
nsfw_tags
=
10
;
}
server/router/api/v1/instance_service.go
View file @
5d677828
...
...
@@ -251,8 +251,6 @@ func convertInstanceMemoRelatedSettingFromStore(setting *storepb.InstanceMemoRel
ContentLengthLimit
:
setting
.
ContentLengthLimit
,
EnableDoubleClickEdit
:
setting
.
EnableDoubleClickEdit
,
Reactions
:
setting
.
Reactions
,
EnableBlurNsfwContent
:
setting
.
EnableBlurNsfwContent
,
NsfwTags
:
setting
.
NsfwTags
,
}
}
...
...
@@ -266,8 +264,6 @@ func convertInstanceMemoRelatedSettingToStore(setting *v1pb.InstanceSetting_Memo
ContentLengthLimit
:
setting
.
ContentLengthLimit
,
EnableDoubleClickEdit
:
setting
.
EnableDoubleClickEdit
,
Reactions
:
setting
.
Reactions
,
EnableBlurNsfwContent
:
setting
.
EnableBlurNsfwContent
,
NsfwTags
:
setting
.
NsfwTags
,
}
}
...
...
store/instance_setting.go
View file @
5d677828
...
...
@@ -143,9 +143,6 @@ const DefaultContentLengthLimit = 8 * 1024
// DefaultReactions is the default reactions for memo related setting.
var
DefaultReactions
=
[]
string
{
"👍"
,
"👎"
,
"❤️"
,
"🎉"
,
"😄"
,
"😕"
,
"😢"
,
"😡"
}
// DefaultNsfwTags is the default tags that mark content as NSFW for blurring.
var
DefaultNsfwTags
=
[]
string
{
"nsfw"
}
func
(
s
*
Store
)
GetInstanceMemoRelatedSetting
(
ctx
context
.
Context
)
(
*
storepb
.
InstanceMemoRelatedSetting
,
error
)
{
instanceSetting
,
err
:=
s
.
GetInstanceSetting
(
ctx
,
&
FindInstanceSetting
{
Name
:
storepb
.
InstanceSettingKey_MEMO_RELATED
.
String
(),
...
...
@@ -164,9 +161,6 @@ func (s *Store) GetInstanceMemoRelatedSetting(ctx context.Context) (*storepb.Ins
if
len
(
instanceMemoRelatedSetting
.
Reactions
)
==
0
{
instanceMemoRelatedSetting
.
Reactions
=
append
(
instanceMemoRelatedSetting
.
Reactions
,
DefaultReactions
...
)
}
if
len
(
instanceMemoRelatedSetting
.
NsfwTags
)
==
0
{
instanceMemoRelatedSetting
.
NsfwTags
=
append
(
instanceMemoRelatedSetting
.
NsfwTags
,
DefaultNsfwTags
...
)
}
s
.
instanceSettingCache
.
Set
(
ctx
,
storepb
.
InstanceSettingKey_MEMO_RELATED
.
String
(),
&
storepb
.
InstanceSetting
{
Key
:
storepb
.
InstanceSettingKey_MEMO_RELATED
,
Value
:
&
storepb
.
InstanceSetting_MemoRelatedSetting
{
MemoRelatedSetting
:
instanceMemoRelatedSetting
},
...
...
web/src/components/MemoView/hooks/useNsfwContent.ts
View file @
5d677828
import
{
useState
}
from
"react"
;
import
{
useInstance
}
from
"@/contexts/InstanceContext"
;
import
type
{
Memo
}
from
"@/types/proto/api/v1/memo_service_pb"
;
export
interface
UseNsfwContentReturn
{
...
...
@@ -10,14 +9,12 @@ export interface UseNsfwContentReturn {
export
const
useNsfwContent
=
(
memo
:
Memo
,
initialShowNsfw
?:
boolean
):
UseNsfwContentReturn
=>
{
const
[
showNSFWContent
,
setShowNSFWContent
]
=
useState
(
initialShowNsfw
??
false
);
const
{
memoRelatedSetting
}
=
useInstance
();
const
nsfw
=
memoRelatedSetting
.
enableBlurNsfwContent
&&
memo
.
tags
?.
some
((
tag
)
=>
memoRelatedSetting
.
nsfwTags
.
some
((
nsfwTag
)
=>
tag
===
nsfwTag
||
tag
.
startsWith
(
`
${
nsfwTag
}
/`
)));
// Always blur content tagged with NSFW
const
nsfw
=
memo
.
tags
?.
includes
(
"NSFW"
)
??
false
;
return
{
nsfw
:
nsfw
??
false
,
nsfw
,
showNSFWContent
,
toggleNsfwVisibility
:
()
=>
setShowNSFWContent
((
prev
)
=>
!
prev
),
};
...
...
web/src/components/Settings/MemoRelatedSettings.tsx
View file @
5d677828
...
...
@@ -25,7 +25,6 @@ const MemoRelatedSettings = () => {
const
{
memoRelatedSetting
:
originalSetting
,
updateSetting
,
fetchSetting
}
=
useInstance
();
const
[
memoRelatedSetting
,
setMemoRelatedSetting
]
=
useState
<
InstanceSetting_MemoRelatedSetting
>
(
originalSetting
);
const
[
editingReaction
,
setEditingReaction
]
=
useState
<
string
>
(
""
);
const
[
editingNsfwTag
,
setEditingNsfwTag
]
=
useState
<
string
>
(
""
);
const
updatePartialSetting
=
(
partial
:
Partial
<
InstanceSetting_MemoRelatedSetting
>
)
=>
{
const
newInstanceMemoRelatedSetting
=
create
(
InstanceSetting_MemoRelatedSettingSchema
,
{
...
...
@@ -44,15 +43,6 @@ const MemoRelatedSettings = () => {
setEditingReaction
(
""
);
};
const
upsertNsfwTags
=
()
=>
{
if
(
!
editingNsfwTag
)
{
return
;
}
updatePartialSetting
({
nsfwTags
:
uniq
([...
memoRelatedSetting
.
nsfwTags
,
editingNsfwTag
.
trim
()])
});
setEditingNsfwTag
(
""
);
};
const
handleUpdateSetting
=
async
()
=>
{
if
(
memoRelatedSetting
.
reactions
.
length
===
0
)
{
toast
.
error
(
"Reactions must not be empty."
);
...
...
@@ -140,44 +130,6 @@ const MemoRelatedSettings = () => {
</
div
>
</
SettingGroup
>
<
SettingGroup
showSeparator
>
<
SettingRow
label=
{
t
(
"setting.memo-related-settings.enable-blur-nsfw-content"
)
}
>
<
Switch
checked=
{
memoRelatedSetting
.
enableBlurNsfwContent
}
onCheckedChange=
{
(
checked
)
=>
updatePartialSetting
({
enableBlurNsfwContent
:
checked
})
}
/>
</
SettingRow
>
<
div
className=
"w-full flex flex-col gap-2"
>
<
span
className=
"text-sm text-muted-foreground"
>
NSFW Tags
</
span
>
<
div
className=
"w-full flex flex-row flex-wrap gap-2"
>
{
memoRelatedSetting
.
nsfwTags
.
map
((
nsfwTag
)
=>
(
<
Badge
key=
{
nsfwTag
}
variant=
"outline"
className=
"flex items-center gap-1.5 h-8 px-3"
>
{
nsfwTag
}
<
span
className=
"cursor-pointer text-muted-foreground hover:text-destructive"
onClick=
{
()
=>
updatePartialSetting
({
nsfwTags
:
memoRelatedSetting
.
nsfwTags
.
filter
((
r
)
=>
r
!==
nsfwTag
)
})
}
>
<
X
className=
"w-3.5 h-3.5"
/>
</
span
>
</
Badge
>
))
}
<
div
className=
"flex items-center gap-1.5"
>
<
Input
className=
"w-32 h-8"
placeholder=
{
t
(
"common.input"
)
}
value=
{
editingNsfwTag
}
onChange=
{
(
event
)
=>
setEditingNsfwTag
(
event
.
target
.
value
.
trim
())
}
onKeyDown=
{
(
e
)
=>
e
.
key
===
"Enter"
&&
upsertNsfwTags
()
}
/>
<
Button
variant=
"ghost"
size=
"sm"
onClick=
{
upsertNsfwTags
}
className=
"h-8 w-8 p-0"
>
<
CheckIcon
className=
"w-4 h-4"
/>
</
Button
>
</
div
>
</
div
>
</
div
>
</
SettingGroup
>
<
div
className=
"w-full flex justify-end"
>
<
Button
disabled=
{
isEqual
(
memoRelatedSetting
,
originalSetting
)
}
onClick=
{
handleUpdateSetting
}
>
{
t
(
"common.save"
)
}
...
...
web/src/types/proto/api/v1/instance_service_pb.ts
View file @
5d677828
...
...
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file api/v1/instance_service.proto.
*/
export
const
file_api_v1_instance_service
:
GenFile
=
/*@__PURE__*/
fileDesc
(
"Ch1hcGkvdjEvaW5zdGFuY2Vfc2VydmljZS5wcm90bxIMbWVtb3MuYXBpLnYxIlUKD0luc3RhbmNlUHJvZmlsZRINCgVvd25lchgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEgwKBG1vZGUYAyABKAkSFAoMaW5zdGFuY2VfdXJsGAYgASgJIhsKGUdldEluc3RhbmNlUHJvZmlsZVJlcXVlc3Qi
6AsKD0luc3RhbmNlU2V0dGluZxIRCgRuYW1lGAEgASgJQgPgQQgSRwoPZ2VuZXJhbF9zZXR0aW5nGAIgASgLMiwubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZy5HZW5lcmFsU2V0dGluZ0gAEkcKD3N0b3JhZ2Vfc2V0dGluZxgDIAEoCzIsLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmdIABJQChRtZW1vX3JlbGF0ZWRfc2V0dGluZxgEIAEoCzIwLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuTWVtb1JlbGF0ZWRTZXR0aW5nSAAahwMKDkdlbmVyYWxTZXR0aW5nEiIKGmRpc2FsbG93X3VzZXJfcmVnaXN0cmF0aW9uGAIgASgIEh4KFmRpc2FsbG93X3Bhc3N3b3JkX2F1dGgYAyABKAgSGQoRYWRkaXRpb25hbF9zY3JpcHQYBCABKAkSGAoQYWRkaXRpb25hbF9zdHlsZRgFIAEoCRJSCg5jdXN0b21fcHJvZmlsZRgGIAEoCzI6Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuR2VuZXJhbFNldHRpbmcuQ3VzdG9tUHJvZmlsZRIdChV3ZWVrX3N0YXJ0X2RheV9vZmZzZXQYByABKAUSIAoYZGlzYWxsb3dfY2hhbmdlX3VzZXJuYW1lGAggASgIEiAKGGRpc2FsbG93X2NoYW5nZV9uaWNrbmFtZRgJIAEoCBpFCg1DdXN0b21Qcm9maWxlEg0KBXRpdGxlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGxvZ29fdXJsGAMgASgJGroDCg5TdG9yYWdlU2V0dGluZxJOCgxzdG9yYWdlX3R5cGUYASABKA4yOC5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nLlN0b3JhZ2VTZXR0aW5nLlN0b3JhZ2VUeXBlEhkKEWZpbGVwYXRoX3RlbXBsYXRlGAIgASgJEhwKFHVwbG9hZF9zaXplX2xpbWl0X21iGAMgASgDEkgKCXMzX2NvbmZpZxgEIAEoCzI1Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmcuUzNDb25maWcahgEKCFMzQ29uZmlnEhUKDWFjY2Vzc19rZXlfaWQYASABKAkSGQoRYWNjZXNzX2tleV9zZWNyZXQYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSDgoGcmVnaW9uGAQgASgJEg4KBmJ1Y2tldBgFIAEoCRIWCg51c2VfcGF0aF9zdHlsZRgGIAEoCCJMCgtTdG9yYWdlVHlwZRIcChhTVE9SQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIMCghEQVRBQkFTRRABEgkKBUxPQ0FMEAISBgoCUzMQAxriAQoSTWVtb1JlbGF0ZWRTZXR0aW5nEiIKGmRpc2FsbG93X3B1YmxpY192aXNpYmlsaXR5GAEgASgIEiAKGGRpc3BsYXlfd2l0aF91cGRhdGVfdGltZRgCIAEoCBIcChRjb250ZW50X2xlbmd0aF9saW1pdBgDIAEoBRIgChhlbmFibGVfZG91YmxlX2NsaWNrX2VkaXQYBCABKAgSEQoJcmVhY3Rpb25zGAcgAygJEiAKGGVuYWJsZV9ibHVyX25zZndfY29udGVudBgJIAEoCBIRCgluc2Z3X3RhZ3MYCiADKAkiRgoDS2V5EhMKD0tFWV9VTlNQRUNJRklFRBAAEgsKB0dFTkVSQUwQARILCgdTVE9SQUdFEAISEAoMTUVNT19SRUxBVEVEEAM6YepBXgocbWVtb3MuYXBpLnYxL0luc3RhbmNlU2V0dGluZxIbaW5zdGFuY2Uvc2V0dGluZ3Mve3NldHRpbmd9KhBpbnN0YW5jZVNldHRpbmdzMg9pbnN0YW5jZVNldHRpbmdCBwoFdmFsdWUiTwoZR2V0SW5zdGFuY2VTZXR0aW5nUmVxdWVzdBIyCgRuYW1lGAEgASgJQiTgQQL6QR4KHG1lbW9zLmFwaS52MS9JbnN0YW5jZVNldHRpbmciiQEKHFVwZGF0ZUluc3RhbmNlU2V0dGluZ1JlcXVlc3QSMwoHc2V0dGluZxgBIAEoCzIdLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmdCA+BBAhI0Cgt1cGRhdGVfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCA+BBATLbAwoPSW5zdGFuY2VTZXJ2aWNlEn4KEkdldEluc3RhbmNlUHJvZmlsZRInLm1lbW9zLmFwaS52MS5HZXRJbnN0YW5jZVByb2ZpbGVSZXF1ZXN0Gh0ubWVtb3MuYXBpLnYxLkluc3RhbmNlUHJvZmlsZSIggtPkkwIaEhgvYXBpL3YxL2luc3RhbmNlL3Byb2ZpbGUSjwEKEkdldEluc3RhbmNlU2V0dGluZxInLm1lbW9zLmFwaS52MS5HZXRJbnN0YW5jZVNldHRpbmdSZXF1ZXN0Gh0ubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZyIx2kEEbmFtZYLT5JMCJBIiL2FwaS92MS97bmFtZT1pbnN0YW5jZS9zZXR0aW5ncy8qfRK1AQoVVXBkYXRlSW5zdGFuY2VTZXR0aW5nEioubWVtb3MuYXBpLnYxLlVwZGF0ZUluc3RhbmNlU2V0dGluZ1JlcXVlc3QaHS5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nIlHaQRNzZXR0aW5nLHVwZGF0ZV9tYXNrgtPkkwI1OgdzZXR0aW5nMiovYXBpL3YxL3tzZXR0aW5nLm5hbWU9aW5zdGFuY2Uvc2V0dGluZ3MvKn1CrAEKEGNvbS5tZW1vcy5hcGkudjFCFEluc3RhbmNlU2VydmljZVByb3RvUAFaMGdpdGh1Yi5jb20vdXNlbWVtb3MvbWVtb3MvcHJvdG8vZ2VuL2FwaS92MTthcGl2MaICA01BWKoCDE1lbW9zLkFwaS5WMcoCDE1lbW9zXEFwaVxWMeICGE1lbW9zXEFwaVxWMVxHUEJNZXRhZGF0YeoCDk1lbW9zOjpBcGk6OlYxYgZwcm90bzM
"
,
[
file_google_api_annotations
,
file_google_api_client
,
file_google_api_field_behavior
,
file_google_api_resource
,
file_google_protobuf_field_mask
]);
fileDesc
(
"Ch1hcGkvdjEvaW5zdGFuY2Vfc2VydmljZS5wcm90bxIMbWVtb3MuYXBpLnYxIlUKD0luc3RhbmNlUHJvZmlsZRINCgVvd25lchgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEgwKBG1vZGUYAyABKAkSFAoMaW5zdGFuY2VfdXJsGAYgASgJIhsKGUdldEluc3RhbmNlUHJvZmlsZVJlcXVlc3Qi
swsKD0luc3RhbmNlU2V0dGluZxIRCgRuYW1lGAEgASgJQgPgQQgSRwoPZ2VuZXJhbF9zZXR0aW5nGAIgASgLMiwubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZy5HZW5lcmFsU2V0dGluZ0gAEkcKD3N0b3JhZ2Vfc2V0dGluZxgDIAEoCzIsLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmdIABJQChRtZW1vX3JlbGF0ZWRfc2V0dGluZxgEIAEoCzIwLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuTWVtb1JlbGF0ZWRTZXR0aW5nSAAahwMKDkdlbmVyYWxTZXR0aW5nEiIKGmRpc2FsbG93X3VzZXJfcmVnaXN0cmF0aW9uGAIgASgIEh4KFmRpc2FsbG93X3Bhc3N3b3JkX2F1dGgYAyABKAgSGQoRYWRkaXRpb25hbF9zY3JpcHQYBCABKAkSGAoQYWRkaXRpb25hbF9zdHlsZRgFIAEoCRJSCg5jdXN0b21fcHJvZmlsZRgGIAEoCzI6Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuR2VuZXJhbFNldHRpbmcuQ3VzdG9tUHJvZmlsZRIdChV3ZWVrX3N0YXJ0X2RheV9vZmZzZXQYByABKAUSIAoYZGlzYWxsb3dfY2hhbmdlX3VzZXJuYW1lGAggASgIEiAKGGRpc2FsbG93X2NoYW5nZV9uaWNrbmFtZRgJIAEoCBpFCg1DdXN0b21Qcm9maWxlEg0KBXRpdGxlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGxvZ29fdXJsGAMgASgJGroDCg5TdG9yYWdlU2V0dGluZxJOCgxzdG9yYWdlX3R5cGUYASABKA4yOC5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nLlN0b3JhZ2VTZXR0aW5nLlN0b3JhZ2VUeXBlEhkKEWZpbGVwYXRoX3RlbXBsYXRlGAIgASgJEhwKFHVwbG9hZF9zaXplX2xpbWl0X21iGAMgASgDEkgKCXMzX2NvbmZpZxgEIAEoCzI1Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmcuUzNDb25maWcahgEKCFMzQ29uZmlnEhUKDWFjY2Vzc19rZXlfaWQYASABKAkSGQoRYWNjZXNzX2tleV9zZWNyZXQYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSDgoGcmVnaW9uGAQgASgJEg4KBmJ1Y2tldBgFIAEoCRIWCg51c2VfcGF0aF9zdHlsZRgGIAEoCCJMCgtTdG9yYWdlVHlwZRIcChhTVE9SQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIMCghEQVRBQkFTRRABEgkKBUxPQ0FMEAISBgoCUzMQAxqtAQoSTWVtb1JlbGF0ZWRTZXR0aW5nEiIKGmRpc2FsbG93X3B1YmxpY192aXNpYmlsaXR5GAEgASgIEiAKGGRpc3BsYXlfd2l0aF91cGRhdGVfdGltZRgCIAEoCBIcChRjb250ZW50X2xlbmd0aF9saW1pdBgDIAEoBRIgChhlbmFibGVfZG91YmxlX2NsaWNrX2VkaXQYBCABKAgSEQoJcmVhY3Rpb25zGAcgAygJIkYKA0tleRITCg9LRVlfVU5TUEVDSUZJRUQQABILCgdHRU5FUkFMEAESCwoHU1RPUkFHRRACEhAKDE1FTU9fUkVMQVRFRBADOmHqQV4KHG1lbW9zLmFwaS52MS9JbnN0YW5jZVNldHRpbmcSG2luc3RhbmNlL3NldHRpbmdzL3tzZXR0aW5nfSoQaW5zdGFuY2VTZXR0aW5nczIPaW5zdGFuY2VTZXR0aW5nQgcKBXZhbHVlIk8KGUdldEluc3RhbmNlU2V0dGluZ1JlcXVlc3QSMgoEbmFtZRgBIAEoCUIk4EEC+kEeChxtZW1vcy5hcGkudjEvSW5zdGFuY2VTZXR0aW5nIokBChxVcGRhdGVJbnN0YW5jZVNldHRpbmdSZXF1ZXN0EjMKB3NldHRpbmcYASABKAsyHS5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nQgPgQQISNAoLdXBkYXRlX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgPgQQEy2wMKD0luc3RhbmNlU2VydmljZRJ+ChJHZXRJbnN0YW5jZVByb2ZpbGUSJy5tZW1vcy5hcGkudjEuR2V0SW5zdGFuY2VQcm9maWxlUmVxdWVzdBodLm1lbW9zLmFwaS52MS5JbnN0YW5jZVByb2ZpbGUiIILT5JMCGhIYL2FwaS92MS9pbnN0YW5jZS9wcm9maWxlEo8BChJHZXRJbnN0YW5jZVNldHRpbmcSJy5tZW1vcy5hcGkudjEuR2V0SW5zdGFuY2VTZXR0aW5nUmVxdWVzdBodLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmciMdpBBG5hbWWC0+STAiQSIi9hcGkvdjEve25hbWU9aW5zdGFuY2Uvc2V0dGluZ3MvKn0StQEKFVVwZGF0ZUluc3RhbmNlU2V0dGluZxIqLm1lbW9zLmFwaS52MS5VcGRhdGVJbnN0YW5jZVNldHRpbmdSZXF1ZXN0Gh0ubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZyJR2kETc2V0dGluZyx1cGRhdGVfbWFza4LT5JMCNToHc2V0dGluZzIqL2FwaS92MS97c2V0dGluZy5uYW1lPWluc3RhbmNlL3NldHRpbmdzLyp9QqwBChBjb20ubWVtb3MuYXBpLnYxQhRJbnN0YW5jZVNlcnZpY2VQcm90b1ABWjBnaXRodWIuY29tL3VzZW1lbW9zL21lbW9zL3Byb3RvL2dlbi9hcGkvdjE7YXBpdjGiAgNNQViqAgxNZW1vcy5BcGkuVjHKAgxNZW1vc1xBcGlcVjHiAhhNZW1vc1xBcGlcVjFcR1BCTWV0YWRhdGHqAg5NZW1vczo6QXBpOjpWMWIGcHJvdG8z
"
,
[
file_google_api_annotations
,
file_google_api_client
,
file_google_api_field_behavior
,
file_google_api_resource
,
file_google_protobuf_field_mask
]);
/**
* Instance profile message containing basic instance information.
...
...
@@ -389,20 +389,6 @@ export type InstanceSetting_MemoRelatedSetting = Message<"memos.api.v1.InstanceS
* @generated from field: repeated string reactions = 7;
*/
reactions
:
string
[];
/**
* enable_blur_nsfw_content enables blurring of content marked as not safe for work (NSFW).
*
* @generated from field: bool enable_blur_nsfw_content = 9;
*/
enableBlurNsfwContent
:
boolean
;
/**
* nsfw_tags is the list of tags that mark content as NSFW for blurring.
*
* @generated from field: repeated string nsfw_tags = 10;
*/
nsfwTags
:
string
[];
};
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment