mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-20 23:22:07 +00:00
47 lines
1.5 KiB
Dart
47 lines
1.5 KiB
Dart
import 'dart:math';
|
|
import 'package:isar_community/isar.dart';
|
|
import 'package:mangayomi/eval/model/m_manga.dart';
|
|
import 'package:mangayomi/eval/model/m_pages.dart';
|
|
import 'package:mangayomi/main.dart';
|
|
import 'package:mangayomi/models/manga.dart';
|
|
import 'package:mangayomi/models/source.dart';
|
|
import 'package:mangayomi/modules/more/settings/browse/providers/browse_state_provider.dart';
|
|
import 'package:mangayomi/services/isolate_service.dart';
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
part 'get_popular.g.dart';
|
|
|
|
@riverpod
|
|
Future<MPages?> getPopular(
|
|
Ref ref, {
|
|
required Source source,
|
|
required int page,
|
|
}) async {
|
|
if (source.name == "local" && source.lang == "") {
|
|
final result =
|
|
(await isar.mangas
|
|
.filter()
|
|
.itemTypeEqualTo(source.itemType)
|
|
.group(
|
|
(q) => q
|
|
.sourceEqualTo("local")
|
|
.or()
|
|
.linkContains("Mangayomi/local")
|
|
.or()
|
|
.linkContains("Mangayomi\\local"),
|
|
)
|
|
.sortByName()
|
|
.offset(max(0, page - 1) * 50)
|
|
.limit(50)
|
|
.findAll())
|
|
.map((e) => MManga(name: e.name))
|
|
.toList();
|
|
return MPages(list: result, hasNextPage: true);
|
|
}
|
|
|
|
return getIsolateService.get<MPages?>(
|
|
page: page,
|
|
source: source,
|
|
serviceType: 'getPopular',
|
|
proxyServer: ref.read(androidProxyServerStateProvider),
|
|
);
|
|
}
|