mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-28 12:11:41 +00:00
Compare commits
No commits in common. "1f7be58124dce737ac252d08a7eefaa6990a6077" and "693dc00fa30365bb3a96c87c2a1c38564ead4457" have entirely different histories.
1f7be58124
...
693dc00fa3
2 changed files with 9 additions and 20 deletions
|
|
@ -57,7 +57,7 @@ WORKDIR /app
|
||||||
# Copy compiled frontend and server from build stages
|
# Copy compiled frontend and server from build stages
|
||||||
COPY --from=build-client /client/dist /app/client/dist
|
COPY --from=build-client /client/dist /app/client/dist
|
||||||
COPY --from=build-server /server /app
|
COPY --from=build-server /server /app
|
||||||
COPY --from=build-server ${NUSQLITE3_PATH} ${NUSQLITE3_PATH}
|
COPY --from=build-server /usr/local/lib/nusqlite3 /usr/local/lib/nusqlite3
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -766,25 +766,14 @@ class Database {
|
||||||
Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`)
|
Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt or if updatedAt is the same, remove arbitrary one)
|
// Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt)
|
||||||
const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT mp1.id, mp1.mediaItemId
|
// const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT id, mediaItemId FROM mediaProgresses WHERE (mediaItemId, userId, updatedAt) IN (SELECT mediaItemId, userId, MIN(updatedAt) FROM mediaProgresses GROUP BY mediaItemId, userId HAVING COUNT(*) > 1)`)
|
||||||
FROM mediaProgresses mp1
|
// for (const duplicateMediaProgress of duplicateMediaProgresses) {
|
||||||
WHERE EXISTS (
|
// Logger.warn(`Found duplicate mediaProgress for mediaItem "${duplicateMediaProgress.mediaItemId}" - removing it`)
|
||||||
SELECT 1
|
// await this.mediaProgressModel.destroy({
|
||||||
FROM mediaProgresses mp2
|
// where: { id: duplicateMediaProgress.id }
|
||||||
WHERE mp2.mediaItemId = mp1.mediaItemId
|
// })
|
||||||
AND mp2.userId = mp1.userId
|
// }
|
||||||
AND (
|
|
||||||
mp2.updatedAt > mp1.updatedAt
|
|
||||||
OR (mp2.updatedAt = mp1.updatedAt AND mp2.id < mp1.id)
|
|
||||||
)
|
|
||||||
)`)
|
|
||||||
for (const duplicateMediaProgress of duplicateMediaProgresses) {
|
|
||||||
Logger.warn(`Found duplicate mediaProgress for mediaItem "${duplicateMediaProgress.mediaItemId}" - removing it`)
|
|
||||||
await this.mediaProgressModel.destroy({
|
|
||||||
where: { id: duplicateMediaProgress.id }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async createTextSearchQuery(query) {
|
async createTextSearchQuery(query) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue