MCPcopy Index your code
hub / github.com/MALSync/MALSync / syncItem

Function syncItem

src/utils/syncHandler.ts:226–270  ·  view source on GitHub ↗
(slave, pageType)

Source from the content-addressed store, hash-verified

224
225// eslint-disable-next-line consistent-return
226export function syncItem(slave, pageType) {
227 if (Object.keys(slave.diff).length !== 0) {
228 let singleClass: any;
229 if (pageType === 'MAL') {
230 singleClass = new MalSingle(slave.url);
231 } else if (pageType === 'ANILIST') {
232 singleClass = new AniListSingle(slave.url);
233 } else if (pageType === 'KITSU') {
234 singleClass = new KitsuSingle(slave.url);
235 } else if (pageType === 'SIMKL') {
236 singleClass = new SimklSingle(slave.url);
237 } else if (pageType === 'SHIKI') {
238 singleClass = new ShikiSingle(slave.url);
239 } else if (pageType === 'MANGABAKA') {
240 singleClass = new BakaSingle(slave.url);
241 } else {
242 throw 'No sync type';
243 }
244 singleClass.setSyncMethod('listSync');
245
246 return singleClass
247 .update()
248 .then(() => {
249 if (typeof slave.diff.score !== 'undefined') singleClass.setScore(slave.diff.score);
250 if (typeof slave.diff.watchedEp !== 'undefined')
251 singleClass.setEpisode(slave.diff.watchedEp);
252 if (typeof slave.diff.readVol !== 'undefined') singleClass.setVolume(slave.diff.readVol);
253 if (typeof slave.diff.status !== 'undefined')
254 singleClass.setStatus(normalizeStatus(slave.diff.status));
255 // 'null' is valid for start/finish date
256 if (slave.diff.startDate !== undefined) singleClass.setStartDate(slave.diff.startDate);
257 if (slave.diff.finishDate !== undefined) singleClass.setFinishDate(slave.diff.finishDate);
258 if (typeof slave.diff.rewatchCount !== 'undefined')
259 singleClass.setRewatchCount(slave.diff.rewatchCount);
260 return singleClass.sync();
261 })
262 .then(() => {
263 return utils.wait(3000);
264 })
265 .catch(async e => {
266 await utils.wait(3000);
267 throw e;
268 });
269 }
270}
271
272// retrive lists
273export async function retriveLists(

Callers 2

syncListItemFunction · 0.85
syncMissingFunction · 0.85

Calls 3

normalizeStatusFunction · 0.85
keysMethod · 0.80
syncMethod · 0.80

Tested by

no test coverage detected