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

Method startSyncHandling

src/pages-sync/syncPage.ts:352–549  ·  view source on GitHub ↗
(state, malUrl)

Source from the content-addressed store, hash-verified

350 }
351
352 protected async startSyncHandling(state, malUrl) {
353 const progressStorageKey = `progress/${this.curState.identifier}/${this.curState.episode}/v1`;
354 let tracking: InstanceType<ReturnType<typeof getTrackingMode>> | null = null;
355 if (this.page.type === 'manga' && api.settings.get('readerTracking')) {
356 try {
357 tracking = new (getTrackingMode('manga' as TrackingModeType))();
358 await tracking.start(this);
359 } catch (e) {
360 logger.error(e);
361 tracking = null;
362 }
363 }
364 if (!tracking) {
365 tracking = new (getTrackingMode(
366 api.settings.get(`autoTrackingMode${this.page.type}`) as TrackingModeType,
367 ))();
368 await tracking.start(this);
369 }
370
371 this.trackingModeInstance = tracking;
372
373 const syncButtonTranslation = {
374 key: `syncPage_flashm_sync_${this.page.type}`,
375 value: String(state.episode),
376 };
377
378 if (this.page.type === 'manga' && !state.episode && state.volume) {
379 syncButtonTranslation.key = 'syncPage_flashm_sync_manga_volume';
380 syncButtonTranslation.value = String(state.volume);
381 }
382
383 const messageArray: HTMLElement[] = [];
384
385 if ('addListener' in tracking) {
386 messageArray.push(trackingBarElement());
387 }
388
389 messageArray.push(
390 trackingSyncButtonElement(
391 api.storage.lang(syncButtonTranslation.key, [
392 providerTemplates(this.page.type, malUrl).shortName,
393 syncButtonTranslation.value,
394 ]),
395 ),
396 );
397
398 if ('note' in tracking) {
399 const note = tracking.note();
400 if (note) {
401 messageArray.push(trackingNoteElement(note));
402 }
403 }
404
405 messageArray.push(trackingErrorElement());
406
407 const message = messageArray.map(el => el.outerHTML).join('');
408
409 const flashEl = utils.flashm(message, tracking.flashOptions());

Callers 1

handlePageMethod · 0.95

Calls 15

syncMethod · 0.95
getTrackingModeFunction · 0.90
trackingBarElementFunction · 0.90
providerTemplatesFunction · 0.90
trackingNoteElementFunction · 0.90
trackingErrorElementFunction · 0.90
resumeMessageElementFunction · 0.90
errorMethod · 0.80
langMethod · 0.80
removeMethod · 0.80
onMethod · 0.80

Tested by

no test coverage detected