mangayomi-mirror/lib/utils/utils.dart
Schnitzel5 ac21eae8d4 small adjustments for a better reading experience of many single pages in a row
- to prevent old entries (before sourceId was introduced) from accidentally using conflicting sources with the same name even if they are not installed
2026-01-30 23:15:26 +01:00

28 lines
853 B
Dart

import 'package:isar_community/isar.dart';
import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/source.dart';
Source? getSource(
String lang,
String name,
int? sourceId, {
bool installedOnly = false,
}) {
try {
var sourcesFilter = isar.sources.filter().idIsNotNull();
if (installedOnly) {
sourcesFilter = sourcesFilter.isActiveEqualTo(true).isAddedEqualTo(true);
}
final sourcesList = sourcesFilter.findAllSync();
return sourcesList.firstWhere(
(element) => sourceId != null
? element.id == sourceId && element.sourceCode != null
: element.name!.toLowerCase() == name.toLowerCase() &&
element.lang == lang &&
element.sourceCode != null,
orElse: () => throw ("Error when getting source"),
);
} catch (_) {
return null;
}
}