mirror of https://github.com/usememos/memos.git
refactor: remove NSFW content settings from instance configuration
This commit is contained in:
parent
96a91ebff0
commit
5d677828a6
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 = "" +
|
|||
"\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" +
|
||||
"\x04mode\x18\x03 \x01(\tR\x04mode\x12!\n" +
|
||||
"\finstance_url\x18\x06 \x01(\tR\vinstanceUrl\"\x1b\n" +
|
||||
"\x19GetInstanceProfileRequest\"\xef\x0f\n" +
|
||||
"\x19GetInstanceProfileRequest\"\x99\x0f\n" +
|
||||
"\x0fInstanceSetting\x12\x17\n" +
|
||||
"\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12W\n" +
|
||||
"\x0fgeneral_setting\x18\x02 \x01(\v2,.memos.api.v1.InstanceSetting.GeneralSettingH\x00R\x0egeneralSetting\x12W\n" +
|
||||
|
|
@ -934,16 +916,13 @@ const file_api_v1_instance_service_proto_rawDesc = "" +
|
|||
"\x18STORAGE_TYPE_UNSPECIFIED\x10\x00\x12\f\n" +
|
||||
"\bDATABASE\x10\x01\x12\t\n" +
|
||||
"\x05LOCAL\x10\x02\x12\x06\n" +
|
||||
"\x02S3\x10\x03\x1a\xea\x02\n" +
|
||||
"\x02S3\x10\x03\x1a\x94\x02\n" +
|
||||
"\x12MemoRelatedSetting\x12<\n" +
|
||||
"\x1adisallow_public_visibility\x18\x01 \x01(\bR\x18disallowPublicVisibility\x127\n" +
|
||||
"\x18display_with_update_time\x18\x02 \x01(\bR\x15displayWithUpdateTime\x120\n" +
|
||||
"\x14content_length_limit\x18\x03 \x01(\x05R\x12contentLengthLimit\x127\n" +
|
||||
"\x18enable_double_click_edit\x18\x04 \x01(\bR\x15enableDoubleClickEdit\x12\x1c\n" +
|
||||
"\treactions\x18\a \x03(\tR\treactions\x127\n" +
|
||||
"\x18enable_blur_nsfw_content\x18\t \x01(\bR\x15enableBlurNsfwContent\x12\x1b\n" +
|
||||
"\tnsfw_tags\x18\n" +
|
||||
" \x03(\tR\bnsfwTags\"F\n" +
|
||||
"\treactions\x18\a \x03(\tR\treactions\"F\n" +
|
||||
"\x03Key\x12\x13\n" +
|
||||
"\x0fKEY_UNSPECIFIED\x10\x00\x12\v\n" +
|
||||
"\aGENERAL\x10\x01\x12\v\n" +
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 = "" +
|
|||
"\bendpoint\x18\x03 \x01(\tR\bendpoint\x12\x16\n" +
|
||||
"\x06region\x18\x04 \x01(\tR\x06region\x12\x16\n" +
|
||||
"\x06bucket\x18\x05 \x01(\tR\x06bucket\x12$\n" +
|
||||
"\x0euse_path_style\x18\x06 \x01(\bR\fusePathStyle\"\xf2\x02\n" +
|
||||
"\x0euse_path_style\x18\x06 \x01(\bR\fusePathStyle\"\x9c\x02\n" +
|
||||
"\x1aInstanceMemoRelatedSetting\x12<\n" +
|
||||
"\x1adisallow_public_visibility\x18\x01 \x01(\bR\x18disallowPublicVisibility\x127\n" +
|
||||
"\x18display_with_update_time\x18\x02 \x01(\bR\x15displayWithUpdateTime\x120\n" +
|
||||
"\x14content_length_limit\x18\x03 \x01(\x05R\x12contentLengthLimit\x127\n" +
|
||||
"\x18enable_double_click_edit\x18\x04 \x01(\bR\x15enableDoubleClickEdit\x12\x1c\n" +
|
||||
"\treactions\x18\a \x03(\tR\treactions\x127\n" +
|
||||
"\x18enable_blur_nsfw_content\x18\t \x01(\bR\x15enableBlurNsfwContent\x12\x1b\n" +
|
||||
"\tnsfw_tags\x18\n" +
|
||||
" \x03(\tR\bnsfwTags*q\n" +
|
||||
"\treactions\x18\a \x03(\tR\treactions*q\n" +
|
||||
"\x12InstanceSettingKey\x12$\n" +
|
||||
" INSTANCE_SETTING_KEY_UNSPECIFIED\x10\x00\x12\t\n" +
|
||||
"\x05BASIC\x10\x01\x12\v\n" +
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
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),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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")}
|
||||
|
|
|
|||
|
|
@ -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("Ch1hcGkvdjEvaW5zdGFuY2Vfc2VydmljZS5wcm90bxIMbWVtb3MuYXBpLnYxIlUKD0luc3RhbmNlUHJvZmlsZRINCgVvd25lchgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEgwKBG1vZGUYAyABKAkSFAoMaW5zdGFuY2VfdXJsGAYgASgJIhsKGUdldEluc3RhbmNlUHJvZmlsZVJlcXVlc3Qi6AsKD0luc3RhbmNlU2V0dGluZxIRCgRuYW1lGAEgASgJQgPgQQgSRwoPZ2VuZXJhbF9zZXR0aW5nGAIgASgLMiwubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZy5HZW5lcmFsU2V0dGluZ0gAEkcKD3N0b3JhZ2Vfc2V0dGluZxgDIAEoCzIsLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmdIABJQChRtZW1vX3JlbGF0ZWRfc2V0dGluZxgEIAEoCzIwLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuTWVtb1JlbGF0ZWRTZXR0aW5nSAAahwMKDkdlbmVyYWxTZXR0aW5nEiIKGmRpc2FsbG93X3VzZXJfcmVnaXN0cmF0aW9uGAIgASgIEh4KFmRpc2FsbG93X3Bhc3N3b3JkX2F1dGgYAyABKAgSGQoRYWRkaXRpb25hbF9zY3JpcHQYBCABKAkSGAoQYWRkaXRpb25hbF9zdHlsZRgFIAEoCRJSCg5jdXN0b21fcHJvZmlsZRgGIAEoCzI6Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuR2VuZXJhbFNldHRpbmcuQ3VzdG9tUHJvZmlsZRIdChV3ZWVrX3N0YXJ0X2RheV9vZmZzZXQYByABKAUSIAoYZGlzYWxsb3dfY2hhbmdlX3VzZXJuYW1lGAggASgIEiAKGGRpc2FsbG93X2NoYW5nZV9uaWNrbmFtZRgJIAEoCBpFCg1DdXN0b21Qcm9maWxlEg0KBXRpdGxlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGxvZ29fdXJsGAMgASgJGroDCg5TdG9yYWdlU2V0dGluZxJOCgxzdG9yYWdlX3R5cGUYASABKA4yOC5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nLlN0b3JhZ2VTZXR0aW5nLlN0b3JhZ2VUeXBlEhkKEWZpbGVwYXRoX3RlbXBsYXRlGAIgASgJEhwKFHVwbG9hZF9zaXplX2xpbWl0X21iGAMgASgDEkgKCXMzX2NvbmZpZxgEIAEoCzI1Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmcuUzNDb25maWcahgEKCFMzQ29uZmlnEhUKDWFjY2Vzc19rZXlfaWQYASABKAkSGQoRYWNjZXNzX2tleV9zZWNyZXQYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSDgoGcmVnaW9uGAQgASgJEg4KBmJ1Y2tldBgFIAEoCRIWCg51c2VfcGF0aF9zdHlsZRgGIAEoCCJMCgtTdG9yYWdlVHlwZRIcChhTVE9SQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIMCghEQVRBQkFTRRABEgkKBUxPQ0FMEAISBgoCUzMQAxriAQoSTWVtb1JlbGF0ZWRTZXR0aW5nEiIKGmRpc2FsbG93X3B1YmxpY192aXNpYmlsaXR5GAEgASgIEiAKGGRpc3BsYXlfd2l0aF91cGRhdGVfdGltZRgCIAEoCBIcChRjb250ZW50X2xlbmd0aF9saW1pdBgDIAEoBRIgChhlbmFibGVfZG91YmxlX2NsaWNrX2VkaXQYBCABKAgSEQoJcmVhY3Rpb25zGAcgAygJEiAKGGVuYWJsZV9ibHVyX25zZndfY29udGVudBgJIAEoCBIRCgluc2Z3X3RhZ3MYCiADKAkiRgoDS2V5EhMKD0tFWV9VTlNQRUNJRklFRBAAEgsKB0dFTkVSQUwQARILCgdTVE9SQUdFEAISEAoMTUVNT19SRUxBVEVEEAM6YepBXgocbWVtb3MuYXBpLnYxL0luc3RhbmNlU2V0dGluZxIbaW5zdGFuY2Uvc2V0dGluZ3Mve3NldHRpbmd9KhBpbnN0YW5jZVNldHRpbmdzMg9pbnN0YW5jZVNldHRpbmdCBwoFdmFsdWUiTwoZR2V0SW5zdGFuY2VTZXR0aW5nUmVxdWVzdBIyCgRuYW1lGAEgASgJQiTgQQL6QR4KHG1lbW9zLmFwaS52MS9JbnN0YW5jZVNldHRpbmciiQEKHFVwZGF0ZUluc3RhbmNlU2V0dGluZ1JlcXVlc3QSMwoHc2V0dGluZxgBIAEoCzIdLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmdCA+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("Ch1hcGkvdjEvaW5zdGFuY2Vfc2VydmljZS5wcm90bxIMbWVtb3MuYXBpLnYxIlUKD0luc3RhbmNlUHJvZmlsZRINCgVvd25lchgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEgwKBG1vZGUYAyABKAkSFAoMaW5zdGFuY2VfdXJsGAYgASgJIhsKGUdldEluc3RhbmNlUHJvZmlsZVJlcXVlc3QiswsKD0luc3RhbmNlU2V0dGluZxIRCgRuYW1lGAEgASgJQgPgQQgSRwoPZ2VuZXJhbF9zZXR0aW5nGAIgASgLMiwubWVtb3MuYXBpLnYxLkluc3RhbmNlU2V0dGluZy5HZW5lcmFsU2V0dGluZ0gAEkcKD3N0b3JhZ2Vfc2V0dGluZxgDIAEoCzIsLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmdIABJQChRtZW1vX3JlbGF0ZWRfc2V0dGluZxgEIAEoCzIwLm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuTWVtb1JlbGF0ZWRTZXR0aW5nSAAahwMKDkdlbmVyYWxTZXR0aW5nEiIKGmRpc2FsbG93X3VzZXJfcmVnaXN0cmF0aW9uGAIgASgIEh4KFmRpc2FsbG93X3Bhc3N3b3JkX2F1dGgYAyABKAgSGQoRYWRkaXRpb25hbF9zY3JpcHQYBCABKAkSGAoQYWRkaXRpb25hbF9zdHlsZRgFIAEoCRJSCg5jdXN0b21fcHJvZmlsZRgGIAEoCzI6Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuR2VuZXJhbFNldHRpbmcuQ3VzdG9tUHJvZmlsZRIdChV3ZWVrX3N0YXJ0X2RheV9vZmZzZXQYByABKAUSIAoYZGlzYWxsb3dfY2hhbmdlX3VzZXJuYW1lGAggASgIEiAKGGRpc2FsbG93X2NoYW5nZV9uaWNrbmFtZRgJIAEoCBpFCg1DdXN0b21Qcm9maWxlEg0KBXRpdGxlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGxvZ29fdXJsGAMgASgJGroDCg5TdG9yYWdlU2V0dGluZxJOCgxzdG9yYWdlX3R5cGUYASABKA4yOC5tZW1vcy5hcGkudjEuSW5zdGFuY2VTZXR0aW5nLlN0b3JhZ2VTZXR0aW5nLlN0b3JhZ2VUeXBlEhkKEWZpbGVwYXRoX3RlbXBsYXRlGAIgASgJEhwKFHVwbG9hZF9zaXplX2xpbWl0X21iGAMgASgDEkgKCXMzX2NvbmZpZxgEIAEoCzI1Lm1lbW9zLmFwaS52MS5JbnN0YW5jZVNldHRpbmcuU3RvcmFnZVNldHRpbmcuUzNDb25maWcahgEKCFMzQ29uZmlnEhUKDWFjY2Vzc19rZXlfaWQYASABKAkSGQoRYWNjZXNzX2tleV9zZWNyZXQYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSDgoGcmVnaW9uGAQgASgJEg4KBmJ1Y2tldBgFIAEoCRIWCg51c2VfcGF0aF9zdHlsZRgGIAEoCCJMCgtTdG9yYWdlVHlwZRIcChhTVE9SQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIMCghEQVRBQkFTRRABEgkKBUxPQ0FMEAISBgoCUzMQAxqtAQoSTWVtb1JlbGF0ZWRTZXR0aW5nEiIKGmRpc2FsbG93X3B1YmxpY192aXNpYmlsaXR5GAEgASgIEiAKGGRpc3BsYXlfd2l0aF91cGRhdGVfdGltZRgCIAEoCBIcChRjb250ZW50X2xlbmd0aF9saW1pdBgDIAEoBRIgChhlbmFibGVfZG91YmxlX2NsaWNrX2VkaXQYBCABKAgSEQoJcmVhY3Rpb25zGAcgAygJIkYKA0tleRITCg9LRVlfVU5TUEVDSUZJRUQQABILCgdHRU5FUkFMEAESCwoHU1RPUkFHRRACEhAKDE1FTU9fUkVMQVRFRBADOmHqQV4KHG1lbW9zLmFwaS52MS9JbnN0YW5jZVNldHRpbmcSG2luc3RhbmNlL3NldHRpbmdzL3tzZXR0aW5nfSoQaW5zdGFuY2VTZXR0aW5nczIPaW5zdGFuY2VTZXR0aW5nQgcKBXZhbHVlIk8KGUdldEluc3RhbmNlU2V0dGluZ1JlcXVlc3QSMgoEbmFtZRgBIAEoCUIk4EEC+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[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue