1
1
mirror of https://github.com/kokonect-link/cherrypick synced 2024-12-05 02:08:56 +09:00

Update trend.ts

This commit is contained in:
syuilo 2020-02-15 23:01:41 +09:00
parent 05d7198667
commit bef67fa275

View File

@ -11,7 +11,7 @@ import { Note } from '../../../../models/entities/note';
..PostgreSQLでどうするのか分からないので単にAの内に投稿されたユニーク投稿数が多いハッシュタグ ..PostgreSQLでどうするのか分からないので単にAの内に投稿されたユニーク投稿数が多いハッシュタグ
*/ */
const rangeA = 1000 * 60 * 30; // 30分 const rangeA = 1000 * 60 * 60; // 60分
//const rangeB = 1000 * 60 * 120; // 2時間 //const rangeB = 1000 * 60 * 120; // 2時間
//const coefficient = 1.25; // 「n倍」の部分 //const coefficient = 1.25; // 「n倍」の部分
//const requiredUsers = 3; // 最低何人がそのタグを投稿している必要があるか //const requiredUsers = 3; // 最低何人がそのタグを投稿している必要があるか
@ -123,16 +123,16 @@ export default define(meta, async () => {
} }
const countsLog = await Promise.all(countPromises); const countsLog = await Promise.all(countPromises);
//#endregion
const totalCounts = await Promise.all(hots.map(tag => Notes.createQueryBuilder('note') const totalCounts = await Promise.all(hots.map(tag => Notes.createQueryBuilder('note')
.select('count(distinct note.userId)') .select('count(distinct note.userId)')
.where(':tag = ANY(note.tags)', { tag: tag }) .where(':tag = ANY(note.tags)', { tag: tag })
.andWhere('note.createdAt > :gt', { gt: new Date(now.getTime() - (interval * range)) }) .andWhere('note.createdAt > :gt', { gt: new Date(now.getTime() - rangeA) })
.cache(60000) // 1 min .cache(60000 * 60) // 60 min
.getRawOne() .getRawOne()
.then(x => parseInt(x.count, 10)) .then(x => parseInt(x.count, 10))
)); ));
//#endregion
const stats = hots.map((tag, i) => ({ const stats = hots.map((tag, i) => ({
tag, tag,