MCPcopy Create free account
hub / github.com/DialmasterOrg/Youtarr / saveJobOnly

Method saveJobOnly

server/modules/jobModule.js:478–518  ·  view source on GitHub ↗
(jobId, jobDataOriginal)

Source from the content-addressed store, hash-verified

476
477 // Save a single job and its video data to the database
478 async saveJobOnly(jobId, jobDataOriginal) {
479 const jobData = { ...jobDataOriginal };
480
481 // Extract video data if present (download jobs); non-download jobs may not have data
482 let videos = [];
483 if (jobData.data) {
484 videos = jobData.data.videos ? jobData.data.videos : [];
485 delete jobData.data; // Remove videos from job data before DB update
486 }
487
488 try {
489 // Update the job in the database
490 let jobInstance = await Job.findOne({ where: { id: jobId } });
491 if (jobInstance) {
492 await jobInstance.update(jobData);
493 } else {
494 jobInstance = await Job.create(jobData);
495 }
496
497 // Process videos for this job only (download jobs)
498 for (let video of videos) {
499 await this.upsertVideoForJob(video, jobInstance);
500
501 // Upsert into channelvideos
502 try {
503 await this.upsertChannelVideoFromInfo({
504 id: video.youtubeId,
505 title: video.youTubeVideoName,
506 duration: video.duration,
507 upload_date: video.originalDate,
508 channel_id: video.channel_id,
509 media_type: video.media_type || 'video',
510 });
511 } catch (cvErr) {
512 logger.error({ err: cvErr }, 'Error upserting channel video');
513 }
514 }
515 } catch (error) {
516 logger.error({ err: error }, 'Error saving job');
517 }
518 }
519
520 async saveJobs() {
521 if (this.isSaving) {

Callers 4

updateJobMethod · 0.95
jobModule.test.jsFile · 0.80

Calls 2

upsertVideoForJobMethod · 0.95

Tested by

no test coverage detected