summaryrefslogtreecommitdiff
path: root/src/api/endpoints/posts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-12-23 04:38:56 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-12-23 04:38:56 +0900
commit7cf4aa9f110cebf1bf3017471b8e96d2522ad462 (patch)
tree0686d36a974724ebb91e9ec5d6973b0d60a0a360 /src/api/endpoints/posts
parentoops (diff)
downloadsharkey-7cf4aa9f110cebf1bf3017471b8e96d2522ad462.tar.gz
sharkey-7cf4aa9f110cebf1bf3017471b8e96d2522ad462.tar.bz2
sharkey-7cf4aa9f110cebf1bf3017471b8e96d2522ad462.zip
#1034
Diffstat (limited to 'src/api/endpoints/posts')
-rw-r--r--src/api/endpoints/posts/search.ts24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/api/endpoints/posts/search.ts b/src/api/endpoints/posts/search.ts
index 6cea5bdf53..26675989dd 100644
--- a/src/api/endpoints/posts/search.ts
+++ b/src/api/endpoints/posts/search.ts
@@ -97,14 +97,22 @@ async function byNative(res, rej, me, text, userId, following, mute, reply, repo
const push = x => q.$and.push(x);
if (text) {
- push({
- $and: text.split(' ').map(x => ({
- // キーワードが-で始まる場合そのキーワードを除外する
- text: x[0] == '-' ? {
- $not: new RegExp(escapeRegexp(x.substr(1)))
- } : new RegExp(escapeRegexp(x))
- }))
- });
+ // 完全一致検索
+ if (/"""(.+?)"""/.test(text)) {
+ const x = text.match(/"""(.+?)"""/)[1];
+ push({
+ text: x
+ });
+ } else {
+ push({
+ $and: text.split(' ').map(x => ({
+ // キーワードが-で始まる場合そのキーワードを除外する
+ text: x[0] == '-' ? {
+ $not: new RegExp(escapeRegexp(x.substr(1)))
+ } : new RegExp(escapeRegexp(x))
+ }))
+ });
+ }
}
if (userId) {