84 lines
2.8 KiB
Go
84 lines
2.8 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/TheLovinator1/FeedVault/db"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
"github.com/mmcdole/gofeed"
|
|
)
|
|
|
|
func createFeedDublinCore(ctx context.Context, feed *gofeed.Feed, newFeed db.Feed) {
|
|
// TODO: Check if this is correct and works. I can't find a feed that has Dublin Core to test with :-)
|
|
if feed.DublinCoreExt == nil {
|
|
log.Printf("No Dublin Core to add to database")
|
|
return
|
|
}
|
|
|
|
// Add Dublin Core to the database
|
|
_, err := DB.CreateFeedDublinCore(ctx, db.CreateFeedDublinCoreParams{
|
|
CreatedAt: pgtype.Timestamptz{Time: time.Now(), Valid: true},
|
|
UpdatedAt: pgtype.Timestamptz{Time: time.Now(), Valid: true},
|
|
DeletedAt: pgtype.Timestamptz{Valid: false},
|
|
Title: feed.DublinCoreExt.Title,
|
|
Creator: feed.DublinCoreExt.Creator,
|
|
Subject: feed.DublinCoreExt.Subject,
|
|
Source: feed.DublinCoreExt.Source,
|
|
Publisher: feed.DublinCoreExt.Publisher,
|
|
Contributor: feed.DublinCoreExt.Contributor,
|
|
Description: feed.DublinCoreExt.Description,
|
|
Date: feed.DublinCoreExt.Date,
|
|
Type: feed.DublinCoreExt.Type,
|
|
Format: feed.DublinCoreExt.Format,
|
|
Identifier: feed.DublinCoreExt.Identifier,
|
|
Language: feed.DublinCoreExt.Language,
|
|
Relation: feed.DublinCoreExt.Relation,
|
|
Coverage: feed.DublinCoreExt.Coverage,
|
|
Rights: feed.DublinCoreExt.Rights,
|
|
FeedID: newFeed.ID,
|
|
})
|
|
|
|
if err != nil {
|
|
log.Printf("Error adding Dublin Core to database: %s", err)
|
|
return
|
|
}
|
|
log.Printf("Dublin Core added to database")
|
|
}
|
|
|
|
func createItemDublinCore(ctx context.Context, item *gofeed.Item, newItem db.Item) {
|
|
if item.DublinCoreExt == nil {
|
|
log.Printf("No Dublin Core to add to database")
|
|
return
|
|
}
|
|
|
|
// Add Dublin Core to the database
|
|
_, err := DB.CreateItemDublinCore(ctx, db.CreateItemDublinCoreParams{
|
|
CreatedAt: pgtype.Timestamptz{Time: time.Now(), Valid: true},
|
|
UpdatedAt: pgtype.Timestamptz{Time: time.Now(), Valid: true},
|
|
DeletedAt: pgtype.Timestamptz{Valid: false},
|
|
Title: item.DublinCoreExt.Title,
|
|
Creator: item.DublinCoreExt.Creator,
|
|
Subject: item.DublinCoreExt.Subject,
|
|
Source: item.DublinCoreExt.Source,
|
|
Publisher: item.DublinCoreExt.Publisher,
|
|
Contributor: item.DublinCoreExt.Contributor,
|
|
Description: item.DublinCoreExt.Description,
|
|
Date: item.DublinCoreExt.Date,
|
|
Type: item.DublinCoreExt.Type,
|
|
Format: item.DublinCoreExt.Format,
|
|
Identifier: item.DublinCoreExt.Identifier,
|
|
Language: item.DublinCoreExt.Language,
|
|
Relation: item.DublinCoreExt.Relation,
|
|
Coverage: item.DublinCoreExt.Coverage,
|
|
Rights: item.DublinCoreExt.Rights,
|
|
ItemID: newItem.ID,
|
|
})
|
|
|
|
if err != nil {
|
|
log.Printf("Error adding Dublin Core to database: %s", err)
|
|
return
|
|
}
|
|
log.Printf("Dublin Core added to database")
|
|
}
|