1
0
Fork 1
mirror of https://example.com synced 2024-11-22 11:16:38 +09:00

feat: ability to specify search engine for search MFM

This commit is contained in:
naskya 2023-09-21 16:47:06 +09:00
parent be496d2d24
commit 6661550a87
Signed by: naskya
GPG key ID: 164DFF24E2D40139
6 changed files with 42 additions and 1 deletions

View file

@ -32,6 +32,13 @@
## 細かい変更点
- 検索の MFM で使用する検索エンジンを設定から変更可能に
- 以下の選択肢から選べます
- DuckDuckGo (duckduckgo.com)
- SearXNG (searx.be)
- Google Search (google.com)
- Moon Search (search.naskya.net)
- サーバーの投稿検索
- サーバー設定の初期値を変更
- 新規登録を無効化
- サーバーメトリクスの表示を有効化

View file

@ -2155,3 +2155,5 @@ privacyForNerds: "Privacy protection in public places"
disableToast: "Don't show the \"Welcome back\" banner"
hideMyIcon: "Hide my icon"
hideMyName: "Hide my name and ID"
searchEngine: "Search engine used in search bar MFM"
postSearch: "Post search on this server"

View file

@ -2009,3 +2009,5 @@ disableToast: "「おかえりなさい、◯◯さん」を表示しない"
hideMyIcon: "自分のアイコンを表示しない"
hideMyName: "自分の名前とIDを表示しない"
openServerInfo: "投稿内のサーバー名をクリックでサーバー情報を開く"
searchEngine: "検索の MFM で使用する検索エンジン"
postSearch: "このサーバーの投稿検索"

View file

@ -12,6 +12,7 @@
import { ref } from "vue";
import { i18n } from "@/i18n";
import { useRouter } from "@/router";
import { defaultStore } from "@/store";
const router = useRouter();
@ -22,7 +23,9 @@ const props = defineProps<{
const query = ref(props.q);
const search = () => {
router.push(`/search/${query.value}`);
if (defaultStore.state.searchURL === "")
router.push(`/search?q=${query.value}`);
else window.open(`${defaultStore.state.searchURL}${query.value}`, "_blank");
};
</script>

View file

@ -108,6 +108,28 @@
{{ i18n.ts._serverDisconnectedBehavior.nothing }}
</option>
</FormSelect>
<FormSelect v-model="searchURL" class="_formBlock">
<template #label
>{{ i18n.ts.searchEngine
}}<span class="_beta">{{
i18n.ts.originalFeature
}}</span></template
>
<option value="https://duckduckgo.com/?q=">
DuckDuckGo (duckduckgo.com)
</option>
<option value="https://searx.be/?q=">SearXNG (searx.be)</option>
<option value="https://google.com/search?q=">
Google Search (google.com)
</option>
<option value="https://search.naskya.net/?q=">
Moon Search (search.naskya.net)
</option>
<option value="">
{{ i18n.ts.postSearch }}
</option>
</FormSelect>
</FormSection>
<FormSection>
@ -481,6 +503,7 @@ const hideMyName = computed(defaultStore.makeGetterSetter("hideMyName"));
const openServerInfo = computed(
defaultStore.makeGetterSetter("openServerInfo"),
);
const searchURL = computed(defaultStore.makeGetterSetter("searchURL"));
watch(swipeOnDesktop, () => {
defaultStore.set("swipeOnMobile", true);

View file

@ -393,6 +393,10 @@ export const defaultStore = markRaw(
where: "device",
default: true,
},
searchURL: {
where: "device",
default: "https://duckduckgo.com/?q=",
},
}),
);