diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-05-12 09:37:00 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-05-12 09:37:00 +0900 |
| commit | 410b9ad6bcde756e5cdf13f55711199027dfc7a6 (patch) | |
| tree | 97df10c9457b3908f6a8ca432142e71bdea6e870 /src | |
| parent | Fix #4875 (#4899) (diff) | |
| download | misskey-410b9ad6bcde756e5cdf13f55711199027dfc7a6.tar.gz misskey-410b9ad6bcde756e5cdf13f55711199027dfc7a6.tar.bz2 misskey-410b9ad6bcde756e5cdf13f55711199027dfc7a6.zip | |
Fix: ピン留め投稿の表示順がおかしい (#4906)
* Fix: syuilo#4904
* fix comment
Diffstat (limited to 'src')
| -rw-r--r-- | src/models/repositories/user.ts | 5 | ||||
| -rw-r--r-- | src/remote/activitypub/models/person.ts | 8 | ||||
| -rw-r--r-- | src/server/activitypub/featured.ts | 5 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts index 33eb53612a..330220fb72 100644 --- a/src/models/repositories/user.ts +++ b/src/models/repositories/user.ts @@ -72,7 +72,10 @@ export class UserRepository extends Repository<User> { const meId = me ? typeof me === 'string' ? me : me.id : null; const relation = meId && (meId !== user.id) && opts.detail ? await this.getRelation(meId, user.id) : null; - const pins = opts.detail ? await UserNotePinings.find({ userId: user.id }) : []; + const pins = opts.detail ? await UserNotePinings.find({ + where: { userId: user.id }, + order: { id: 'DESC' } + }) : []; const profile = opts.detail ? await UserProfiles.findOne(user.id).then(ensure) : null; const falsy = opts.detail ? false : undefined; diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index a40677dfc3..654d36403e 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -474,9 +474,15 @@ export async function updateFeatured(userId: User['id']) { .slice(0, 5) .map(item => limit(() => resolveNote(item, resolver)))); + // delete + await UserNotePinings.delete({ userId: user.id }); + + // とりあえずidを別の時間で生成して順番を維持 + let td = 0; for (const note of featuredNotes.filter(note => note != null)) { + td -= 1000; UserNotePinings.save({ - id: genId(), + id: genId(new Date(Date.now() + td)), createdAt: new Date(), userId: user.id, noteId: note!.id diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts index 86ec1000c7..dae72f16b6 100644 --- a/src/server/activitypub/featured.ts +++ b/src/server/activitypub/featured.ts @@ -21,7 +21,10 @@ export default async (ctx: Router.IRouterContext) => { return; } - const pinings = await UserNotePinings.find({ userId: user.id }); + const pinings = await UserNotePinings.find({ + where: { userId: user.id }, + order: { id: 'DESC' } + }); const pinnedNotes = await Promise.all(pinings.map(pining => Notes.findOne(pining.noteId).then(ensure))); |