Files

45 lines
1.3 KiB
TypeScript

import type { PluginContext } from "@sttracker/plugin-sdk/types";
export const BASE_URL = "https://api.mangabaka.org";
export interface ApiSource { id?: number | string | null }
export interface ApiSeries {
id: number;
title: string;
type?: string | null;
state?: string | null;
merged_with?: number | null;
year?: number | null;
source?: {
anilist?: ApiSource | null;
my_anime_list?: ApiSource | null;
manga_updates?: ApiSource | null;
kitsu?: ApiSource | null;
} | null;
}
export interface ApiEntry {
series_id: number;
state?: string | null;
rating?: number | null;
progress_chapter?: number | null;
progress_volume?: number | null;
start_date?: string | null;
finish_date?: string | null;
note?: string | null;
series?: ApiSeries | null;
}
export interface LibraryPage {
data: ApiEntry[];
pagination?: { page?: number; total_pages?: number } | null;
}
export interface ChangesPage {
data: { type: "upsert" | "delete"; entry?: ApiEntry; series_id: number }[];
next_cursor?: string | null;
}
export function authHeaders(ctx: PluginContext): Record<string, string> {
const token = ctx.config.token;
if (typeof token !== "string" || token === "") throw new Error("mangabaka: token is not configured");
return { "x-api-key": token };
}