nca-ai-cms-astro-plugin 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -6,10 +6,7 @@ import { getEnvVariable } from '../utils/envUtils';
|
|
|
6
6
|
import { jsonResponse, jsonError } from './_utils';
|
|
7
7
|
|
|
8
8
|
const GenerateContentSchema = z.object({
|
|
9
|
-
|
|
10
|
-
keywords: z.string().min(1).optional(),
|
|
11
|
-
}).refine((data) => data.url || data.keywords, {
|
|
12
|
-
message: 'URL or keywords required',
|
|
9
|
+
input: z.string().min(1, 'Input is required'),
|
|
13
10
|
});
|
|
14
11
|
|
|
15
12
|
export const POST: APIRoute = async ({ request }) => {
|
|
@@ -19,14 +16,15 @@ export const POST: APIRoute = async ({ request }) => {
|
|
|
19
16
|
if (!parsed.success) {
|
|
20
17
|
return jsonError(parsed.error.errors[0]?.message ?? 'Invalid request', 400);
|
|
21
18
|
}
|
|
22
|
-
const {
|
|
19
|
+
const { input } = parsed.data;
|
|
20
|
+
const isUrl = /^https?:\/\//.test(input);
|
|
23
21
|
|
|
24
22
|
const apiKey = getEnvVariable('GOOGLE_GEMINI_API_KEY');
|
|
25
23
|
const promptService = new PromptService();
|
|
26
24
|
const generator = new ContentGenerator({ apiKey, promptService });
|
|
27
|
-
const article =
|
|
28
|
-
? await generator.generateFromUrl(
|
|
29
|
-
: await generator.generateFromKeywords(
|
|
25
|
+
const article = isUrl
|
|
26
|
+
? await generator.generateFromUrl(input)
|
|
27
|
+
: await generator.generateFromKeywords(input);
|
|
30
28
|
|
|
31
29
|
return jsonResponse({
|
|
32
30
|
title: article.title,
|
|
@@ -5,7 +5,7 @@ import { getEnvVariable } from '../utils/envUtils';
|
|
|
5
5
|
import { jsonResponse, jsonError } from './_utils';
|
|
6
6
|
|
|
7
7
|
const GenerateImageSchema = z.object({
|
|
8
|
-
|
|
8
|
+
input: z.string().min(1, 'Input is required'),
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
export const POST: APIRoute = async ({ request }) => {
|
|
@@ -15,11 +15,11 @@ export const POST: APIRoute = async ({ request }) => {
|
|
|
15
15
|
if (!parsed.success) {
|
|
16
16
|
return jsonError(parsed.error.errors[0]?.message ?? 'Invalid request', 400);
|
|
17
17
|
}
|
|
18
|
-
const {
|
|
18
|
+
const { input } = parsed.data;
|
|
19
19
|
|
|
20
20
|
const apiKey = getEnvVariable('GOOGLE_GEMINI_API_KEY');
|
|
21
21
|
const generator = new ImageGenerator({ apiKey });
|
|
22
|
-
const image = await generator.generate(
|
|
22
|
+
const image = await generator.generate(input);
|
|
23
23
|
|
|
24
24
|
return jsonResponse({
|
|
25
25
|
url: image.url,
|
|
@@ -148,11 +148,12 @@ export function GenerateTabProvider({ children }: GenerateTabProviderProps) {
|
|
|
148
148
|
const data = await saveRes.json().catch(() => ({}));
|
|
149
149
|
throw new Error(data.error || 'Fehler beim Speichern des Artikels');
|
|
150
150
|
}
|
|
151
|
+
const saveData = await saveRes.json();
|
|
151
152
|
|
|
152
153
|
const imgRes = await fetch('/api/save-image', {
|
|
153
154
|
method: 'POST',
|
|
154
155
|
headers: { 'Content-Type': 'application/json' },
|
|
155
|
-
body: JSON.stringify(image),
|
|
156
|
+
body: JSON.stringify({ url: image.url, folderPath: saveData.folderPath }),
|
|
156
157
|
});
|
|
157
158
|
if (!imgRes.ok) {
|
|
158
159
|
const data = await imgRes.json().catch(() => ({}));
|