Resolve #7149
This commit is contained in:
parent
823a0c86d3
commit
0a64d121d9
10 changed files with 27 additions and 12 deletions
|
@ -2,6 +2,7 @@ import $ from 'cafy';
|
|||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
import { Hashtags } from '../../../../models';
|
||||
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
|
@ -38,7 +39,7 @@ export const meta = {
|
|||
};
|
||||
|
||||
export default define(meta, async (ps, user) => {
|
||||
const hashtag = await Hashtags.findOne({ name: ps.tag.toLowerCase() });
|
||||
const hashtag = await Hashtags.findOne({ name: normalizeForSearch(ps.tag) });
|
||||
if (hashtag == null) {
|
||||
throw new ApiError(meta.errors.noSuchHashtag);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import { fetchMeta } from '../../../../misc/fetch-meta';
|
|||
import { Notes } from '../../../../models';
|
||||
import { Note } from '../../../../models/entities/note';
|
||||
import { safeForSql } from '../../../../misc/safe-for-sql';
|
||||
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
|
||||
|
||||
/*
|
||||
トレンドに載るためには「『直近a分間のユニーク投稿数が今からa分前~今からb分前の間のユニーク投稿数のn倍以上』のハッシュタグの上位5位以内に入る」ことが必要
|
||||
|
@ -54,7 +55,7 @@ export const meta = {
|
|||
|
||||
export default define(meta, async () => {
|
||||
const instance = await fetchMeta(true);
|
||||
const hiddenTags = instance.hiddenTags.map(t => t.toLowerCase());
|
||||
const hiddenTags = instance.hiddenTags.map(t => normalizeForSearch(t));
|
||||
|
||||
const now = new Date(); // 5分単位で丸めた現在日時
|
||||
now.setMinutes(Math.round(now.getMinutes() / 5) * 5, 0, 0);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import $ from 'cafy';
|
||||
import define from '../../define';
|
||||
import { Users } from '../../../../models';
|
||||
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
|
||||
|
||||
export const meta = {
|
||||
requireCredential: false as const,
|
||||
|
@ -59,7 +60,7 @@ export const meta = {
|
|||
|
||||
export default define(meta, async (ps, me) => {
|
||||
const query = Users.createQueryBuilder('user')
|
||||
.where(':tag = ANY(user.tags)', { tag: ps.tag.toLowerCase() });
|
||||
.where(':tag = ANY(user.tags)', { tag: normalizeForSearch(ps.tag) });
|
||||
|
||||
const recent = new Date(Date.now() - (1000 * 60 * 60 * 24 * 5));
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import { User } from '../../../../models/entities/user';
|
|||
import { UserProfile } from '../../../../models/entities/user-profile';
|
||||
import { ensure } from '../../../../prelude/ensure';
|
||||
import { notificationTypes } from '../../../../types';
|
||||
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
|
@ -286,7 +287,7 @@ export default define(meta, async (ps, user, token) => {
|
|||
if (newDescription != null) {
|
||||
const tokens = parse(newDescription);
|
||||
emojis = emojis.concat(extractEmojis(tokens!));
|
||||
tags = extractHashtags(tokens!).map(tag => tag.toLowerCase()).splice(0, 32);
|
||||
tags = extractHashtags(tokens!).map(tag => normalizeForSearch(tag)).splice(0, 32);
|
||||
}
|
||||
|
||||
updates.emojis = emojis;
|
||||
|
|
|
@ -7,6 +7,7 @@ import { generateMutedUserQuery } from '../../common/generate-muted-user-query';
|
|||
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
|
||||
import { Brackets } from 'typeorm';
|
||||
import { safeForSql } from '../../../../misc/safe-for-sql';
|
||||
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
|
||||
|
||||
export const meta = {
|
||||
desc: {
|
||||
|
@ -101,7 +102,7 @@ export default define(meta, async (ps, me) => {
|
|||
|
||||
if (ps.tag) {
|
||||
if (!safeForSql(ps.tag)) return;
|
||||
query.andWhere(`'{"${ps.tag.toLowerCase()}"}' <@ note.tags`);
|
||||
query.andWhere(`'{"${normalizeForSearch(ps.tag)}"}' <@ note.tags`);
|
||||
} else {
|
||||
let i = 0;
|
||||
query.andWhere(new Brackets(qb => {
|
||||
|
@ -109,7 +110,7 @@ export default define(meta, async (ps, me) => {
|
|||
qb.orWhere(new Brackets(qb => {
|
||||
for (const tag of tags) {
|
||||
if (!safeForSql(tag)) return;
|
||||
qb.andWhere(`'{"${tag.toLowerCase()}"}' <@ note.tags`);
|
||||
qb.andWhere(`'{"${normalizeForSearch(ps.tag)}"}' <@ note.tags`);
|
||||
i++;
|
||||
}
|
||||
}));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue