mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-19 22:22:05 +00:00
This commit improves memory management, reduces redundant interpreter instantiation, and standardizes service usage patterns. - Add `dispose()` to `ExtensionService` interface and implement it across Dart, JS, LNReader, and Mihon services. - Replace repeated interpreter creation in `DartExtensionService` with a persistent `_interpreter` instance initialized once in the constructor. - Add disposal logic for JS DOM selector and Cheerio instances to prevent memory leaks. - Introduce `withExtensionService()` helper to ensure services are always disposed after use. - Update call sites across the codebase to use `withExtensionService()` or manual try/finally disposal. - Improve isolate service message handling by extracting `responsePort` earlier. - Ensure safer defaults (e.g., returning empty lists, const lists) when service calls fail.
41 lines
967 B
Dart
41 lines
967 B
Dart
import 'package:mangayomi/models/page.dart';
|
|
import 'package:mangayomi/models/source.dart';
|
|
import 'package:mangayomi/models/video.dart';
|
|
|
|
import 'model/filter.dart';
|
|
import 'model/m_manga.dart';
|
|
import 'model/m_pages.dart';
|
|
import 'model/source_preference.dart';
|
|
|
|
abstract interface class ExtensionService {
|
|
late Source source;
|
|
|
|
ExtensionService(this.source);
|
|
|
|
String get sourceBaseUrl;
|
|
bool get supportsLatest;
|
|
|
|
void dispose();
|
|
|
|
Map<String, String> getHeaders();
|
|
|
|
Future<MPages> getPopular(int page);
|
|
|
|
Future<MPages> getLatestUpdates(int page);
|
|
|
|
Future<MPages> search(String query, int page, List<dynamic> filters);
|
|
|
|
Future<MManga> getDetail(String url);
|
|
|
|
Future<List<PageUrl>> getPageList(String url);
|
|
|
|
Future<List<Video>> getVideoList(String url);
|
|
|
|
Future<String> getHtmlContent(String name, String url);
|
|
|
|
Future<String> cleanHtmlContent(String html);
|
|
|
|
FilterList getFilterList();
|
|
|
|
List<SourcePreference> getSourcePreferences();
|
|
}
|