You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
main
${ noResults }
56 lines
1.9 KiB
TypeScript
56 lines
1.9 KiB
TypeScript
import * as Sequelize from 'sequelize'
|
|||
|
|||
async function up (utils: {
|
|||
transaction: Sequelize.Transaction
|
|||
queryInterface: Sequelize.QueryInterface
|
|||
sequelize: Sequelize.Sequelize
|
|||
db: any
|
|||
}): Promise<void> {
|
|||
for (const column of [ 'filename', 'fileUrl', 'torrentFilename', 'torrentUrl' ]) {
|
|||
const data = {
|
|||
type: Sequelize.STRING,
|
|||
allowNull: true,
|
|||
defaultValue: null
|
|||
}
|
|||
|
|||
await utils.queryInterface.addColumn('videoFile', column, data)
|
|||
}
|
|||
|
|||
// Generate filenames for webtorrent files
|
|||
{
|
|||
const webtorrentQuery = `SELECT "videoFile".id, "video".uuid, "videoFile".resolution, "videoFile".extname ` +
|
|||
`FROM video INNER JOIN "videoFile" ON "videoFile"."videoId" = video.id`
|
|||
|
|||
const query = `UPDATE "videoFile" ` +
|
|||
`SET filename = t.uuid || '-' || t.resolution || t.extname, ` +
|
|||
`"torrentFilename" = t.uuid || '-' || t.resolution || '.torrent' ` +
|
|||
`FROM (${webtorrentQuery}) AS t WHERE t.id = "videoFile"."id"`
|
|||
|
|||
await utils.sequelize.query(query)
|
|||
}
|
|||
|
|||
// Generate filenames for HLS files
|
|||
{
|
|||
const hlsQuery = `SELECT "videoFile".id, "video".uuid, "videoFile".resolution, "videoFile".extname ` +
|
|||
`FROM video ` +
|
|||
`INNER JOIN "videoStreamingPlaylist" ON "videoStreamingPlaylist"."videoId" = video.id ` +
|
|||
`INNER JOIN "videoFile" ON "videoFile"."videoStreamingPlaylistId" = "videoStreamingPlaylist".id`
|
|||
|
|||
const query = `UPDATE "videoFile" ` +
|
|||
`SET filename = t.uuid || '-' || t.resolution || '-fragmented' || t.extname, ` +
|
|||
`"torrentFilename" = t.uuid || '-' || t.resolution || '-hls.torrent' ` +
|
|||
`FROM (${hlsQuery}) AS t WHERE t.id = "videoFile"."id"`
|
|||
|
|||
await utils.sequelize.query(query)
|
|||
}
|
|||
}
|
|||
|
|||
function down (options) {
|
|||
throw new Error('Not implemented.')
|
|||
}
|
|||
|
|||
export {
|
|||
up,
|
|||
down
|
|||
}
|