You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.ts 1.7 kB

4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233
  1. import { basename } from "https://deno.land/std/path/mod.ts";
  2. import { Extlist } from './extlist.ts';
  3. const regions = [
  4. {path: 'pad', regionID: 'JA', baseJsonURL: 'https://dl.padsv.gungho.jp/base_adr.json'},
  5. {path: 'padEN', regionID: 'NA', baseJsonURL: 'https://dl-na.padsv.gungho.jp/base-na-adr.json'},
  6. {path: 'padKO', regionID: 'KO', baseJsonURL: 'https://dl-kr.padsv.gungho.jp/base.kr-adr.json'},
  7. // {path: 'padHT', regionID: 'HT', baseJsonURL: 'https://dl.padsv.gungho.jp/base.ht-adr.json'},
  8. ];
  9. async function downloadFile(url: string, path: string) {
  10. const response = await fetch(url);
  11. const headers = response.headers;
  12. //console.log(headers);
  13. const body = new Uint8Array(await response.clone().arrayBuffer());
  14. Deno.writeFileSync(`${path}/${basename(response.url)}`, body);
  15. const fileData = new Date(headers.get("date") as string); //获取修改时间
  16. Deno.utimeSync(`${path}/${basename(response.url)}`, fileData, fileData);
  17. return response;
  18. }
  19. for (const region of regions) {
  20. Deno.mkdirSync(`${region.path}`, { recursive: true });
  21. const baseUrl = region.baseJsonURL;
  22. console.log(`正在下载 ${baseUrl}`);
  23. const baseResponse = await downloadFile(baseUrl, region.path);
  24. const baseJsonData = await baseResponse.json();
  25. const extlistUrl = `${baseJsonData.extlist}/extlist.bin`;
  26. console.log(`正在下载 ${extlistUrl}`);
  27. const extlistResponse = await downloadFile(extlistUrl, region.path);
  28. const extdllistUrl = `${baseJsonData.efl}/extdllist.bin`;
  29. console.log(`正在下载 ${extdllistUrl}`);
  30. const extdllistResponse = await downloadFile(extdllistUrl, region.path);
  31. const extlist = Extlist.load(extlistResponse);
  32. extlist.entries.forEach((item)=>{console.log(item)});
  33. }