feat: add update all recommendations command

This commit is contained in:
2023-09-08 15:15:36 +02:00
parent 297dab97cd
commit 6d5a3a1a0c
8 changed files with 177 additions and 50 deletions

View File

@@ -8,6 +8,7 @@ type RecommendationResource = {
type: string;
rating: number;
tags?: string[];
description?: string;
keywords?: string[];
author?: string;
year?: number;
@@ -17,14 +18,14 @@ export async function createRecommendationResource(
res: GenericResource,
description?: string,
) {
const cacheId = `recommendations:${res.type}:${res.id}`;
const cacheId = `recommendations:${res.type}:${res.id.replaceAll(":", "")}`;
const resource: RecommendationResource = await cache.get(cacheId) || {
id: res.id,
type: res.type,
rating: -1,
};
if (description && !resource.keywords) {
const keywords = await openai.createKeywords(res.type, description);
const keywords = await openai.createKeywords(res.type, description, res.id);
if (keywords?.length) {
resource.keywords = keywords;
}
@@ -44,6 +45,10 @@ export async function createRecommendationResource(
resource.author = author;
}
if (description) {
resource.description = description;
}
if (date) {
const d = typeof date === "string" ? new Date(date) : date;
resource.year = d.getFullYear();
@@ -52,6 +57,10 @@ export async function createRecommendationResource(
cache.set(cacheId, JSON.stringify(resource));
}
export function getRecommendation(id: string, type: string) {
return cache.get(`recommendations:${type}:${id}`);
}
export async function getAllRecommendations() {
const keys = await cache.keys("recommendations:movie:*");
return Promise.all(keys.map((k) => cache.get(k))).then((res) =>