feat (client): ability to specify search engine in search bar MFM
This commit is contained in:
parent
fd523abdf7
commit
3d2ecadbc6
6 changed files with 36 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
# Unreleased
|
||||||
|
|
||||||
|
- add ability to specify the search engine used in the search bar MFM
|
||||||
|
|
||||||
# v20240216
|
# v20240216
|
||||||
|
|
||||||
- style changes in the web client (a770ef4314e21f17fdce1f19feb3758953b04486 ab39ff5954a392cc6688a02f1723e1702df5e35c 4eefd534d8150e2cd5cf31dddd327edceb5b84dc)
|
- style changes in the web client (a770ef4314e21f17fdce1f19feb3758953b04486 ab39ff5954a392cc6688a02f1723e1702df5e35c 4eefd534d8150e2cd5cf31dddd327edceb5b84dc)
|
||||||
|
|
|
@ -1167,6 +1167,8 @@ hideFollowButtons: "Hide follow buttons in a misclickable position"
|
||||||
forMobile: "Mobile"
|
forMobile: "Mobile"
|
||||||
replaceChatButtonWithAccountButton: "Replace chat button with account switch button"
|
replaceChatButtonWithAccountButton: "Replace chat button with account switch button"
|
||||||
replaceWidgetsButtonWithReloadButton: "Replace widgets button with reload button"
|
replaceWidgetsButtonWithReloadButton: "Replace widgets button with reload button"
|
||||||
|
searchEngine: "Search engine used in search bar MFM"
|
||||||
|
postSearch: "Post search on this server"
|
||||||
|
|
||||||
_sensitiveMediaDetection:
|
_sensitiveMediaDetection:
|
||||||
description: "Reduces the effort of server moderation through automatically recognizing
|
description: "Reduces the effort of server moderation through automatically recognizing
|
||||||
|
|
|
@ -2016,3 +2016,5 @@ hideFollowButtons: "誤タップしやすい位置にあるフォローボタン
|
||||||
forMobile: "携帯端末向け"
|
forMobile: "携帯端末向け"
|
||||||
replaceChatButtonWithAccountButton: "チャットのボタンをアカウント切り替えボタンに変更する"
|
replaceChatButtonWithAccountButton: "チャットのボタンをアカウント切り替えボタンに変更する"
|
||||||
replaceWidgetsButtonWithReloadButton: "ウィジェットのボタンを再読み込みボタンに変更する"
|
replaceWidgetsButtonWithReloadButton: "ウィジェットのボタンを再読み込みボタンに変更する"
|
||||||
|
searchEngine: "検索のMFMで使用する検索エンジン"
|
||||||
|
postSearch: "このサーバーの投稿検索"
|
||||||
|
|
|
@ -13,6 +13,7 @@ import { ref } from "vue";
|
||||||
import { i18n } from "@/i18n";
|
import { i18n } from "@/i18n";
|
||||||
import { useRouter } from "@/router";
|
import { useRouter } from "@/router";
|
||||||
import icon from "@/scripts/icon";
|
import icon from "@/scripts/icon";
|
||||||
|
import { defaultStore } from "@/store";
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
@ -23,7 +24,9 @@ const props = defineProps<{
|
||||||
const query = ref(props.q);
|
const query = ref(props.q);
|
||||||
|
|
||||||
const search = () => {
|
const search = () => {
|
||||||
router.push(`/search?q=${query.value}`);
|
if (defaultStore.state.searchURL === "")
|
||||||
|
router.push(`/search?q=${query.value}`);
|
||||||
|
else window.open(`${defaultStore.state.searchURL}${query.value}`, "_blank");
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,25 @@
|
||||||
{{ i18n.ts._serverDisconnectedBehavior.nothing }}
|
{{ i18n.ts._serverDisconnectedBehavior.nothing }}
|
||||||
</option>
|
</option>
|
||||||
</FormSelect>
|
</FormSelect>
|
||||||
|
|
||||||
|
<FormSelect v-model="searchURL" class="_formBlock">
|
||||||
|
<template #label>{{ i18n.ts.searchEngine }}</template>
|
||||||
|
<option value="https://duckduckgo.com/?q=">
|
||||||
|
DuckDuckGo (duckduckgo.com)
|
||||||
|
</option>
|
||||||
|
<option value="https://searxng.site/?q=">
|
||||||
|
SearXNG (searxng.site)
|
||||||
|
</option>
|
||||||
|
<option value="https://araa.extravi.dev/search?q=">
|
||||||
|
Araa (araa.extravi.dev)
|
||||||
|
</option>
|
||||||
|
<option value="https://google.com/search?q=">
|
||||||
|
Google Search (google.com)
|
||||||
|
</option>
|
||||||
|
<option value="">
|
||||||
|
{{ i18n.ts.postSearch }}
|
||||||
|
</option>
|
||||||
|
</FormSelect>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
|
@ -470,6 +489,7 @@ const openServerInfo = computed(
|
||||||
);
|
);
|
||||||
const iconSet = computed(defaultStore.makeGetterSetter("iconSet"));
|
const iconSet = computed(defaultStore.makeGetterSetter("iconSet"));
|
||||||
const useEmojiCdn = computed(defaultStore.makeGetterSetter("useEmojiCdn"));
|
const useEmojiCdn = computed(defaultStore.makeGetterSetter("useEmojiCdn"));
|
||||||
|
const searchURL = computed(defaultStore.makeGetterSetter("searchURL"));
|
||||||
|
|
||||||
// This feature (along with injectPromo) is currently disabled
|
// This feature (along with injectPromo) is currently disabled
|
||||||
// function onChangeInjectFeaturedNote(v) {
|
// function onChangeInjectFeaturedNote(v) {
|
||||||
|
|
|
@ -397,6 +397,10 @@ export const defaultStore = markRaw(
|
||||||
where: "device",
|
where: "device",
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
searchURL: {
|
||||||
|
where: "device",
|
||||||
|
default: "https://duckduckgo.com/?q=",
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue