aboutsummaryrefslogtreecommitdiff
path: root/src/control/loading.js
blob: 70dd99ca7b8689a1ef3a47454713b0b1a2f23540 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { writable } from 'svelte/store';
import { initSearch } from './search';
import { initDeck } from './deck';
import { setCardDb, setAltId } from '../data/cardDb';

let isLoading = writable(true);

async function fetchCardDb() {
    try {
        // load card db
        let response = await fetch("https://raye.mistivia.com/card_db_parts/index.json");
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        let data = await response.json();
        let tasks = data.map((i)=>fetch('https://raye.mistivia.com/card_db_parts/' + i));
        let datas = await Promise.all(tasks);
        datas = await Promise.all(datas.map((x) => x.text()));
        data = JSON.parse(datas.join(''));
        setCardDb(data);
        // load alt id
        response = await fetch("https://ygocdb.com/api/v0/idChangelog.jsonp");
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        data = await response.json();
        setAltId(data);
    } catch (error) {
        console.log(error);
        alert("加载失败!请刷新重试");
        return;
    }
    isLoading.set(false);
    initDeck();
    initSearch();
}

fetchCardDb();

export {
    isLoading,
};