feat: add supportsLatest getter for JS

This commit is contained in:
kodjomoustapha 2024-12-02 17:14:01 +01:00
parent 11dea6dfaf
commit 46d4aefc2f
3 changed files with 19 additions and 1 deletions

View file

@ -31,6 +31,9 @@ class MProvider {
get source() {
return JSON.parse('${jsonEncode(source!.toMSource().toJson())}');
}
get supportsLatest() {
throw new Error("supportsLatest not implemented");
}
getHeaders(url) {
throw new Error("getHeaders not implemented");
}
@ -81,6 +84,17 @@ var extention = new DefaultExtension();
}
}
bool get supportsLatest {
_init();
try {
return jsonDecode(runtime
.evaluate('JSON.stringify(extention.supportsLatest)')
.stringResult) as bool;
} catch (e) {
return true;
}
}
Future<MPages> getPopular(int page) async {
_init();
final res = (await runtime.handlePromise(await runtime

View file

@ -301,6 +301,9 @@ class DefaultExtension extends MProvider {
async getPopular(page) {
throw new Error("getPopular not implemented");
}
get supportsLatest() {
throw new Error("supportsLatest not implemented");
}
async getLatestUpdates(page) {
throw new Error("getLatestUpdates not implemented");
}

View file

@ -1,4 +1,5 @@
import 'package:mangayomi/eval/dart/service.dart';
import 'package:mangayomi/eval/javascript/service.dart';
import 'package:mangayomi/models/source.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -10,7 +11,7 @@ bool supportsLatest(Ref ref, {required Source source}) {
if (source.sourceCodeLanguage == SourceCodeLanguage.dart) {
supportsLatest = DartExtensionService(source).supportsLatest;
} else {
supportsLatest = true;
supportsLatest = JsExtensionService(source).supportsLatest;
}
return supportsLatest;
}