From 5c1f1bf24fb14ffa7f8dd614a53ee63d31e80cb4 Mon Sep 17 00:00:00 2001 From: localhost Date: Sat, 30 Nov 2024 18:41:11 +0100 Subject: [PATCH] adding support for "ago" --- utils/websocket.js | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/utils/websocket.js b/utils/websocket.js index dd38d2f..81a4728 100644 --- a/utils/websocket.js +++ b/utils/websocket.js @@ -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', '
'), 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,