This commit is contained in:
Schnitzel5 2025-06-03 23:49:14 +02:00
parent db209fea68
commit f152339162
3 changed files with 2342 additions and 7 deletions

File diff suppressed because it is too large Load diff

View file

@ -18,6 +18,7 @@ import 'package:mangayomi/modules/more/settings/browse/source_repositories.dart'
import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_provider.dart';
import 'package:mangayomi/modules/more/statistics/statistics_screen.dart';
import 'package:mangayomi/modules/novel/novel_reader_view.dart';
import 'package:mangayomi/modules/tracker_library/tracker_library_screen.dart';
import 'package:mangayomi/modules/updates/updates_screen.dart';
import 'package:mangayomi/modules/more/categories/categories_screen.dart';
import 'package:mangayomi/modules/more/settings/downloads/downloads_screen.dart';
@ -124,6 +125,27 @@ class RouterNotifier extends ChangeNotifier {
),
_genericRoute(name: "history", child: const HistoryScreen()),
_genericRoute(name: "updates", child: const UpdatesScreen()),
_genericRoute<String?>(
name: "trackerLibrary/anilist",
builder: (id) => TrackerLibraryScreen(
trackerProvider: TrackerProviders.anilist,
presetInput: id,
),
),
_genericRoute<String?>(
name: "trackerLibrary/kitsu",
builder: (id) => TrackerLibraryScreen(
trackerProvider: TrackerProviders.kitsu,
presetInput: id,
),
),
_genericRoute<String?>(
name: "trackerLibrary/mal",
builder: (id) => TrackerLibraryScreen(
trackerProvider: TrackerProviders.myAnimeList,
presetInput: id,
),
),
_genericRoute(name: "browse", child: const BrowseScreen()),
_genericRoute(name: "more", child: const MoreScreen()),
],

View file

@ -149,19 +149,46 @@ class MyAnimeList extends _$MyAnimeList {
);
}
Future<List<TrackSearch>> getGlobalData() async {
Future<List<TrackSearch>> getGlobalData(bool isManga) async {
final accessToken = await _getAccessToken();
final url = Uri.parse(
'$baseApiUrl/anime/ranking?ranking_type=airing&limit=15',
final item = isManga ? "manga" : "anime";
final contentUnit = isManga ? "num_chapters" : "num_episodes";
final url = Uri.parse('$baseApiUrl/$item/ranking').replace(
queryParameters: {
'ranking_type': 'airing',
'limit': '15',
'fields':
'id,title,synopsis,$contentUnit,main_picture,status,media_type,start_date,mean',
},
);
final result = await _makeGetRequest(url, accessToken);
final res = jsonDecode(result.body) as Map<String, dynamic>;
List<int> mangaIds = res['data'] == null
return res['data'] == null
? []
: (res['data'] as List).map((e) => e['node']["id"] as int).toList();
return [];
: (res['data'] as List)
.map(
(e) => TrackSearch(
mediaId: e["node"]["id"],
summary: e["node"]["synopsis"] ?? "",
totalChapter: e["node"][contentUnit],
coverUrl: e["node"]["main_picture"]["large"] ?? "",
title: e["node"]["title"],
score: e["node"]["mean"],
startDate: e["node"]["start_date"] ?? "",
publishingType: e["node"]["media_type"].toString().replaceAll(
"_",
" ",
),
publishingStatus: e["node"]["status"].toString().replaceAll(
"_",
" ",
),
trackingUrl:
"https://myanimelist.net/$item/${e["node"]["id"]}",
),
)
.toList();
}
String _convertToIsoDate(int? epochTime) {