+
+
{#if entry.type === "TwitchStream"}
{:else}
@@ -37,7 +44,7 @@
{#if entry.startDate}
{@const date = moment(entry.startDate)}
-
+
{#if !moment().isSame(date, "day")}
{date.format("DD. MMM,")}
{/if}
@@ -45,5 +52,11 @@
{/if}
{entry.title}
+ {#if entry.importedFrom === "OpenAI"}
+
+
+
+
+ {/if}
{/if}
diff --git a/src/psaggregator/src/routes/+page.server.ts b/src/psaggregator/src/routes/+page.server.ts
index 7653701..fdc50d8 100644
--- a/src/psaggregator/src/routes/+page.server.ts
+++ b/src/psaggregator/src/routes/+page.server.ts
@@ -10,6 +10,9 @@ export async function load() {
type: {
equals: "PSVideo"
},
+ importedFrom: {
+ equals: "PietSmietDE"
+ },
startDate: {
lt: upperBound,
gt: lowerBound
diff --git a/src/psaggregator/src/routes/api/+page.svelte b/src/psaggregator/src/routes/api/+page.svelte
index 4398651..9024cc4 100644
--- a/src/psaggregator/src/routes/api/+page.svelte
+++ b/src/psaggregator/src/routes/api/+page.svelte
@@ -4,8 +4,11 @@
import bash from "highlight.js/lib/languages/bash";
import { storeHighlightJs } from "@skeletonlabs/skeleton";
import moment from "moment";
+ import { GITHUB_URL, MAIL_TO_URL } from "../../config/config";
+ import Sparkle from "$lib/components/Sparkle.svelte";
const curlUploadPlan = `curl -X GET ${location.protocol}//${location.host}/api/uploadplan?date=${moment().format("YYYY-MM-DD")}`;
+ const curlScheduledContentPieces = `curl -X GET ${location.protocol}//${location.host}/api/scheduledContentPieces?date=${moment().format("YYYY-MM-DD")}&skip=0`;
const curlVideos = `curl -X GET ${location.protocol}//${location.host}/api/videos?skip=0`;
const curlTwitch = `curl -X GET ${location.protocol}//${location.host}/api/twitch`;
const curlThumbnails = `curl -X GET ${location.protocol}//${location.host}/api/thumbnails?skip=0`;
@@ -52,14 +55,32 @@
Der Uploadplan wird direkt von der pietsmiet.de importiert.
Nutze den ?date Parameter um alte Uploadpläne anzusehen.
+
GET /scheduledContentPieces
+
+
+
+
+
scheduledContentPieces sind ähnlich wie der Uploadplan alle potentiell stattfindenden Ereignisse.
+
Der Unterschied ist, dass hier auch Events angezeigt werden, die nicht im Uploadplan stehen.
+
+
+
+
Einzelne Daten in dieser API werden über die OpenAI Vision AI analysiert.
+
Dadurch kann es gelegentlich zu fehlerhaften oder doppelten Einträgen kommen.
+
Sollten dir solche Fehler auffallen, melde dich gerne auf GitHub
+ oder per Mail.
+
+
+
Es werden maximal 20 Videos zurückgegeben - sortiert nach dem Datum.
+
Der ?skip Parameter kann genutzt werden um weitere Einträge zu laden.
+
GET /videos
- Videos werden ebenfalls direkt von der pietsmiet.de importiert.
- Es werden maximal 20 Videos zurückgegeben - sortiert nach dem Uploaddatum.
- Der ?skip Parameter kann genutzt werden um weitere Videos zu laden.
+ Videos werden direkt von der pietsmiet.de importiert.
GET /twitch
diff --git a/src/psaggregator/src/routes/api/scheduledContentPieces/+server.ts b/src/psaggregator/src/routes/api/scheduledContentPieces/+server.ts
new file mode 100644
index 0000000..8e78872
--- /dev/null
+++ b/src/psaggregator/src/routes/api/scheduledContentPieces/+server.ts
@@ -0,0 +1,57 @@
+import { json } from "@sveltejs/kit";
+import prisma from "$lib/prisma";
+import moment from "moment";
+
+export async function GET({ url }) {
+ let skip = 0;
+ const skipParam = url.searchParams.get("skip");
+ if (skipParam) {
+ try {
+ skip = parseInt(skipParam);
+ } finally {
+ if (!skip) skip = 0;
+ }
+ }
+
+ let date = null;
+ if (url.searchParams.has("date")) {
+ try {
+ date = moment(url.searchParams.get("date"));
+ } finally {
+ if (!date || !date.isValid()) {
+ date = null;
+ }
+ }
+ }
+
+ let data = [];
+
+ if (date) {
+ const upperBound = date.clone().endOf("day").toDate();
+ const lowerBound = date.clone().startOf("day").toDate();
+
+ data = await prisma.scheduledContentPiece.findMany({
+ where: {
+ startDate: {
+ lt: upperBound,
+ gt: lowerBound
+ }
+ },
+ orderBy: {
+ startDate: "desc"
+ },
+ skip,
+ take: 20
+ });
+ } else {
+ data = await prisma.scheduledContentPiece.findMany({
+ orderBy: {
+ startDate: "desc"
+ },
+ skip,
+ take: 20
+ });
+ }
+
+ return json(data);
+}
diff --git a/src/psaggregator/src/routes/api/uploadplan/+server.ts b/src/psaggregator/src/routes/api/uploadplan/+server.ts
index dd55696..291eda6 100644
--- a/src/psaggregator/src/routes/api/uploadplan/+server.ts
+++ b/src/psaggregator/src/routes/api/uploadplan/+server.ts
@@ -19,6 +19,9 @@ export async function GET({ url }) {
const data = await prisma.scheduledContentPiece.findMany({
where: {
+ importedFrom: {
+ equals: "PietSmietDE"
+ },
startDate: {
lt: upperBound,
gt: lowerBound
diff --git a/src/psaggregator/src/routes/motivation/+page.svelte b/src/psaggregator/src/routes/motivation/+page.svelte
index c3df6b5..ee6def9 100644
--- a/src/psaggregator/src/routes/motivation/+page.svelte
+++ b/src/psaggregator/src/routes/motivation/+page.svelte
@@ -1,6 +1,6 @@