refactor: replace getExtensionService with getIsolateService for page and video list retrieval

This commit is contained in:
Moustapha Kodjo Amadou 2025-11-11 14:51:10 +01:00
parent 4940c18cbf
commit 1f21a75762
3 changed files with 32 additions and 20 deletions

View file

@ -3,8 +3,8 @@ import 'dart:io';
import 'dart:typed_data';
import 'package:mangayomi/modules/manga/reader/u_chap_data_preload.dart';
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
import 'package:mangayomi/services/isolate_service.dart';
import 'package:path/path.dart' as p;
import 'package:mangayomi/eval/lib.dart';
import 'package:mangayomi/eval/javascript/http.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/chapter.dart';
@ -77,10 +77,12 @@ Future<GetChapterPagesModel> getChapterPages(
pageUrls.add(PageUrl(isarPageUrls.urls![i], headers: headers));
}
} else {
pageUrls = await getExtensionService(
source,
ref.read(androidProxyServerStateProvider),
).getPageList(chapter.url!);
pageUrls = await getIsolateService.get<List<PageUrl>>(
url: chapter.url!,
source: source,
serviceType: 'getPageList',
proxyServer: ref.read(androidProxyServerStateProvider),
);
}
}

View file

@ -1,10 +1,10 @@
import 'dart:async';
import 'dart:io';
import 'package:mangayomi/eval/lib.dart';
import 'package:mangayomi/models/chapter.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
import 'package:mangayomi/providers/storage_provider.dart';
import 'package:mangayomi/services/isolate_service.dart';
import 'package:mangayomi/services/torrent_server.dart';
import 'package:mangayomi/utils/utils.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
@ -92,10 +92,12 @@ Future<(List<Video>, bool, List<String>, Directory?)> getVideoList(
}
try {
list = await getExtensionService(
source!,
proxyServer,
).getVideoList(episode.url!);
list = await getIsolateService.get<List<Video>>(
url: episode.url!,
source: source,
serviceType: 'getVideoList',
proxyServer: proxyServer,
);
} catch (e) {
list = [Video(episode.url!, episode.name!, episode.url!)];
}
@ -118,10 +120,12 @@ Future<(List<Video>, bool, List<String>, Directory?)> getVideoList(
return (torrentList, false, infoHashes, mpvDirectory);
}
List<Video> list = await getExtensionService(
source!,
proxyServer,
).getVideoList(episode.url!);
List<Video> list = await getIsolateService.get<List<Video>>(
url: episode.url!,
source: source,
serviceType: 'getVideoList',
proxyServer: proxyServer,
);
List<Video> videos = [];
for (var video in list) {

View file

@ -5,8 +5,6 @@ import 'package:flutter/services.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:mangayomi/eval/lib.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/providers/storage_provider.dart';
@ -107,6 +105,18 @@ class GetIsolateService {
proxyServer ?? '',
).search(query!, page!, filterList!);
responsePort.send({'success': true, 'data': result});
} else if (serviceType == 'getVideoList') {
final result = await getExtensionService(
source!,
proxyServer ?? '',
).getVideoList(url!);
responsePort.send({'success': true, 'data': result});
} else if (serviceType == 'getPageList') {
final result = await getExtensionService(
source!,
proxyServer ?? '',
).getPageList(url!);
responsePort.send({'success': true, 'data': result});
}
} catch (e) {
final responsePort = message['responsePort'] as SendPort;
@ -119,10 +129,6 @@ class GetIsolateService {
}
Future<T> get<T>({
int? id,
bool? refresh,
ItemType? itemType,
Repo? repo,
String? url,
int? page,
String? query,