diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-12-23 04:38:56 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-12-23 04:38:56 +0900 |
| commit | 7cf4aa9f110cebf1bf3017471b8e96d2522ad462 (patch) | |
| tree | 0686d36a974724ebb91e9ec5d6973b0d60a0a360 /src/api/endpoints/posts | |
| parent | oops (diff) | |
| download | sharkey-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.ts | 24 |
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) { |