MCPcopy Create free account
hub / github.com/MALSync/MALSync / api

Method api

src/_provider/Search/rulesClass.ts:62–108  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

60 }
61
62 protected async api(): Promise<rules | undefined> {
63 const logger = this.logger.m('API');
64 try {
65 if (this.type !== 'anime') {
66 logger.info('Only supports anime');
67 return undefined;
68 }
69
70 if (String(this.cacheKey).startsWith('simkl:')) {
71 logger.info('Simkl is not supported');
72 return undefined;
73 }
74
75 const url = `https://api.malsync.moe/rules/${this.cacheKey}`;
76 logger.log(url);
77
78 const response = await api.request.xhr('GET', url);
79 logger.log('Response', response);
80
81 const res = JSON.parse(response.responseText);
82
83 return {
84 provider: 'firebase',
85 updated: new Date().getTime(),
86 last_modified: res.last_modified,
87 rules: res.rules.map(rule => {
88 return {
89 from: {
90 title: rule.from.title,
91 url: utils.pageUrl(res.page, this.type, rule.from.id),
92 start: rule.from.start,
93 end: rule.from.end,
94 },
95 to: {
96 title: rule.to.title,
97 url: utils.pageUrl(res.page, this.type, rule.to.id),
98 start: rule.to.start,
99 end: rule.to.end,
100 },
101 };
102 }),
103 };
104 } catch (e) {
105 logger.error(e);
106 return undefined;
107 }
108 }
109
110 protected async getCache(): Promise<rules | undefined> {
111 return api.storage.get(`${this.type}/${this.cacheKey}/Rules`).then(state => {

Callers 1

initMethod · 0.95

Calls 3

xhrMethod · 0.80
errorMethod · 0.80
infoMethod · 0.45

Tested by

no test coverage detected