adding support for "ago"

This commit is contained in:
localhost 2024-11-30 18:41:11 +01:00
parent d4c125154b
commit 5c1f1bf24f
1 changed files with 29 additions and 4 deletions

View File

@ -1,9 +1,34 @@
const { PrismaClient } = require('@prisma/client')
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
const metadata = require('./metadata.js')
const upload = require('./upload.js')
function convertRelativeToDate(relativeTime) {
const parts = relativeTime.split(' ');
const amount = parseInt(parts[0]);
const unit = parts[1];
const currentDate = new Date();
switch (unit) {
case 'hour':
case 'hours':
currentDate.setHours(currentDate.getHours() - amount);
break;
case 'minute':
case 'minutes':
currentDate.setMinutes(currentDate.getMinutes() - amount);
break;
case 'day':
case 'days':
currentDate.setDate(currentDate.getDate() - amount);
break;
}
return currentDate;
}
async function createDatabaseVideo(id, videoUrl, playlistId) {
const data = await metadata.getVideoMetadata(id)
const channelData = await metadata.getChannel(data.basic_info.channel_id)
@ -13,7 +38,7 @@ async function createDatabaseVideo(id, videoUrl, playlistId) {
const uploaderAvatar = await upload.uploadImage(data.basic_info.channel_id, channelData.metadata.thumbnail[0].url)
const thumbnailUrl = await upload.uploadImage(id, data.basic_info.thumbnail[0].url)
await prisma.videos.create({
data: {
id: id,
@ -21,8 +46,8 @@ async function createDatabaseVideo(id, videoUrl, playlistId) {
description: (data.basic_info.short_description).replaceAll('\n', '<br>'),
thumbnail: thumbnailUrl,
source: videoUrl,
published: (new Date(data.primary_info.published.text)).toISOString().slice(0,10),
archived: (new Date()).toISOString().slice(0,10),
published: (data.primary_info.published.text.endsWith('ago') ? convertRelativeToDate(data.primary_info.published.text) : new Date(data.primary_info.published.text)).toISOString().slice(0, 10),
archived: (new Date()).toISOString().slice(0, 10),
channel: channelData.metadata.title,
channelId: channelData.metadata.external_id,
channelAvatar: uploaderAvatar,