Fix video views

This commit is contained in:
Chocobozzz 2019-05-21 13:14:27 +02:00
parent ac3d2e0569
commit 63dc589865
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 38 additions and 4 deletions

View File

@ -14,7 +14,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
// ---------------------------------------------------------------------------
const LAST_MIGRATION_VERSION = 375
const LAST_MIGRATION_VERSION = 380
// ---------------------------------------------------------------------------

View File

@ -0,0 +1,29 @@
import * as Sequelize from 'sequelize'
async function up (utils: {
transaction: Sequelize.Transaction,
queryInterface: Sequelize.QueryInterface,
sequelize: Sequelize.Sequelize,
db: any
}): Promise<void> {
try {
await utils.queryInterface.removeColumn('application', 'createdAt')
} catch { /* the column could not exist */ }
try {
await utils.queryInterface.removeColumn('application', 'updatedAt')
} catch { /* the column could not exist */ }
try {
await utils.queryInterface.removeColumn('videoView', 'updatedAt')
} catch { /* the column could not exist */ }
}
function down (options) {
throw new Error('Not implemented.')
}
export {
up,
down
}

View File

@ -27,6 +27,12 @@ async function processVideosViews () {
logger.debug('Adding %d views to video %d in hour %d.', views, videoId, hour)
try {
const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
if (!video) {
logger.debug('Video %d does not exist anymore, skipping videos view addition.', videoId)
continue
}
await VideoViewModel.create({
startDate,
endDate,
@ -34,7 +40,6 @@ async function processVideosViews () {
videoId
})
const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
if (video.isOwned()) {
// If this is a remote video, the origin instance will send us an update
await VideoModel.incrementViews(videoId, views)
@ -44,13 +49,13 @@ async function processVideosViews () {
await federateVideoIfNeeded(video, false)
}
} catch (err) {
logger.debug('Cannot create video views for video %d in hour %d. Maybe the video does not exist anymore?', videoId, hour)
logger.error('Cannot create video views for video %d in hour %d.', videoId, hour, { err })
}
}
await Redis.Instance.deleteVideoViews(videoId, hour)
} catch (err) {
logger.error('Cannot update video views of video %d in hour %d.', videoId, hour)
logger.error('Cannot update video views of video %d in hour %d.', videoId, hour, { err })
}
}
}