chore: initial commit for phase06
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
const SPIGET_BASE = 'https://api.spiget.org/v2';
|
||||
|
||||
export interface SpigetResource {
|
||||
id: number;
|
||||
name: string;
|
||||
tag: string;
|
||||
icon: { url: string; data: string };
|
||||
releaseDate: number;
|
||||
updateDate: number;
|
||||
downloads: number;
|
||||
rating: { average: number; count: number };
|
||||
file: { type: string; size: number; url: string };
|
||||
version: { id: number };
|
||||
external: boolean;
|
||||
}
|
||||
|
||||
export interface SpigetVersion {
|
||||
id: number;
|
||||
name: string;
|
||||
releaseDate: number;
|
||||
downloads: number;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export async function searchSpigetPlugins(
|
||||
query: string,
|
||||
page = 1,
|
||||
size = 20,
|
||||
): Promise<SpigetResource[]> {
|
||||
const res = await fetch(
|
||||
`${SPIGET_BASE}/search/resources/${encodeURIComponent(query)}?size=${size}&page=${page}&sort=-downloads`,
|
||||
{ headers: { 'User-Agent': 'GamePanel/1.0' } },
|
||||
);
|
||||
if (!res.ok) return [];
|
||||
return res.json() as Promise<SpigetResource[]>;
|
||||
}
|
||||
|
||||
export async function getSpigetResource(id: number): Promise<SpigetResource | null> {
|
||||
const res = await fetch(`${SPIGET_BASE}/resources/${id}`, {
|
||||
headers: { 'User-Agent': 'GamePanel/1.0' },
|
||||
});
|
||||
if (!res.ok) return null;
|
||||
return res.json() as Promise<SpigetResource>;
|
||||
}
|
||||
|
||||
export async function getSpigetVersions(resourceId: number): Promise<SpigetVersion[]> {
|
||||
const res = await fetch(`${SPIGET_BASE}/resources/${resourceId}/versions?sort=-releaseDate`, {
|
||||
headers: { 'User-Agent': 'GamePanel/1.0' },
|
||||
});
|
||||
if (!res.ok) return [];
|
||||
return res.json() as Promise<SpigetVersion[]>;
|
||||
}
|
||||
|
||||
export function getSpigetDownloadUrl(resourceId: number): string {
|
||||
return `${SPIGET_BASE}/resources/${resourceId}/download`;
|
||||
}
|
||||
Reference in New Issue
Block a user