diff --git a/locales/index.d.ts b/locales/index.d.ts
index 387f92f456..e20b6093e6 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -11976,6 +11976,14 @@ export interface Locale extends ILocale {
* Separate with spaces for an AND condition or with line breaks for an OR condition. Using surrounding keywords with slashes will turn them into a regular expression. If you write only the domain name, it will be a backward match.
*/
"trustedLinkUrlPatternsDescription": string;
+ /**
+ * Link to external site warning exclusion list
+ */
+ "trustedDomainsList": string;
+ /**
+ * Following links to these domains will not show a warning. Write one domain per line.
+ */
+ "trustedDomainsListDescription": string;
/**
* Mutuals
*/
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index 54b5b6be1c..d21faf61e9 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -829,6 +829,15 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
+
+ {{ i18n.ts.trustedDomainsList }}
+ {{ i18n.ts.trustedDomainsListDescription }}
+
+
+
+
@@ -967,6 +976,7 @@ import FormLink from '@/components/form/link.vue';
import MkLink from '@/components/MkLink.vue';
import MkInfo from '@/components/MkInfo.vue';
import MkInput from '@/components/MkInput.vue';
+import MkTextarea from '@/components/MkTextarea.vue';
import { store } from '@/store.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
@@ -1073,6 +1083,11 @@ const lang = prefer.model('lang');
const fontSize = prefer.model('fontSize');
const useSystemFont = prefer.model('useSystemFont');
const cornerRadius = prefer.model('cornerRadius');
+const trustedDomains = prefer.model(
+ 'trustedDomains',
+ (domainsList) => domainsList.join('\n'),
+ (domainsString) => domainsString.split('\n').map( d => d.trim() ).filter( x => x.length > 0),
+);
watch([
hemisphere,
diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml
index c49b342f97..1fdcadd087 100644
--- a/sharkey-locales/en-US.yml
+++ b/sharkey-locales/en-US.yml
@@ -8,6 +8,8 @@ deleteAndEditConfirm: "Are you sure you want to redraft this note? This means yo
openRemoteProfile: "Open remote profile"
trustedLinkUrlPatterns: "Link to external site warning exclusion list"
trustedLinkUrlPatternsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition. Using surrounding keywords with slashes will turn them into a regular expression. If you write only the domain name, it will be a backward match."
+trustedDomainsList: "Link to external site warning exclusion list"
+trustedDomainsListDescription: "Following links to these domains will not show a warning. Write one domain per line."
mutuals: "Mutuals"
isLocked: "Private account"
isAdmin: "Administrator"