Merge pull request '[PR]: [mastodon-client] Always sort timelines by id descending' (#10443) from e2net/calckey:masto-client-improvements into develop

Reviewed-on: https://codeberg.org/calckey/calckey/pulls/10443
This commit is contained in:
Kainoa Kanter 2023-07-09 01:58:57 +00:00
commit b51ed25c1e

View file

@ -1841,7 +1841,7 @@ export default class Misskey implements MegalodonInterface {
.post<Array<MisskeyAPI.Entity.Note>>('/api/notes/global-timeline', params) .post<Array<MisskeyAPI.Entity.Note>>('/api/notes/global-timeline', params)
.then(async res => ({ .then(async res => ({
...res, ...res,
data: await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache))) data: (await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache)))).sort(this.sortByIdDesc)
})) }))
} }
@ -1899,7 +1899,7 @@ export default class Misskey implements MegalodonInterface {
.post<Array<MisskeyAPI.Entity.Note>>('/api/notes/local-timeline', params) .post<Array<MisskeyAPI.Entity.Note>>('/api/notes/local-timeline', params)
.then(async res => ({ .then(async res => ({
...res, ...res,
data: await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache))) data: (await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache)))).sort(this.sortByIdDesc)
})) }))
} }
@ -1963,7 +1963,7 @@ export default class Misskey implements MegalodonInterface {
.post<Array<MisskeyAPI.Entity.Note>>('/api/notes/search-by-tag', params) .post<Array<MisskeyAPI.Entity.Note>>('/api/notes/search-by-tag', params)
.then(async res => ({ .then(async res => ({
...res, ...res,
data: await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache))) data: (await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache)))).sort(this.sortByIdDesc)
})) }))
} }
@ -2018,7 +2018,7 @@ export default class Misskey implements MegalodonInterface {
.post<Array<MisskeyAPI.Entity.Note>>('/api/notes/timeline', params) .post<Array<MisskeyAPI.Entity.Note>>('/api/notes/timeline', params)
.then(async res => ({ .then(async res => ({
...res, ...res,
data: await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache))) data: (await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache)))).sort(this.sortByIdDesc)
})) }))
} }
@ -2074,7 +2074,7 @@ export default class Misskey implements MegalodonInterface {
} }
return this.client return this.client
.post<Array<MisskeyAPI.Entity.Note>>('/api/notes/user-list-timeline', params) .post<Array<MisskeyAPI.Entity.Note>>('/api/notes/user-list-timeline', params)
.then(async res => ({ ...res, data: await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache))) })) .then(async res => ({ ...res, data: (await Promise.all(res.data.map(n => this.noteWithDetails(n, this.baseUrlToHost(this.baseUrl), accountCache)))).sort(this.sortByIdDesc) }))
} }
// ====================================== // ======================================
@ -2144,6 +2144,15 @@ export default class Misskey implements MegalodonInterface {
}) })
} }
private sortByIdDesc(a: Entity.Status, b: Entity.Status): number {
if (a.id < b.id)
return 1;
if (a.id > b.id)
return -1;
return 0;
}
// ====================================== // ======================================
// timelines/lists // timelines/lists
// ====================================== // ======================================
@ -2276,7 +2285,7 @@ export default class Misskey implements MegalodonInterface {
if (options) { if (options) {
if (options.limit) { if (options.limit) {
params = Object.assign(params, { params = Object.assign(params, {
limit: options.limit limit: options.limit <= 100 ? options.limit : 100
}) })
} }
else { else {