mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: start of scraping
This commit is contained in:
1 parent
4a20102de3
commit
ef154f99d5
11 files changed
+73
-19
No files matched your search
@@ -1 +1,5 @@
|
||||
abstract class AbstractAPI {}
|
||||
import type { Tanks } from "../../protos/tanks";
|
||||
|
||||
export abstract class AbstractAPI {
|
||||
abstract tanks(): Promise<Tanks>;
|
||||
}
|
||||
@@ -1 +1,3 @@
|
||||
import { AbstractAPI } from "./abstract";
|
||||
|
||||
export class ClientAPI extends AbstractAPI {}
|
||||
@@ -1,11 +1,20 @@
|
||||
import { ClientAPI } from "./client";
|
||||
import { ServerAPI } from "./server";
|
||||
import type { AbstractAPI } from "./abstract";
|
||||
|
||||
let dynamicAPI: AbstractAPI;
|
||||
|
||||
if (typeof window === "undefined") {
|
||||
dynamicAPI = new ServerAPI();
|
||||
const { ProxyClient } = await import("@blitzkit/closed");
|
||||
const { ServerAPI } = await import("./server");
|
||||
|
||||
const proxyClient = await new ProxyClient(
|
||||
import.meta.env.WOTB_SERVER
|
||||
).handshake();
|
||||
const metadata = await proxyClient.metadata();
|
||||
|
||||
dynamicAPI = new ServerAPI(metadata);
|
||||
} else {
|
||||
const { ClientAPI } = await import("./client");
|
||||
|
||||
dynamicAPI = new ClientAPI();
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1,27 @@
|
||||
export class ServerAPI extends AbstractAPI {}
|
||||
import type { MetadataAccessor } from "@blitzkit/closed";
|
||||
import type { TanksEntry } from "../../protos/tanks";
|
||||
import { AbstractAPI } from "./abstract";
|
||||
|
||||
export class ServerAPI extends AbstractAPI {
|
||||
constructor(private metadata: MetadataAccessor) {
|
||||
super();
|
||||
|
||||
console.log(Object.keys(metadata.groups).join("\n"));
|
||||
}
|
||||
|
||||
async tanks() {
|
||||
const group = this.metadata.group("TankEntity");
|
||||
const tanks: TanksEntry[] = [];
|
||||
|
||||
for (const item of group) {
|
||||
const tankCatalog = item.TankCatalog();
|
||||
|
||||
const id = item.id;
|
||||
const slug = tankCatalog.name?.value;
|
||||
|
||||
tanks.push({ id, slug });
|
||||
}
|
||||
|
||||
return { tanks };
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user