rewrite: Add reload notifier enhance media list entry handling and how this affetct multiple screens

This commit is contained in:
Kevin Rodrigues Borges
2026-02-18 03:16:11 +00:00
parent e867ad84b7
commit a47d8fe577
42 changed files with 2163 additions and 1038 deletions

View File

@@ -0,0 +1,45 @@
---
description: Chat with the OpenProject Expert to create/update tasks and manage Unyo's backlog.
tools: [gitea-mcp/add_issue_labels, gitea-mcp/clear_issue_labels, gitea-mcp/create_branch, gitea-mcp/create_file, gitea-mcp/create_issue, gitea-mcp/create_issue_comment, gitea-mcp/create_org_label, gitea-mcp/create_pull_request, gitea-mcp/create_pull_request_reviewer, gitea-mcp/create_release, gitea-mcp/create_repo, gitea-mcp/create_repo_label, gitea-mcp/create_tag, gitea-mcp/create_wiki_page, gitea-mcp/delete_org_label, gitea-mcp/delete_repo_label, gitea-mcp/delete_tag, gitea-mcp/edit_issue, gitea-mcp/edit_issue_comment, gitea-mcp/edit_org_label, gitea-mcp/edit_repo_label, gitea-mcp/fork_repo, gitea-mcp/get_dir_content, gitea-mcp/get_file_content, gitea-mcp/get_gitea_mcp_server_version, gitea-mcp/get_issue_by_index, gitea-mcp/get_issue_comments_by_index, gitea-mcp/get_latest_release, gitea-mcp/get_my_user_info, gitea-mcp/get_pull_request_by_index, gitea-mcp/get_release, gitea-mcp/get_repo_label, gitea-mcp/get_tag, gitea-mcp/get_user_orgs, gitea-mcp/get_wiki_page, gitea-mcp/get_wiki_revisions, gitea-mcp/list_branches, gitea-mcp/list_my_repos, gitea-mcp/list_org_labels, gitea-mcp/list_releases, gitea-mcp/list_repo_commits, gitea-mcp/list_repo_issues, gitea-mcp/list_repo_labels, gitea-mcp/list_repo_pull_requests, gitea-mcp/list_tags, gitea-mcp/list_wiki_pages, gitea-mcp/remove_issue_label, gitea-mcp/replace_issue_labels, gitea-mcp/search_org_teams, gitea-mcp/search_repos, gitea-mcp/search_users, gitea-mcp/update_file, gitea-mcp/update_wiki_page, portainer-mcp/listAccessGroups, portainer-mcp/listEnvironmentGroups, portainer-mcp/listEnvironmentTags, portainer-mcp/listEnvironments, portainer-mcp/listStacks, portainer-mcp/listTeams, portainer-mcp/listUsers, openproject-mcp/get_projects, openproject-mcp/get_project, openproject-mcp/create_project, openproject-mcp/update_project, openproject-mcp/get_work_packages, openproject-mcp/get_work_package, openproject-mcp/create_work_package, openproject-mcp/update_work_package, openproject-mcp/set_work_package_parent, openproject-mcp/remove_work_package_parent, openproject-mcp/get_work_package_children, openproject-mcp/search, openproject-mcp/get_users, openproject-mcp/get_current_user, openproject-mcp/get_time_entries, openproject-mcp/create_time_entry, openproject-mcp/test_connection, openproject-mcp/get_api_info, openproject-mcp/get_boards, openproject-mcp/get_board, openproject-mcp/create_board, openproject-mcp/update_board, openproject-mcp/delete_board, openproject-mcp/add_board_widget, openproject-mcp/remove_board_widget]
---
System Role & Persona You are the Technical Project Lead for the project "Unyo 🐙". Your purpose is to convert code snippets and brief user instructions into concise OpenProject Work Packages.
# Project Configuration
- Workflow: Monthly Kanban (e.g., "Board: December 2025"). Unfinished tasks roll over manually.
- Columns: TODO -> IN PROGRESS -> DONE -> RELEASED.
- Ticket Types: ```Feature``` or ```Bug``` (only).
- Definition of Done: A task is complete when in ```DONE``` or ```RELEASED```.
# Your Rules for Creation
1. Be Concise: No fluff. No corporate jargon. Go straight to the technical point.
2. Analyze Code: If code is provided, reference the specific function, variable, or logic block in the ticket description.
3. Auto-Assign Board: Unless told otherwise, always assign to the Current Month's Board.
4. Default Status: Always set new tickets to ```TODO```.
Output Template Always output the response in this exact Markdown block:
```markdown
**[Type]** [Action Verb] [Subject]
**Board:** [Current Month YYYY] | **Status:** TODO
**Context:**
[1 sentence explaining the issue or idea based on the code provided]
**Technical Implementation:**
[Bulleted list of exactly what needs to change in the code]
* [e.g. Update `authController.ts` to handle null token]
* [e.g. Refactor `user_sync` loop]
**Acceptance Criteria:**
- [ ] [Measurable outcome 1]
- [ ] [Measurable outcome 2]
```
# Interaction guide
- Input: "Here is a bug in this situation [code block for context]/[explanation]..."
- Action: Identify the logic error, create a ```Bug``` type, quote the breaking line in "Context".
- Input: "I have an idea [code block for context]/[explanation]..."
- Action: Synthesize the feature, create a ```Feature``` type, outline the new login in "Technical Implementation".

View File

@@ -13,6 +13,7 @@ import 'package:unyo/core/enums/service.dart';
import 'package:unyo/core/notification/anime_genres_notifier.dart';
import 'package:unyo/core/notification/anime_notifier.dart';
import 'package:unyo/core/notification/media_list_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/core/services/api/http/http_exception.dart';
import 'package:unyo/data/repositories/anime_repository_anilist.dart';
@@ -20,16 +21,27 @@ import 'package:unyo/domain/entities/anime.dart';
import 'package:unyo/domain/entities/media_list.dart';
import 'package:unyo/domain/entities/user.dart';
import '../../core/notification/reload/reload_notifier.dart';
class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
final AnimeRepositoryAnilist _animeRepositoryAnilist;
final UserNotifier _loggedUserNotifier;
final AnimeNotifier _selectedAnimeNotifier;
final AnimeGenresNotifier _selectedAnimeAdvancedSearchGenresFilters;
final MediaListNotifier _selectedMediaListNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<User> _loggedUserSubscription;
late StreamSubscription<ReloadType> _reloadSubscription;
final Logger _logger = sl<Logger>();
AnimeCubit(this._animeRepositoryAnilist, this._loggedUserNotifier, this._selectedAnimeNotifier, this._selectedAnimeAdvancedSearchGenresFilters, this._selectedMediaListNotifier)
AnimeCubit(
this._animeRepositoryAnilist,
this._loggedUserNotifier,
this._selectedAnimeNotifier,
this._selectedAnimeAdvancedSearchGenresFilters,
this._selectedMediaListNotifier,
this._reloadNotifier,
)
: super(
AnimeState(
recentlyReleased: (false, []),
@@ -58,6 +70,7 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
@override
Future<void> close() {
_loggedUserSubscription.cancel();
_reloadSubscription.cancel();
return super.close();
}
@@ -76,6 +89,18 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
emit(state.copyWith(userLoaded: true, isLoading: false));
}
});
_reloadSubscription = _reloadNotifier.reloadStream.listen((reloadType) async {
if (reloadType == ReloadType.newMetadataService) {
_logger.i("Reloading Anime Screen due to new metadata service");
if (!state.userLoaded) {
_fetchRecentlyReleased(1, state.loggedUser, ignoreCache: true);
_fetchTrending(1, state.loggedUser, ignoreCache: true);
_fetchRecentlyCompleted(1, state.loggedUser, ignoreCache: true);
_fetchPopular(1, state.loggedUser, ignoreCache: true);
_fetchUpcoming(1, state.loggedUser, ignoreCache: true);
}
}
});
}
void navigateToCalendar(BuildContext context) {
@@ -96,13 +121,13 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
pushRouteEffect(path: "/animedetails");
}
Future<void> _fetchRecentlyReleased(int page, User loggedUser) async {
Future<void> _fetchRecentlyReleased(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist recently released anime");
(bool, List<Anime>) recentlyReleased = await _animeRepositoryAnilist
.getRecentlyReleasedAnimes(page, loggedUser);
.getRecentlyReleasedAnimes(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(recentlyReleased: recentlyReleased));
case Service.mal:
case Service.kitsu:
@@ -123,13 +148,13 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
}
}
Future<void> _fetchTrending(int page, User loggedUser) async {
Future<void> _fetchTrending(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist trending anime");
(bool, List<Anime>) trending = await _animeRepositoryAnilist
.getTrendingAnimes(page, loggedUser);
.getTrendingAnimes(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(trending: trending));
if (page == 1) {
List<Anime> banners =
@@ -159,13 +184,13 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
}
}
Future<void> _fetchPopular(int page, User loggedUser) async {
Future<void> _fetchPopular(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist popular anime");
(bool, List<Anime>) popular = await _animeRepositoryAnilist
.getPopularAnimes(page, loggedUser);
.getPopularAnimes(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(popular: popular));
case Service.mal:
case Service.kitsu:
@@ -183,13 +208,13 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
}
}
Future<void> _fetchRecentlyCompleted(int page, User loggedUser) async {
Future<void> _fetchRecentlyCompleted(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist recently completed anime");
(bool, List<Anime>) recentlyCompleted = await _animeRepositoryAnilist
.getRecentlyCompletedAnimes(page, loggedUser);
.getRecentlyCompletedAnimes(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(recentlyCompleted: recentlyCompleted));
case Service.mal:
case Service.kitsu:
@@ -210,13 +235,13 @@ class AnimeCubit extends Cubit<AnimeState> with EffectMixin<AnimeState> {
}
}
Future<void> _fetchUpcoming(int page, User loggedUser) async {
Future<void> _fetchUpcoming(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist upcoming anime");
(bool, List<Anime>) upcoming = await _animeRepositoryAnilist
.getUpcomingAnimes(page, loggedUser);
.getUpcomingAnimes(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(upcoming: upcoming));
case Service.mal:
case Service.kitsu:

View File

@@ -23,6 +23,8 @@ import 'package:unyo/core/notification/episodes_notifier.dart';
import 'package:unyo/core/notification/extension_notifier.dart';
import 'package:unyo/core/notification/media_list_entry_notifier.dart';
import 'package:unyo/core/notification/media_list_notifier.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/core/notification/video_info_notifier.dart';
import 'package:unyo/core/services/api/http/http_exception.dart';
@@ -62,9 +64,11 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
final MediaListEntryNotifier _mediaListEntryNotifier;
final ExtensionNotifier _selectedExtensionNotifier;
final EpisodesNotifier _selectedEpisodesNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<Anime> _selectedAnimeSubscription;
late StreamSubscription<User> _loggedUserSubscription;
late StreamSubscription<MediaList> _selectedMediaListSubscription;
late StreamSubscription<ReloadType> _reloadSubscription;
// Logger
final Logger _logger = sl<Logger>();
@@ -83,6 +87,7 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
this._mediaListEntryNotifier,
this._selectedExtensionNotifier,
this._selectedEpisodesNotifier,
this._reloadNotifier,
) : super(
AnimeDetailsState(
loggedUser: UserModel.empty(),
@@ -119,6 +124,7 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
_loggedUserSubscription.cancel();
_selectedAnimeSubscription.cancel();
_selectedMediaListSubscription.cancel();
_reloadSubscription.cancel();
return super.close();
}
@@ -141,6 +147,16 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
_selectedMediaListSubscription = _selectedMediaListNotifier.mediaListStream.listen((mediaList) {
emit(state.copyWith(selectedMediaList: mediaList));
});
_reloadSubscription = _reloadNotifier.reloadStream.listen((reloadType) {
if (reloadType == ReloadType.videoMediaListEntryUpdated) {
_logger.i("Reloading Anime Details due to video media list entry update");
_getUserMediaListEntry(state.loggedUser, state.selectedAnime, ignoreCache: true);
}
if (reloadType == ReloadType.animeMediaListEntryUpdated) {
_logger.i("Reloading Anime Details due to anime media list entry update");
_getUserMediaListEntry(state.loggedUser, state.selectedAnime, ignoreCache: true);
}
});
_loadInstalledExtensions();
}
@@ -259,17 +275,20 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
Future<void> updateMediaListEntry(BuildContext context) async {
MediaListEntry desiredMediaListEntry = state.newMediaListEntry;
MediaListEntry beforeUpdateMediaListEntry = state.mediaListEntry;
try {
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on Anilist");
MediaListEntry savedMediaListEntry = await _animeRepositoryAnilist.updateMediaListEntry(
await _animeRepositoryAnilist.updateMediaListEntry(
desiredMediaListEntry,
state.selectedAnime,
state.loggedUser,
);
emit(state.copyWith(mediaListEntry: savedMediaListEntry, newMediaListEntry: savedMediaListEntry));
_mediaListEntryNotifier.updateSelectedMediaListEntry(savedMediaListEntry);
_reloadNotifier.emitReload(ReloadType.animeMediaListEntryUpdated);
if (desiredMediaListEntry.status != beforeUpdateMediaListEntry.status) {
_reloadNotifier.emitReload(ReloadType.homeMediaListEntryUpdated);
}
case Service.mal:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on MyAnimeList");
case Service.shikimori:
@@ -378,6 +397,34 @@ class AnimeDetailsCubit extends Cubit<AnimeDetailsState> with EffectMixin<AnimeD
}
}
Future<void> _getUserMediaListEntry(User loggedUser, Anime selectedAnime, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching User Media List Entry from AniList for ${state.selectedAnime.title.userPreferred}");
MediaListEntry mediaListEntry = await _animeRepositoryAnilist.getMediaListEntry(
selectedAnime,
loggedUser,
ignoreCache: ignoreCache,
);
emit(state.copyWith(mediaListEntry: mediaListEntry, newMediaListEntry: mediaListEntry));
_mediaListEntryNotifier.updateSelectedMediaListEntry(mediaListEntry);
case Service.mal:
_logger.i("Fetching User Media List Entry from MyAnimeList for ${state.selectedAnime.title.userPreferred}");
case Service.shikimori:
_logger.i("Fetching User Media List Entry from Shikimori for ${state.selectedAnime.title.userPreferred}");
case Service.kitsu:
_logger.i("Fetching User Media List Entry from Kitsu for ${state.selectedAnime.title.userPreferred}");
case Service.simkl:
_logger.i("Fetching User Media List Entry from Simkl for ${state.selectedAnime.title.userPreferred}");
}
} on HttpServerException catch (e, stackTrace) {
handleError("Error fetching User Media List entry:", responseBody: e.message, stackTrace: stackTrace);
} catch (e, stackTrace) {
handleError("Error fetching User Media List Entry: $e", stackTrace: stackTrace);
}
}
Future<void> _getAnimeDetails(User loggedUser, Anime selectedAnime) async {
try {
switch (loggedUser.settings.service) {

View File

@@ -17,6 +17,8 @@ import 'package:unyo/core/notification/anime_notifier.dart';
import 'package:unyo/core/notification/manga_notifier.dart';
import 'package:unyo/core/notification/media_list_notifier.dart';
import 'package:unyo/core/notification/menu_bar_notifier.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/application/effects/app_effects.dart';
import 'package:unyo/data/models/anilist_user_model.dart';
@@ -38,7 +40,9 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
final AnimeNotifier _selectedAnimeNotifier;
final MangaNotifier _selectedMangaNotifier;
final MediaListNotifier _selectedMediaListNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<User> _newLoggedUserSubscription;
late StreamSubscription<ReloadType> _reloadSubscription;
final Logger _logger = sl<Logger>();
HomeCubit(
@@ -49,6 +53,7 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
this._userRepositoryAnilist,
this._animeRepositoryAnilist,
this._menuBarNotifier,
this._reloadNotifier,
) : super(
HomeState(
loggedUser: UserModel.empty(),
@@ -74,6 +79,7 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
@override
Future<void> close() {
_newLoggedUserSubscription.cancel();
_reloadSubscription.cancel();
return super.close();
}
@@ -91,6 +97,16 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
emit(state.copyWith(userLoaded: true, isLoading: false));
}
});
_reloadSubscription = _reloadNotifier.reloadStream.listen((reloadType) async {
if (reloadType == ReloadType.newMetadataService) {
_logger.i("Reloading Home Screen data due to new metadata service");
await _getMediaCoverImages(state.loggedUser, ignoreCache: true);
}
if (reloadType == ReloadType.homeMediaListEntryUpdated) {
_logger.i("Reloading Home Screen data due to media list entry update");
await _getUserInfo(state.loggedUser, ignoreCacheAnime: true);
}
});
}
void selectMenuOption(SelectedMenuOption option) {
@@ -121,15 +137,15 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
pushRouteEffect(path: "/userlist?type=manga");
}
Future<void> _getUserInfo(User user) async {
Future<void> _getUserInfo(User user, {bool ignoreCacheAnime = false, bool ignoreCacheManga = false}) async {
try {
switch (user) {
case AnilistUserModel anilistUserModel:
_logger.i("Fetching Anilist User lists");
List<Anime> watchingList = await _userRepositoryAnilist
.getUserWatchingList(anilistUserModel);
.getUserWatchingList(anilistUserModel, ignoreCache: ignoreCacheAnime);
List<Manga> readingList = await _userRepositoryAnilist
.getUserReadingList(anilistUserModel);
.getUserReadingList(anilistUserModel, ignoreCache: ignoreCacheManga);
emit(
state.copyWith(
continueWatching: watchingList,
@@ -144,12 +160,12 @@ class HomeCubit extends Cubit<HomeState> with EffectMixin<HomeState> {
}
}
Future<void> _getMediaCoverImages(User loggedUser) async {
Future<void> _getMediaCoverImages(User loggedUser, {bool ignoreCache = false}) async {
try {
switch (loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Media Cover Images from AniList");
List<String> mediaCoverImages = await _animeRepositoryAnilist.getMediaCoverImages(loggedUser);
List<String> mediaCoverImages = await _animeRepositoryAnilist.getMediaCoverImages(loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(mediaCoverImages: mediaCoverImages));
case Service.mal:
_logger.i("Fetching Media Cover Images from MyAnimeList");

View File

@@ -10,6 +10,8 @@ import 'package:unyo/core/enums/service.dart';
import 'package:unyo/core/notification/manga_genres_notifier.dart';
import 'package:unyo/core/notification/manga_notifier.dart';
import 'package:unyo/core/notification/media_list_notifier.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/data/repositories/manga_repository_anilist.dart';
import 'package:unyo/domain/entities/manga.dart';
@@ -23,10 +25,19 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
final MangaNotifier _selectedMangaNotifier;
final MangaGenresNotifier _selectedMangaAdvancedSearchGenresFilters;
final MediaListNotifier _selectedMediaListNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<User> _loggedUserSubscription;
late StreamSubscription<ReloadType> _reloadSubscription;
final Logger _logger = sl<Logger>();
MangaCubit(this._mangaRepositoryAnilist, this._loggedUserNotifier, this._selectedMangaNotifier, this._selectedMangaAdvancedSearchGenresFilters, this._selectedMediaListNotifier)
MangaCubit(
this._mangaRepositoryAnilist,
this._loggedUserNotifier,
this._selectedMangaNotifier,
this._selectedMangaAdvancedSearchGenresFilters,
this._selectedMediaListNotifier,
this._reloadNotifier,
)
: super(
MangaState(
trending: (false, []),
@@ -50,6 +61,7 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
@override
Future<void> close() {
_loggedUserSubscription.cancel();
_reloadSubscription.cancel();
return super.close();
}
@@ -70,6 +82,15 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
emit(state.copyWith(userLoaded: true, isLoading: false));
}
});
_reloadSubscription = _reloadNotifier.reloadStream.listen((reloadType) async {
if (reloadType == ReloadType.newMetadataService) {
_logger.i("Reloading manga data due to new metadata service");
_fetchTrending(1, state.loggedUser, ignoreCache: true);
_fetchRecentlyCompleted(1, state.loggedUser, ignoreCache: true);
_fetchPopular(1, state.loggedUser, ignoreCache: true);
_fetchUpcoming(1, state.loggedUser, ignoreCache: true);
}
});
}
void navigateToAdvancedSearch(BuildContext context) {
@@ -85,13 +106,13 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
pushRouteEffect(path: "/mangadetails");
}
Future<void> _fetchTrending(int page, User loggedUser) async {
Future<void> _fetchTrending(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist trending manga");
(bool, List<Manga>) trending = await _mangaRepositoryAnilist
.getTrendingMangas(page, loggedUser);
.getTrendingMangas(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(trending: trending));
if (page == 1) {
emit(
@@ -113,13 +134,13 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
}
}
Future<void> _fetchPopular(int page, User loggedUser) async {
Future<void> _fetchPopular(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist popular manga");
(bool, List<Manga>) popular = await _mangaRepositoryAnilist
.getPopularMangas(page, loggedUser);
.getPopularMangas(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(popular: popular));
case Service.mal:
case Service.kitsu:
@@ -131,13 +152,13 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
}
}
Future<void> _fetchRecentlyCompleted(int page, User loggedUser) async {
Future<void> _fetchRecentlyCompleted(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist recently completed manga");
(bool, List<Manga>) recentlyCompleted = await _mangaRepositoryAnilist
.getRecentlyCompletedMangas(page, loggedUser);
.getRecentlyCompletedMangas(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(recentlyCompleted: recentlyCompleted));
case Service.mal:
case Service.kitsu:
@@ -152,13 +173,13 @@ class MangaCubit extends Cubit<MangaState> with EffectMixin<MangaState> {
}
}
Future<void> _fetchUpcoming(int page, User loggedUser) async {
Future<void> _fetchUpcoming(int page, User loggedUser, {bool ignoreCache = false}) async {
try {
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Fetching Anilist upcoming manga");
(bool, List<Manga>) upcoming = await _mangaRepositoryAnilist
.getUpcomingMangas(page, loggedUser);
.getUpcomingMangas(page, loggedUser, ignoreCache: ignoreCache);
emit(state.copyWith(upcoming: upcoming));
case Service.mal:
case Service.kitsu:

View File

@@ -9,6 +9,8 @@ import 'package:unyo/application/cubits/effect_mixin.dart';
import 'package:unyo/application/effects/app_effects.dart';
import 'package:unyo/application/states/settings_state.dart';
import 'package:unyo/core/di/locator.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/core/services/media/episode_service.dart';
import 'package:unyo/core/services/media/media_service.dart';
@@ -24,9 +26,10 @@ class SettingsCubit extends Cubit<SettingsState> with EffectMixin<SettingsState>
final UserRepositoryAnilist _userRepositoryAnilist;
final UserRepositoryLocal _userRepositoryLocal;
final UserNotifier _loggedUserNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<User> _loggedUserSubscription;
SettingsCubit(this._userRepositoryAnilist, this._userRepositoryLocal, this._loggedUserNotifier)
SettingsCubit(this._userRepositoryAnilist, this._userRepositoryLocal, this._loggedUserNotifier, this._reloadNotifier)
: super(SettingsState(loggedUser: UserModel.empty())) {
_init();
}
@@ -51,12 +54,13 @@ class SettingsCubit extends Cubit<SettingsState> with EffectMixin<SettingsState>
});
}
Future<void> updateMediaMetadataService(String newService) async {
Future<void> updateMediaMetadataService(String? newService) async {
try {
Settings updatedSettings = (state.loggedUser.settings as SettingsModel).copyWith(
service: MediaServiceFactory.getEnumMediaService(newService),
);
_updateUserInfo(updatedSettings);
await _updateUserInfo(updatedSettings);
_reloadNotifier.emitReload(ReloadType.newMetadataService);
} catch (e, stackTrace) {
logger.e("Error updating media metadata service $e", stackTrace: stackTrace);
handleError("Error updating media metadata service", stackTrace: stackTrace);
@@ -68,7 +72,7 @@ class SettingsCubit extends Cubit<SettingsState> with EffectMixin<SettingsState>
Settings updatedSettings = (state.loggedUser.settings as SettingsModel).copyWith(
episodeService: EpisodeMediaServiceFactory.getEnumEpisodeService(newService),
);
_updateUserInfo(updatedSettings);
await _updateUserInfo(updatedSettings);
} catch (e, stackTrace) {
logger.e("Error updating episode metadata service $e", stackTrace: stackTrace);
handleError("Error updating episode metadata service", stackTrace: stackTrace);

View File

@@ -12,17 +12,22 @@ import 'dart:async';
import 'package:unyo/application/cubits/effect_mixin.dart';
import 'package:unyo/application/effects/app_effects.dart';
import 'package:unyo/application/states/video_state.dart';
import 'package:unyo/core/enums/service.dart';
import 'package:unyo/core/notification/anime_notifier.dart';
import 'package:unyo/core/notification/episode_info_notifier.dart';
import 'package:unyo/core/notification/episodes_notifier.dart';
import 'package:unyo/core/notification/extension_notifier.dart';
import 'package:unyo/core/notification/media_list_entry_notifier.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/core/notification/video_info_notifier.dart';
import 'package:unyo/core/services/api/dto/aniskip/aniskip_times_entity.dart';
import 'package:unyo/core/services/api/http/api_response.dart';
import 'package:unyo/core/services/api/http/http_exception.dart';
import 'package:unyo/core/services/api/http/http_service.dart';
import 'package:unyo/core/services/video/video_service.dart';
import 'package:unyo/data/repositories/anime_repository_anilist.dart';
import 'package:unyo/data/repositories/extension_repository_aniyomi.dart';
import 'package:unyo/domain/entities/anime.dart';
import 'package:unyo/domain/entities/episode_info.dart';
@@ -39,6 +44,7 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
// Repositories
final ExtensionRepositoryAniyomi _extensionRepositoryAniyomi;
final AnimeRepositoryAnilist _animeRepositoryAnilist;
// Notifiers / Subscriptions
final UserNotifier _loggedUserNotifier;
@@ -48,6 +54,7 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
final MediaListEntryNotifier _mediaListEntryNotifier;
final ExtensionNotifier _selectedExtensionNotifier;
final EpisodesNotifier _selectedEpisodesNotifier;
final ReloadNotifier _reloadNotifier;
late StreamSubscription<User> _loggedUserSubscription;
late StreamSubscription<VideoInfo> _videoInfoSubscription;
late StreamSubscription<Anime> _selectedAnimeSubscription;
@@ -63,6 +70,8 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
// Others
bool _videoServiceInitialized = false;
Timer? _videoReadyTimer;
Timer? _updateMediaEntryTimer;
VideoCubit(
this._loggedUserNotifier,
@@ -73,6 +82,8 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
this._selectedExtensionNotifier,
this._selectedEpisodesNotifier,
this._extensionRepositoryAniyomi,
this._animeRepositoryAnilist,
this._reloadNotifier,
) : super(
VideoState(
loggedUser: UserModel.empty(),
@@ -113,6 +124,8 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
_mediaListEntrySubscription.cancel();
_selectedExtensionSubscription.cancel();
_selectedEpisodesSubscription.cancel();
_videoReadyTimer?.cancel();
_updateMediaEntryTimer?.cancel();
_logger.d("VideoCubit closed and subscriptions cancelled.");
return super.close();
}
@@ -124,7 +137,7 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
_videoInfoSubscription = _videoInfoNotifier.videoInfoStream.listen((videoInfo) {
_initializeVideoService(videoInfo);
_videoInfoSubscription.cancel();
Future.delayed(const Duration(seconds: 1), () => _getAniskipSkipTimes(state.selectedAnime, videoInfo));
_initVideoMetadata(videoInfo);
});
_selectedAnimeSubscription = _selectedAnimeNotifier.animeStream.listen((selectedAnime) {
emit(state.copyWith(selectedAnime: selectedAnime));
@@ -146,6 +159,11 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
_getAvailableCastDevices();
}
void _initVideoMetadata(VideoInfo videoInfo) {
Future.delayed(const Duration(seconds: 1), () => _getAniskipSkipTimes(state.selectedAnime, videoInfo));
_triggerUserMediaEntryUpdate();
}
void _initializeVideoService(VideoInfo videoInfo) {
if (_videoServiceInitialized) {
_videoService.dispose();
@@ -173,6 +191,7 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
episodeIndex: videoInfo.playlistIndex,
);
emit(state.copyWith(videoInfo: videoInfo));
_initVideoMetadata(videoInfo);
_logger.i("VideoService updated for new episode.");
}
@@ -434,4 +453,71 @@ class VideoCubit extends Cubit<VideoState> with EffectMixin<VideoState> {
return [];
}
}
void _triggerUserMediaEntryUpdate() {
_videoReadyTimer?.cancel();
_updateMediaEntryTimer?.cancel();
const timeout = Duration(minutes: 1);
const pollInterval = Duration(milliseconds: 100);
final startTime = DateTime.now();
_videoReadyTimer = Timer.periodic(pollInterval, (timer){
if (_videoService.isVideoReady) {
_logger.d("Video is ready, triggering media entry update timer.");
timer.cancel();
// TODO add a setting for this percentage value
final updateMediaEntryTriggerDuration = Duration(seconds: (_videoService.duration.inSeconds * 0.8).toInt());
_updateMediaEntryTimer = Timer.periodic(const Duration(seconds: 30), (updateTimer) async {
if (_videoService.position >= updateMediaEntryTriggerDuration) {
_markEpisodeAsWatched();
updateTimer.cancel();
}
});
return;
}
if (DateTime.now().difference(startTime) > timeout) {
timer.cancel();
_logger.w("Video ready timeout after 1 minute");
}
});
}
Future<void> _markEpisodeAsWatched() async {
if (state.mediaListEntry.progress >= state.videoInfo.playlistIndex + 1) {
_logger.d("Episode ${state.videoInfo.playlistIndex + 1} is already marked as watched. No update needed.");
return;
}
_logger.i("Marking episode ${state.videoInfo.playlistIndex + 1} as watched in media list.");
try {
MediaListEntry desiredMediaListEntry = (state.mediaListEntry as MediaListEntryModel).copyWith(
progress: state.videoInfo.playlistIndex + 1,
status: "Current",
);
switch (state.loggedUser.settings.service) {
case Service.anilist:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on Anilist");
MediaListEntry savedMediaListEntry = await _animeRepositoryAnilist.updateMediaListEntry(
desiredMediaListEntry,
state.selectedAnime,
state.loggedUser,
);
emit(state.copyWith(mediaListEntry: savedMediaListEntry));
_reloadNotifier.emitReload(ReloadType.videoMediaListEntryUpdated);
case Service.mal:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on MyAnimeList");
case Service.shikimori:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on Shikimori");
case Service.kitsu:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on Kitsu");
case Service.simkl:
_logger.i("Updating Media List Entry to $desiredMediaListEntry on Simkl");
}
} on HttpServerException catch (e, stackTrace) {
handleError("Error updating Anime Entry:", responseBody: e.message, stackTrace: stackTrace);
} catch (e, stackTrace) {
handleError("Error updating Anime Entry: $e", stackTrace: stackTrace);
}
showSnackBarEffect("Episode marked as complete!", message: "This episode has been marked as completed", contentType: ContentType.success);
}
}

View File

@@ -31,11 +31,13 @@ import 'package:unyo/core/notification/manga_notifier.dart';
import 'package:unyo/core/notification/media_list_entry_notifier.dart';
import 'package:unyo/core/notification/media_list_notifier.dart';
import 'package:unyo/core/notification/menu_bar_notifier.dart';
import 'package:unyo/core/notification/reload/reload_notifier.dart';
import 'package:unyo/core/notification/user_notifier.dart';
import 'package:unyo/core/notification/video_info_notifier.dart';
import 'package:unyo/core/services/api/graphql/graphql_service.dart';
import 'package:unyo/core/services/api/http/http_service.dart';
import 'package:unyo/core/services/effects/app_effect_handler.dart';
import 'package:unyo/core/services/settings/settings_service.dart';
import 'package:unyo/core/services/torrent/torrent_service.dart';
import 'package:unyo/core/theme/color_image_service.dart';
import 'package:unyo/core/theme/theme_service.dart';
@@ -67,6 +69,7 @@ void setupLocator() async{
sl.registerLazySingleton<ColorImageService>(() => ColorImageService());
sl.registerSingleton<AniyomiBridge>(AniyomiBridge());
sl.registerSingleton<TorrentService>(TorrentService());
sl.registerSingleton<SettingsService>(SettingsService());
// Notifiers
sl.registerLazySingleton<UserNotifier>(() => UserNotifier(), instanceName: config.loggedUserNotifier);
sl.registerLazySingleton<UserNotifier>(() => UserNotifier(), instanceName: config.newUserNotifier);
@@ -81,6 +84,7 @@ void setupLocator() async{
sl.registerLazySingleton<MediaListEntryNotifier>(() => MediaListEntryNotifier());
sl.registerLazySingleton<ExtensionNotifier>(() => ExtensionNotifier());
sl.registerLazySingleton<EpisodesNotifier>(() => EpisodesNotifier());
sl.registerLazySingleton<ReloadNotifier>(() => ReloadNotifier());
// Repositories
sl.registerLazySingleton<UserRepositoryLocal>(() => UserRepositoryLocal());
sl.registerLazySingleton<UserRepositoryAnilist>(
@@ -112,6 +116,7 @@ void setupLocator() async{
sl<UserRepositoryAnilist>(),
sl<AnimeRepositoryAnilist>(),
sl<MenuBarNotifier>(),
sl<ReloadNotifier>(),
),
);
sl.registerFactory<TabsCubit>(
@@ -124,6 +129,7 @@ void setupLocator() async{
sl<AnimeNotifier>(),
sl<AnimeGenresNotifier>(),
sl<MediaListNotifier>(),
sl<ReloadNotifier>(),
),
);
sl.registerFactory<MangaCubit>(
@@ -133,6 +139,7 @@ void setupLocator() async{
sl<MangaNotifier>(),
sl<MangaGenresNotifier>(),
sl<MediaListNotifier>(),
sl<ReloadNotifier>(),
),
);
sl.registerFactory<ExtensionsCubit>(
@@ -172,7 +179,8 @@ void setupLocator() async{
sl<EpisodesInfoNotifier>(),
sl<MediaListEntryNotifier>(),
sl<ExtensionNotifier>(),
sl<EpisodesNotifier>()
sl<EpisodesNotifier>(),
sl<ReloadNotifier>(),
),
);
sl.registerFactory<MangaDetailsCubit>(
@@ -191,6 +199,7 @@ void setupLocator() async{
sl<UserRepositoryAnilist>(),
sl<UserRepositoryLocal>(),
sl<UserNotifier>(instanceName: config.loggedUserNotifier),
sl<ReloadNotifier>()
),
);
sl.registerFactory<AnimeAdvancedSearchCubit>(
@@ -220,7 +229,9 @@ void setupLocator() async{
sl<MediaListEntryNotifier>(),
sl<ExtensionNotifier>(),
sl<EpisodesNotifier>(),
sl<ExtensionRepositoryAniyomi>()
sl<ExtensionRepositoryAniyomi>(),
sl<AnimeRepositoryAnilist>(),
sl<ReloadNotifier>(),
)
);
}

View File

@@ -0,0 +1,26 @@
import 'package:logger/logger.dart';
import 'package:rxdart/rxdart.dart';
import 'package:unyo/core/di/locator.dart';
import 'package:unyo/core/notification/reload/reload_type.dart';
class ReloadNotifier {
final BehaviorSubject<ReloadType> _reloadSubject;
final _logger = sl<Logger>();
ReloadNotifier() : _reloadSubject = BehaviorSubject.seeded(ReloadType.empty);
// Public stream for Cubits to Subscribe
Stream<ReloadType> get reloadStream => _reloadSubject.stream;
void emitReload(ReloadType newReloadType) {
_logger.d("Reload notifier updated with: $newReloadType");
_reloadSubject.add(newReloadType);
Future.delayed(Duration.zero, () {
_reloadSubject.add(ReloadType.empty);
});
}
ReloadType get latestReloadNotification => _reloadSubject.value;
void dispose() => _reloadSubject.close();
}

View File

@@ -0,0 +1,7 @@
enum ReloadType {
empty, // No reload needed
newMetadataService, // HomeScreen, AnimeScreen and MangaScreen
homeMediaListEntryUpdated, // HomeScreen
animeMediaListEntryUpdated, // AnimeDetailsScreen
videoMediaListEntryUpdated, // AnimeDetailsScreen
}

View File

@@ -26,7 +26,6 @@ class MediaDetailsGraphqlMedia {
late MediaDetailsGraphqlMediaTitle title;
late MediaDetailsGraphqlMediaRecommendations recommendations = MediaDetailsGraphqlMediaRecommendations();
late MediaDetailsGraphqlMediaCharacters characters;
MediaDetailsGraphqlMediaMediaListEntry? mediaListEntry;
MediaDetailsGraphqlMedia();
@@ -285,65 +284,6 @@ class MediaDetailsGraphqlMediaCharactersNodesDateOfBirth {
}
}
@JsonSerializable()
class MediaDetailsGraphqlMediaMediaListEntry {
int progress = 0;
int progressVolumes = 0;
double score = 0;
int repeat = 0;
String status = '';
late MediaDetailsGraphqlMediaMediaListEntryStartedAt startedAt;
late MediaDetailsGraphqlMediaMediaListEntryCompletedAt completedAt;
List<MediaDetailsGraphqlMediaMediaListEntryCustomLists> customLists = [];
MediaDetailsGraphqlMediaMediaListEntry();
factory MediaDetailsGraphqlMediaMediaListEntry.fromJson(Map<String, dynamic> json) => $MediaDetailsGraphqlMediaMediaListEntryFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsGraphqlMediaMediaListEntryToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsGraphqlMediaMediaListEntryStartedAt {
int day = 0;
int month = 0;
int year= 0;
MediaDetailsGraphqlMediaMediaListEntryStartedAt();
factory MediaDetailsGraphqlMediaMediaListEntryStartedAt.fromJson(Map<String, dynamic> json) => $MediaDetailsGraphqlMediaMediaListEntryStartedAtFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsGraphqlMediaMediaListEntryStartedAtToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsGraphqlMediaMediaListEntryCompletedAt {
int day = 0;
int month = 0;
int year = 0;
MediaDetailsGraphqlMediaMediaListEntryCompletedAt();
factory MediaDetailsGraphqlMediaMediaListEntryCompletedAt.fromJson(Map<String, dynamic> json) => $MediaDetailsGraphqlMediaMediaListEntryCompletedAtFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsGraphqlMediaMediaListEntryCompletedAtToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsGraphqlMediaMediaListEntryCustomLists {
String name = '';

View File

@@ -0,0 +1,113 @@
import 'package:unyo/generated/json/base/json_field.dart';
import 'package:unyo/generated/json/media_details_media_list_entry_entity.g.dart';
import 'dart:convert';
export 'package:unyo/generated/json/media_details_media_list_entry_entity.g.dart';
@JsonSerializable()
class MediaDetailsMediaListEntryEntity {
@JSONField(name: 'Media')
late MediaDetailsMediaListEntryMedia media;
MediaDetailsMediaListEntryEntity();
factory MediaDetailsMediaListEntryEntity.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryEntityFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsMediaListEntryMedia {
MediaDetailsMediaListEntryMediaMediaListEntry mediaListEntry = MediaDetailsMediaListEntryMediaMediaListEntry();
MediaDetailsMediaListEntryMedia();
factory MediaDetailsMediaListEntryMedia.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryMediaFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryMediaToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsMediaListEntryMediaMediaListEntry {
int progress = 0;
double score = 0.0;
int repeat = 0;
String status = 'ADD TO LIST';
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt startedAt = MediaDetailsMediaListEntryMediaMediaListEntryStartedAt();
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt completedAt = MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt();
List<MediaDetailsMediaListEntryMediaMediaListEntryCustomLists> customLists = [];
int progressVolumes = 0;
MediaDetailsMediaListEntryMediaMediaListEntry();
factory MediaDetailsMediaListEntryMediaMediaListEntry.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryMediaMediaListEntryFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryMediaMediaListEntryToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsMediaListEntryMediaMediaListEntryStartedAt {
int day = 0;
int month = 0;
int year = 0;
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt();
factory MediaDetailsMediaListEntryMediaMediaListEntryStartedAt.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryMediaMediaListEntryStartedAtFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryMediaMediaListEntryStartedAtToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt {
int day = 0;
int month = 0;
int year = 0;
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt();
factory MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryMediaMediaListEntryCompletedAtFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryMediaMediaListEntryCompletedAtToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MediaDetailsMediaListEntryMediaMediaListEntryCustomLists {
String name = '';
bool enabled = false;
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists();
factory MediaDetailsMediaListEntryMediaMediaListEntryCustomLists.fromJson(Map<String, dynamic> json) => $MediaDetailsMediaListEntryMediaMediaListEntryCustomListsFromJson(json);
Map<String, dynamic> toJson() => $MediaDetailsMediaListEntryMediaMediaListEntryCustomListsToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}

View File

@@ -20,6 +20,7 @@ class GraphQLService {
Map<String, dynamic>? variables,
Map<String, String>? headers,
required T Function(Map<String, dynamic>) fromJson,
bool ignoreCache = false,
}) async {
_logger.d("Executing GraphQL QUERY operation");
return _sendRequest(
@@ -27,6 +28,7 @@ class GraphQLService {
variables: variables,
headers: headers,
fromJson: fromJson,
ignoreCache: ignoreCache
);
}
@@ -35,6 +37,7 @@ class GraphQLService {
Map<String, dynamic>? variables,
Map<String, String>? headers,
required T Function(Map<String, dynamic>) fromJson,
bool ignoreCache = true,
}) async {
_logger.d("Executing GraphQL MUTATION operation");
return _sendRequest(
@@ -42,6 +45,7 @@ class GraphQLService {
variables: variables,
headers: headers,
fromJson: fromJson,
ignoreCache: ignoreCache
);
}
@@ -50,6 +54,7 @@ class GraphQLService {
Map<String, dynamic>? variables,
Map<String, String>? headers,
required T Function(Map<String, dynamic>) fromJson,
required bool ignoreCache,
}) async {
final body = {
"query": query,
@@ -64,6 +69,7 @@ class GraphQLService {
json,
fromJson,
),
ignoreCache: ignoreCache
);
return response.data;
}

View File

@@ -1,4 +1,4 @@
// User specific
// { }
const viewerQuery = '''
query Viewer {
Viewer {
@@ -461,6 +461,32 @@ const mediaDetailsQuery = '''query Page(\$type: MediaType, \$mediaId: Int, \$pag
}
''';
// {
// "mediaId": selectedAnime.id
// }
const mediaListEntryQuery = '''query Page(\$mediaId: Int) {
Media(id: \$mediaId) {
mediaListEntry {
progress
score
repeat
status
startedAt {
day
month
year
}
completedAt {
day
month
year
}
customLists(asArray: true)
progressVolumes
}
}
}
''';
// {
// "page": 1,
// "perPage": 5,
// "type": "ANIME",
@@ -521,6 +547,16 @@ id
}
}
''';
// {
// "mediaId": selectedAnime.id,
// "progress": 10,
// "progressVolumes": 0,
// "repeat": 0,
// "score": 8.5,
// "startedAt": {"day": 1, "month": 1, "year": 2023},
// "completedAt": {"day": 1, "month": 2, "year": 2023},
// "status": "COMPLETED"
// }
const updateMediaEntryQuery = '''
mutation SaveMediaListEntry(\$mediaId: Int, \$progress: Int, \$progressVolumes: Int, \$repeat: Int, \$score: Float, \$startedAt: FuzzyDateInput, \$completedAt: FuzzyDateInput, \$status: MediaListStatus) {
SaveMediaListEntry(mediaId: \$mediaId, progress: \$progress, progressVolumes: \$progressVolumes, repeat: \$repeat, score: \$score, startedAt: \$startedAt, completedAt: \$completedAt, status: \$status) {

View File

@@ -28,18 +28,26 @@ class HttpService {
Future<ApiResponse<T>> get<T>(
String endpoint, {
Map<String, String>? headers,
bool ignoreCache = false,
required T Function(Map<String, dynamic>) fromJson,
}) async {
_logger.d("GET request to $endpoint attempting to return instance of $T");
ApiResponse<T>? cachedApiResponse = _getCachedResponse<T>(
'GET',
endpoint,
headers: headers,
fromJson: fromJson,
);
if (cachedApiResponse != null) {
_logger.d("Returning cached response instance of $T for $endpoint ");
return cachedApiResponse;
if (!ignoreCache) {
ApiResponse<T>? cachedApiResponse = _getCachedResponse<T>(
'GET',
endpoint,
headers: headers,
fromJson: fromJson,
);
if (cachedApiResponse != null) {
_logger.d("Returning cached response instance of $T for $endpoint ");
return cachedApiResponse;
}
} else {
if (_isCacheable(endpoint)) {
final cacheKey = "${'GET'.hashCode}${endpoint.hashCode}${json.encode(_cacheEnabledHeaders(headers)).hashCode}${null.hashCode}${fromJson.runtimeType.hashCode}";
_deleteCacheEntry(cacheKey);
}
}
ApiResponse<T> apiResponse = await _request(
'GET',
@@ -61,20 +69,28 @@ class HttpService {
String endpoint, {
Map<String, String>? headers,
Object? body,
bool ignoreCache = false,
required T Function(Map<String, dynamic>) fromJson,
}) async {
_logger.d("POST request to $endpoint attempting to return instance of $T");
final encodedBody = json.encode(body);
ApiResponse<T>? cachedApiResponse = _getCachedResponse<T>(
'POST',
endpoint,
headers: headers,
body: encodedBody,
fromJson: fromJson,
);
if (cachedApiResponse != null) {
_logger.d("Returning cached response instance of $T for $endpoint ");
return cachedApiResponse;
if (!ignoreCache) {
ApiResponse<T>? cachedApiResponse = _getCachedResponse<T>(
'POST',
endpoint,
headers: headers,
body: encodedBody,
fromJson: fromJson,
);
if (cachedApiResponse != null) {
_logger.d("Returning cached response instance of $T for $endpoint ");
return cachedApiResponse;
}
} else {
if (_isCacheable(endpoint)) {
final cacheKey = "${'POST'.hashCode}${endpoint.hashCode}${json.encode(_cacheEnabledHeaders(headers)).hashCode}${encodedBody.hashCode}${fromJson.runtimeType.hashCode}";
_deleteCacheEntry(cacheKey);
}
}
ApiResponse<T> apiResponse = await _request(
'POST',
@@ -142,7 +158,7 @@ class HttpService {
_logger.w("Not caching response for $endpoint due to client error with status code ${response.statusCode}");
return;
}
if (!_isCacheable(endpoint)) return null;
if (!_isCacheable(endpoint)) return;
_logger.d("Caching response for $endpoint");
final cacheKey = "${method.hashCode}${endpoint.hashCode}${json.encode(_cacheEnabledHeaders(headers)).hashCode}${body.hashCode}${fromJson.runtimeType.hashCode}";
_apiResponseCache[cacheKey] =
@@ -273,4 +289,21 @@ class HttpService {
...?override,
};
}
void _deleteCacheEntry(String cacheKey) {
if (_apiResponseCache.containsKey(cacheKey)) {
(int, dynamic)? cacheEntry = _apiResponseCache.remove(cacheKey);
_logger.d("Deleted cache entry ${cacheEntry?.$2} with expiration ${cacheEntry?.$1}");
return;
}
_logger.w("No cache entry found for key $cacheKey to delete. Current cache: \n${_cacheToString()}");
}
String _cacheToString() {
return _apiResponseCache.entries.map((entry) {
final cacheKey = entry.key;
final (expiry, cachedResponse) = entry.value;
return "CacheKey: $cacheKey, Expiry: ${DateTime.fromMillisecondsSinceEpoch(expiry)}, CachedResponse: $cachedResponse";
}).join("\n");
}
}

View File

@@ -16,8 +16,8 @@ class MediaServiceFactory {
}
}
static Service getEnumMediaService(String serviceName) {
switch (serviceName.toLowerCase()) {
static Service getEnumMediaService(String? serviceName) {
switch (serviceName?.toLowerCase()) {
case 'anilist':
return Service.anilist;
case 'myanimelist':

View File

@@ -0,0 +1,3 @@
class SettingsService {
}

View File

@@ -21,14 +21,14 @@ class VideoService {
ext.Video _video;
List<ext.Video> _alternativeVideos;
int _videoIndex;
// This will be used for getting the correct video out of a playlist from a magnet / torrent
int _episodeIndex;
int _episodeIndex; // This will be used for getting the correct video out of a playlist from a magnet / torrent
final void Function(String) _onErrorCallback;
late final mdk.Player _player;
final List<ext.Track> captionTracks = [];
final List<ext.Track> audioTracks = [];
ext.Track? _currentCaptionTrack;
ext.Track? _currentAudioTrack;
final void Function(String) _onErrorCallback;
final bool _lowLatency;
late bool _initialFullscreen;
@@ -114,6 +114,8 @@ class VideoService {
bool get isFullscreen => _isFullscreen;
bool get isVideoReady => _isVideoReady;
double get aspectRatio {
final streams = _player.mediaInfo.video;
if (streams != null && streams.isNotEmpty) {

View File

@@ -1,6 +1,7 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hive_ce/hive.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
import 'package:unyo/data/adapters/adapters_names.dart' as names;
import 'package:unyo/data/adapters/adapters_types.dart' as types;
import 'package:unyo/data/models/anilist_anime_model.dart';
@@ -38,25 +39,9 @@ abstract class AnilistAnimeDetailsModel with _$AnilistAnimeDetailsModel implemen
@override
Map<String, dynamic> toJson() => _$AnilistAnimeDetailsModelToJson(this as _AnilistAnimeDetailsModel);
factory AnilistAnimeDetailsModel.fromAnimeDetailsMediaList(MediaDetailsGraphqlMedia animeDetailsMediaList) {
factory AnilistAnimeDetailsModel.fromAnimeDetailsMediaList(MediaDetailsGraphqlMedia animeDetailsMediaList, MediaDetailsMediaListEntryEntity mediaListEntry) {
return AnilistAnimeDetailsModel(
mediaListEntry: MediaListEntryModel(
progress: animeDetailsMediaList.mediaListEntry?.progress ?? -1,
progressVolumes: animeDetailsMediaList.mediaListEntry?.progressVolumes ?? -1,
score: animeDetailsMediaList.mediaListEntry?.score ?? -1,
repeat: animeDetailsMediaList.mediaListEntry?.repeat ?? -1,
status: animeDetailsMediaList.mediaListEntry?.status ?? "ADD TO LIST",
startedAt: [
animeDetailsMediaList.mediaListEntry?.startedAt.day.toString() ?? "~",
animeDetailsMediaList.mediaListEntry?.startedAt.month.toString() ?? "~",
animeDetailsMediaList.mediaListEntry?.startedAt.year.toString() ?? "~",
],
completedAt: [
animeDetailsMediaList.mediaListEntry?.completedAt.day.toString() ?? "~",
animeDetailsMediaList.mediaListEntry?.completedAt.month.toString() ?? "~",
animeDetailsMediaList.mediaListEntry?.completedAt.year.toString() ?? "~",
],
),
mediaListEntry: MediaListEntryModel.fromMediaDetailsMediaListEntryEntity(mediaListEntry),
recommendedAnimes:
animeDetailsMediaList.recommendations.nodes
.map(

View File

@@ -1,6 +1,7 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hive_ce/hive.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
import 'package:unyo/data/adapters/adapters_names.dart' as names;
import 'package:unyo/data/adapters/adapters_types.dart' as types;
import 'package:unyo/data/models/anilist_manga_model.dart';
@@ -43,25 +44,9 @@ abstract class AnilistMangaDetailsModel
_$AnilistMangaDetailsModelToJson(this as _AnilistMangaDetailsModel);
factory AnilistMangaDetailsModel.fromMangaDetailsMediaList(
MediaDetailsGraphqlMedia mangaDetailsMediaList,) {
MediaDetailsGraphqlMedia mangaDetailsMediaList, MediaDetailsMediaListEntryEntity mediaListEntry) {
return AnilistMangaDetailsModel(
mediaListEntry: MediaListEntryModel(
progress: mangaDetailsMediaList.mediaListEntry?.progress ?? -1,
progressVolumes: mangaDetailsMediaList.mediaListEntry?.progressVolumes ?? -1,
score: mangaDetailsMediaList.mediaListEntry?.score ?? -1,
repeat: mangaDetailsMediaList.mediaListEntry?.repeat ?? -1,
status: mangaDetailsMediaList.mediaListEntry?.status ?? "ADD TO LIST",
startedAt: [
mangaDetailsMediaList.mediaListEntry?.startedAt.day.toString() ?? "~",
mangaDetailsMediaList.mediaListEntry?.startedAt.month.toString() ?? "~",
mangaDetailsMediaList.mediaListEntry?.startedAt.year.toString() ?? "~",
],
completedAt: [
mangaDetailsMediaList.mediaListEntry?.completedAt.day.toString() ?? "~",
mangaDetailsMediaList.mediaListEntry?.completedAt.month.toString() ?? "~",
mangaDetailsMediaList.mediaListEntry?.completedAt.year.toString() ?? "~",
],
),
mediaListEntry: MediaListEntryModel.fromMediaDetailsMediaListEntryEntity(mediaListEntry),
recommendedMangas: mangaDetailsMediaList.recommendations.nodes
.map(
(recommendationNode) =>

View File

@@ -13,6 +13,7 @@ import 'package:unyo/core/services/api/dto/anilist/media_collection_recently_com
import 'package:unyo/core/services/api/dto/anilist/media_collection_trendingOrPopular_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_collection_upcoming_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/save_media_list_entry_entity.dart';
import 'package:unyo/core/services/api/graphql/queries/anilist_queries.dart' as anilist_queries;
import 'package:unyo/core/services/api/dto/anilist/media_collection_recently_released_graphql_entity.dart';
@@ -36,7 +37,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
final Logger _logger = sl<Logger>();
@override
Future<(bool, List<Anime>)> getPopularAnimes(int page, User loggedUser) async {
Future<(bool, List<Anime>)> getPopularAnimes(int page, User loggedUser, {bool ignoreCache = false}) async {
ApiGraphQLResponse<MediaCollectionTrendingOrPopularGraphqlEntity> popularMediaCollection =
await _anilistGraphQLService.query(
query: anilist_queries.mediaTrendingOrPopularQuery,
@@ -47,6 +48,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
"perPage": 30,
"type": "ANIME",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(popularMediaCollection);
List<Anime> popularAnimes =
@@ -57,7 +59,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
}
@override
Future<(bool, List<Anime>)> getRecentlyCompletedAnimes(int page, User loggedUser) async {
Future<(bool, List<Anime>)> getRecentlyCompletedAnimes(int page, User loggedUser, {bool ignoreCache = false}) async {
DateTime now = DateTime.now();
DateTime monthAgo = now.subtract(const Duration(days: 30));
ApiGraphQLResponse<MediaCollectionRecentlyCompletedGraphqlEntity>
@@ -74,6 +76,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
"${now.year.toString().padLeft(4, '0')}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}",
"type": "ANIME",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(recentlyCompleted);
List<Anime> recentlyCompletedAnimes =
@@ -84,12 +87,13 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
}
@override
Future<(bool, List<Anime>)> getRecentlyReleasedAnimes(int page, User loggedUser) async {
Future<(bool, List<Anime>)> getRecentlyReleasedAnimes(int page, User loggedUser, {bool ignoreCache = false}) async {
ApiGraphQLResponse<MediaCollectionRecentlyReleasedGraphqlEntity> airingSchedules =
await _anilistGraphQLService.query(
query: anilist_queries.animeRecentlyReleasedQuery,
fromJson: MediaCollectionRecentlyReleasedGraphqlEntity.fromJson,
variables: {"sort": "TIME_DESC", "page": page, "perPage": 40, "notYetAired": false},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(airingSchedules);
List<Anime> recentlyReleasedAnimes =
@@ -106,7 +110,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
}
@override
Future<(bool, List<Anime>)> getTrendingAnimes(int page, User loggedUser) async {
Future<(bool, List<Anime>)> getTrendingAnimes(int page, User loggedUser, {bool ignoreCache = false}) async {
ApiGraphQLResponse<MediaCollectionTrendingOrPopularGraphqlEntity> trendingMediaCollection =
await _anilistGraphQLService.query(
query: anilist_queries.mediaTrendingOrPopularQuery,
@@ -117,6 +121,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
"perPage": 30,
"type": "ANIME",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(trendingMediaCollection);
List<Anime> trendingAnimes =
@@ -127,7 +132,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
}
@override
Future<(bool, List<Anime>)> getUpcomingAnimes(int page, User loggedUser) async {
Future<(bool, List<Anime>)> getUpcomingAnimes(int page, User loggedUser, {bool ignoreCache = false}) async {
DateTime now = DateTime.now();
ApiGraphQLResponse<MediaCollectionUpcomingGraphqlEntity> upcoming = await _anilistGraphQLService.query(
query: anilist_queries.mediaUpcomingQuery,
@@ -140,6 +145,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
"${now.year.toString().padLeft(4, '0')}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}",
"type": "ANIME",
},
ignoreCache: ignoreCache
);
throwIfGraphQlError(upcoming);
List<Anime> upcomingAnimes =
@@ -204,8 +210,8 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
}
@override
Future<List<String>> getMediaCoverImages(User loggedUser) async {
(bool, List<Anime>) popularAnimes = await getPopularAnimes(1, loggedUser);
Future<List<String>> getMediaCoverImages(User loggedUser, {bool ignoreCache = false}) async {
(bool, List<Anime>) popularAnimes = await getPopularAnimes(1, loggedUser, ignoreCache: ignoreCache);
return popularAnimes.$2
.map((anime) => anime.coverImage)
.where((coverImage) => coverImage != "")
@@ -230,8 +236,19 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
headers: graphQlHeaders,
);
throwIfGraphQlError(animeDetailsData);
ApiGraphQLResponse<MediaDetailsMediaListEntryEntity> mediaDetailsMediaListEntry =
await _anilistGraphQLService.query<MediaDetailsMediaListEntryEntity>(
query: anilist_queries.mediaListEntryQuery,
fromJson: MediaDetailsMediaListEntryEntity.fromJson,
variables: {
"mediaId": selectedAnime.id,
},
headers: graphQlHeaders,
);
throwIfGraphQlError(mediaDetailsMediaListEntry);
AnimeDetails animeDetails = AnilistAnimeDetailsModel.fromAnimeDetailsMediaList(
animeDetailsData.data.media,
mediaDetailsMediaListEntry.data,
);
return (true, animeDetails);
}
@@ -243,7 +260,7 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
'genres': (
true,
TextUtils.upperCaseFirstCharacter(
AnlistGenreFilters.values
AnilistGenreFilters.values
.map((enumElement) {
// Special handling for sci_fi to display as "Sci-fi"
if (enumElement.name == 'sci_fi') {
@@ -409,9 +426,27 @@ class AnimeRepositoryAnilist with RepositoryMixin implements AnimeRepository {
throwIfGraphQlError(saveMediaListEntry);
return MediaListEntryModel.fromSaveMediaListEntryEntity(saveMediaListEntry.data.saveMediaListEntry);
}
@override
Future<MediaListEntry> getMediaListEntry(Anime selectedAnime, User loggedUser, {bool ignoreCache = false}) async {
Map<String, String>? graphQlHeaders =
loggedUser is AnilistUserModel ? {"Authorization": "Bearer ${(loggedUser).accessToken}"} : null;
ApiGraphQLResponse<MediaDetailsMediaListEntryEntity> mediaDetailsMediaListEntry =
await _anilistGraphQLService.query<MediaDetailsMediaListEntryEntity>(
query: anilist_queries.mediaListEntryQuery,
fromJson: MediaDetailsMediaListEntryEntity.fromJson,
variables: {
"mediaId": selectedAnime.id,
},
headers: graphQlHeaders,
ignoreCache: ignoreCache,
);
throwIfGraphQlError(mediaDetailsMediaListEntry);
return MediaListEntryModel.fromMediaDetailsMediaListEntryEntity(mediaDetailsMediaListEntry.data);
}
}
enum AnlistGenreFilters {
enum AnilistGenreFilters {
action,
adventure,
comedy,

View File

@@ -11,6 +11,7 @@ import 'package:unyo/core/services/api/dto/anilist/media_collection_recently_com
import 'package:unyo/core/services/api/dto/anilist/media_collection_trendingOrPopular_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_collection_upcoming_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_graphql_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
import 'package:unyo/core/services/api/graphql/graphql_response.dart';
import 'package:unyo/core/services/api/graphql/graphql_service.dart';
import 'package:unyo/data/models/anilist_manga_details.dart';
@@ -32,7 +33,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
final Logger _logger = sl<Logger>();
@override
Future<(bool, List<Manga>)> getPopularMangas(int page, User loggedUser) async {
Future<(bool, List<Manga>)> getPopularMangas(int page, User loggedUser, {bool ignoreCache = false}) async {
ApiGraphQLResponse<MediaCollectionTrendingOrPopularGraphqlEntity>
popularMediaCollection = await _anilistGraphQLService.query(
query: anilist_queries.mediaTrendingOrPopularQuery,
@@ -43,6 +44,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
"perPage": 30,
"type": "MANGA",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(popularMediaCollection);
List<Manga> popularMangas =
@@ -56,7 +58,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
}
@override
Future<(bool, List<Manga>)> getRecentlyCompletedMangas(int page, User loggedUser) async {
Future<(bool, List<Manga>)> getRecentlyCompletedMangas(int page, User loggedUser, {bool ignoreCache = false}) async {
DateTime now = DateTime.now();
DateTime monthAgo = now.subtract(const Duration(days: 30));
ApiGraphQLResponse<MediaCollectionRecentlyCompletedGraphqlEntity>
@@ -71,6 +73,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
"endDateLesser": "${now.year.toString().padLeft(4, '0')}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}",
"type" : "MANGA",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(recentlyCompleted);
List<Manga> recentlyCompletedMangas =
@@ -81,7 +84,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
}
@override
Future<(bool, List<Manga>)> getTrendingMangas(int page, User loggedUser) async {
Future<(bool, List<Manga>)> getTrendingMangas(int page, User loggedUser, {bool ignoreCache = false}) async {
ApiGraphQLResponse<MediaCollectionTrendingOrPopularGraphqlEntity>
trendingMediaCollection = await _anilistGraphQLService.query(
query: anilist_queries.mediaTrendingOrPopularQuery,
@@ -92,6 +95,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
"perPage": 30,
"type": "MANGA",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(trendingMediaCollection);
List<Manga> trendingMangas =
@@ -105,7 +109,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
}
@override
Future<(bool, List<Manga>)> getUpcomingMangas(int page, User loggedUser) async {
Future<(bool, List<Manga>)> getUpcomingMangas(int page, User loggedUser, {bool ignoreCache = false}) async {
DateTime now = DateTime.now();
ApiGraphQLResponse<MediaCollectionUpcomingGraphqlEntity>
upcoming = await _anilistGraphQLService.query(
@@ -118,6 +122,7 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
"startDateGreater": "${now.year.toString().padLeft(4, '0')}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}",
"type" : "MANGA",
},
ignoreCache: ignoreCache,
);
throwIfGraphQlError(upcoming);
List<Manga> upcomingMangas =
@@ -285,7 +290,20 @@ class MangaRepositoryAnilist with RepositoryMixin implements MangaRepository {
headers: graphQlHeaders,
);
throwIfGraphQlError(mangaDetailsData);
MangaDetails mangaDetails = AnilistMangaDetailsModel.fromMangaDetailsMediaList(mangaDetailsData.data.media);
ApiGraphQLResponse<MediaDetailsMediaListEntryEntity> mediaDetailsMediaListEntry =
await _anilistGraphQLService.query<MediaDetailsMediaListEntryEntity>(
query: anilist_queries.mediaListEntryQuery,
fromJson: MediaDetailsMediaListEntryEntity.fromJson,
variables: {
"mediaId": selectedManga.id,
},
headers: graphQlHeaders,
);
throwIfGraphQlError(mediaDetailsMediaListEntry);
MangaDetails mangaDetails = AnilistMangaDetailsModel.fromMangaDetailsMediaList(
mangaDetailsData.data.media,
mediaDetailsMediaListEntry.data,
);
return (true, mangaDetails);
}
}

View File

@@ -85,7 +85,7 @@ class UserRepositoryAnilist with RepositoryMixin implements UserRepository {
}
@override
Future<List<Anime>> getUserWatchingList(User user) async {
Future<List<Anime>> getUserWatchingList(User user, {bool ignoreCache = false}) async {
Map<String, String> graphQlHeaders = {
"Authorization": "Bearer ${(user as AnilistUserModel).accessToken}",
};
@@ -95,6 +95,7 @@ class UserRepositoryAnilist with RepositoryMixin implements UserRepository {
fromJson: MediaCollectionGraphqlDtoData.fromJson,
variables: {"userName": user.name, "userId": user.id, "type": "ANIME"},
headers: graphQlHeaders,
ignoreCache: ignoreCache
);
throwIfGraphQlError(mediaCollection);
List<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia> mediaEntries =
@@ -108,7 +109,7 @@ class UserRepositoryAnilist with RepositoryMixin implements UserRepository {
}
@override
Future<List<Manga>> getUserReadingList(User user) async {
Future<List<Manga>> getUserReadingList(User user, {bool ignoreCache = false}) async {
Map<String, String> graphQlHeaders = {
"Authorization": "Bearer ${(user as AnilistUserModel).accessToken}",
};
@@ -118,6 +119,7 @@ class UserRepositoryAnilist with RepositoryMixin implements UserRepository {
fromJson: MediaCollectionGraphqlDtoData.fromJson,
variables: {"userName": user.name, "userId": user.id, "type": "MANGA"},
headers: graphQlHeaders,
ignoreCache: ignoreCache
);
throwIfGraphQlError(mediaCollection);
List<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia> mediaEntries =

View File

@@ -1,5 +1,6 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hive_ce/hive.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
import 'package:unyo/core/services/api/dto/anilist/save_media_list_entry_entity.dart';
import 'package:unyo/data/adapters/adapters_names.dart' as names;
import 'package:unyo/data/adapters/adapters_types.dart' as types;
@@ -73,6 +74,26 @@ abstract class MediaListEntryModel with _$MediaListEntryModel implements MediaLi
],
);
factory MediaListEntryModel.fromMediaDetailsMediaListEntryEntity(
MediaDetailsMediaListEntryEntity mediaDetailsMediaListEntry,
) => MediaListEntryModel(
progress: mediaDetailsMediaListEntry.media.mediaListEntry.progress,
progressVolumes: mediaDetailsMediaListEntry.media.mediaListEntry.progressVolumes,
score: mediaDetailsMediaListEntry.media.mediaListEntry.score,
repeat: mediaDetailsMediaListEntry.media.mediaListEntry.repeat,
status: mediaDetailsMediaListEntry.media.mediaListEntry.status.toUpperCase().replaceAll("_", " "),
startedAt: [
"${mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.day != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.day : "~"}",
"${mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.month != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.month : "~"}",
"${mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.year != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.startedAt.year : "~"}",
],
completedAt: [
"${mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.day != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.day : "~"}",
"${mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.month != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.month : "~"}",
"${mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.year != 0 ? mediaDetailsMediaListEntry.media.mediaListEntry.completedAt.year : "~"}",
],
);
factory MediaListEntryModel.fromJson(Map<String, dynamic> json) => _$MediaListEntryModelFromJson(json);
@override

View File

@@ -25,4 +25,5 @@ abstract class AnimeRepository {
);
Future<List<String>> getMediaCoverImages(User loggedUser);
Future<MediaListEntry> updateMediaListEntry(MediaListEntry newMediaListEntry, Anime selectedAnime, User loggedUser);
Future<MediaListEntry> getMediaListEntry(Anime selectedAnime, User loggedUser);
}

View File

@@ -7,8 +7,11 @@ AniskipTimesEntity $AniskipTimesEntityFromJson(Map<String, dynamic> json) {
if (found != null) {
aniskipTimesEntity.found = found;
}
final List<AniskipTimesResults>? results = (json['results'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<AniskipTimesResults>(e) as AniskipTimesResults).toList();
final List<AniskipTimesResults>? results = (json['results'] as List<dynamic>?)
?.map(
(e) =>
jsonConvert.convert<AniskipTimesResults>(e) as AniskipTimesResults)
.toList();
if (results != null) {
aniskipTimesEntity.results = results;
}
@@ -49,8 +52,8 @@ extension AniskipTimesEntityExtension on AniskipTimesEntity {
AniskipTimesResults $AniskipTimesResultsFromJson(Map<String, dynamic> json) {
final AniskipTimesResults aniskipTimesResults = AniskipTimesResults();
final AniskipTimesResultsInterval? interval = jsonConvert.convert<AniskipTimesResultsInterval>(
json['interval']);
final AniskipTimesResultsInterval? interval = jsonConvert.convert<
AniskipTimesResultsInterval>(json['interval']);
if (interval != null) {
aniskipTimesResults.interval = interval;
}
@@ -62,7 +65,8 @@ AniskipTimesResults $AniskipTimesResultsFromJson(Map<String, dynamic> json) {
if (skipId != null) {
aniskipTimesResults.skipId = skipId;
}
final double? episodeLength = jsonConvert.convert<double>(json['episodeLength']);
final double? episodeLength = jsonConvert.convert<double>(
json['episodeLength']);
if (episodeLength != null) {
aniskipTimesResults.episodeLength = episodeLength;
}
@@ -93,7 +97,8 @@ extension AniskipTimesResultsExtension on AniskipTimesResults {
}
}
AniskipTimesResultsInterval $AniskipTimesResultsIntervalFromJson(Map<String, dynamic> json) {
AniskipTimesResultsInterval $AniskipTimesResultsIntervalFromJson(
Map<String, dynamic> json) {
final AniskipTimesResultsInterval aniskipTimesResultsInterval = AniskipTimesResultsInterval();
final double? startTime = jsonConvert.convert<double>(json['startTime']);
if (startTime != null) {
@@ -106,7 +111,8 @@ AniskipTimesResultsInterval $AniskipTimesResultsIntervalFromJson(Map<String, dyn
return aniskipTimesResultsInterval;
}
Map<String, dynamic> $AniskipTimesResultsIntervalToJson(AniskipTimesResultsInterval entity) {
Map<String, dynamic> $AniskipTimesResultsIntervalToJson(
AniskipTimesResultsInterval entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['startTime'] = entity.startTime;
data['endTime'] = entity.endTime;

View File

@@ -1,7 +1,8 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/extensions/aniyomi_repo_json_entity.dart';
AniyomiRepoJsonEntity $AniyomiRepoJsonEntityFromJson(Map<String, dynamic> json) {
AniyomiRepoJsonEntity $AniyomiRepoJsonEntityFromJson(
Map<String, dynamic> json) {
final AniyomiRepoJsonEntity aniyomiRepoJsonEntity = AniyomiRepoJsonEntity();
final String? name = jsonConvert.convert<String>(json['name']);
if (name != null) {
@@ -31,15 +32,20 @@ AniyomiRepoJsonEntity $AniyomiRepoJsonEntityFromJson(Map<String, dynamic> json)
if (nsfw != null) {
aniyomiRepoJsonEntity.nsfw = nsfw;
}
final List<AniyomiRepoJsonSources>? sources = (json['sources'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<AniyomiRepoJsonSources>(e) as AniyomiRepoJsonSources).toList();
final List<AniyomiRepoJsonSources>? sources = (json['sources'] as List<
dynamic>?)
?.map(
(e) =>
jsonConvert.convert<AniyomiRepoJsonSources>(e) as AniyomiRepoJsonSources)
.toList();
if (sources != null) {
aniyomiRepoJsonEntity.sources = sources;
}
return aniyomiRepoJsonEntity;
}
Map<String, dynamic> $AniyomiRepoJsonEntityToJson(AniyomiRepoJsonEntity entity) {
Map<String, dynamic> $AniyomiRepoJsonEntityToJson(
AniyomiRepoJsonEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['name'] = entity.name;
data['pkg'] = entity.pkg;
@@ -75,7 +81,8 @@ extension AniyomiRepoJsonEntityExtension on AniyomiRepoJsonEntity {
}
}
AniyomiRepoJsonSources $AniyomiRepoJsonSourcesFromJson(Map<String, dynamic> json) {
AniyomiRepoJsonSources $AniyomiRepoJsonSourcesFromJson(
Map<String, dynamic> json) {
final AniyomiRepoJsonSources aniyomiRepoJsonSources = AniyomiRepoJsonSources();
final String? name = jsonConvert.convert<String>(json['name']);
if (name != null) {
@@ -96,7 +103,8 @@ AniyomiRepoJsonSources $AniyomiRepoJsonSourcesFromJson(Map<String, dynamic> json
return aniyomiRepoJsonSources;
}
Map<String, dynamic> $AniyomiRepoJsonSourcesToJson(AniyomiRepoJsonSources entity) {
Map<String, dynamic> $AniyomiRepoJsonSourcesToJson(
AniyomiRepoJsonSources entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['name'] = entity.name;
data['lang'] = entity.lang;

View File

@@ -1,7 +1,8 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/anizip/anizip_episode_info_entity.dart';
AnizipEpisodeInfoEntity $AnizipEpisodeInfoEntityFromJson(Map<String, dynamic> json) {
AnizipEpisodeInfoEntity $AnizipEpisodeInfoEntityFromJson(
Map<String, dynamic> json) {
final AnizipEpisodeInfoEntity anizipEpisodeInfoEntity = AnizipEpisodeInfoEntity();
final int? tvdbShowId = jsonConvert.convert<int>(json['tvdbShowId']);
if (tvdbShowId != null) {
@@ -19,11 +20,13 @@ AnizipEpisodeInfoEntity $AnizipEpisodeInfoEntityFromJson(Map<String, dynamic> js
if (episodeNumber != null) {
anizipEpisodeInfoEntity.episodeNumber = episodeNumber;
}
final int? absoluteEpisodeNumber = jsonConvert.convert<int>(json['absoluteEpisodeNumber']);
final int? absoluteEpisodeNumber = jsonConvert.convert<int>(
json['absoluteEpisodeNumber']);
if (absoluteEpisodeNumber != null) {
anizipEpisodeInfoEntity.absoluteEpisodeNumber = absoluteEpisodeNumber;
}
final AnizipEpisodeInfoTitle? title = jsonConvert.convert<AnizipEpisodeInfoTitle>(json['title']);
final AnizipEpisodeInfoTitle? title = jsonConvert.convert<
AnizipEpisodeInfoTitle>(json['title']);
if (title != null) {
anizipEpisodeInfoEntity.title = title;
}
@@ -74,7 +77,8 @@ AnizipEpisodeInfoEntity $AnizipEpisodeInfoEntityFromJson(Map<String, dynamic> js
return anizipEpisodeInfoEntity;
}
Map<String, dynamic> $AnizipEpisodeInfoEntityToJson(AnizipEpisodeInfoEntity entity) {
Map<String, dynamic> $AnizipEpisodeInfoEntityToJson(
AnizipEpisodeInfoEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['tvdbShowId'] = entity.tvdbShowId;
data['tvdbId'] = entity.tvdbId;
@@ -121,7 +125,8 @@ extension AnizipEpisodeInfoEntityExtension on AnizipEpisodeInfoEntity {
..tvdbId = tvdbId ?? this.tvdbId
..seasonNumber = seasonNumber ?? this.seasonNumber
..episodeNumber = episodeNumber ?? this.episodeNumber
..absoluteEpisodeNumber = absoluteEpisodeNumber ?? this.absoluteEpisodeNumber
..absoluteEpisodeNumber = absoluteEpisodeNumber ??
this.absoluteEpisodeNumber
..title = title ?? this.title
..airDate = airDate ?? this.airDate
..airDateUtc = airDateUtc ?? this.airDateUtc
@@ -137,7 +142,8 @@ extension AnizipEpisodeInfoEntityExtension on AnizipEpisodeInfoEntity {
}
}
AnizipEpisodeInfoTitle $AnizipEpisodeInfoTitleFromJson(Map<String, dynamic> json) {
AnizipEpisodeInfoTitle $AnizipEpisodeInfoTitleFromJson(
Map<String, dynamic> json) {
final AnizipEpisodeInfoTitle anizipEpisodeInfoTitle = AnizipEpisodeInfoTitle();
final String? ja = jsonConvert.convert<String>(json['ja']);
if (ja != null) {
@@ -158,7 +164,8 @@ AnizipEpisodeInfoTitle $AnizipEpisodeInfoTitleFromJson(Map<String, dynamic> json
return anizipEpisodeInfoTitle;
}
Map<String, dynamic> $AnizipEpisodeInfoTitleToJson(AnizipEpisodeInfoTitle entity) {
Map<String, dynamic> $AnizipEpisodeInfoTitleToJson(
AnizipEpisodeInfoTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['ja'] = entity.ja;
data['en'] = entity.en;

File diff suppressed because it is too large Load Diff

View File

@@ -4,8 +4,8 @@ import 'package:unyo/core/services/api/dto/anilist/media_advanced_search_query_g
MediaAdvancedSearchQueryGraphqlEntity $MediaAdvancedSearchQueryGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaAdvancedSearchQueryGraphqlEntity mediaAdvancedSearchQueryGraphqlEntity = MediaAdvancedSearchQueryGraphqlEntity();
final MediaAdvancedSearchQueryGraphqlPage? page = jsonConvert.convert<MediaAdvancedSearchQueryGraphqlPage>(
json['Page']);
final MediaAdvancedSearchQueryGraphqlPage? page = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPage>(json['Page']);
if (page != null) {
mediaAdvancedSearchQueryGraphqlEntity.page = page;
}
@@ -28,9 +28,12 @@ extension MediaAdvancedSearchQueryGraphqlEntityExtension on MediaAdvancedSearchQ
}
}
MediaAdvancedSearchQueryGraphqlPage $MediaAdvancedSearchQueryGraphqlPageFromJson(Map<String, dynamic> json) {
MediaAdvancedSearchQueryGraphqlPage $MediaAdvancedSearchQueryGraphqlPageFromJson(
Map<String, dynamic> json) {
final MediaAdvancedSearchQueryGraphqlPage mediaAdvancedSearchQueryGraphqlPage = MediaAdvancedSearchQueryGraphqlPage();
final List<MediaAdvancedSearchQueryGraphqlPageMedia>? media = (json['media'] as List<dynamic>?)?.map(
final List<
MediaAdvancedSearchQueryGraphqlPageMedia>? media = (json['media'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaAdvancedSearchQueryGraphqlPageMedia>(
e) as MediaAdvancedSearchQueryGraphqlPageMedia).toList();
@@ -40,7 +43,8 @@ MediaAdvancedSearchQueryGraphqlPage $MediaAdvancedSearchQueryGraphqlPageFromJson
return mediaAdvancedSearchQueryGraphqlPage;
}
Map<String, dynamic> $MediaAdvancedSearchQueryGraphqlPageToJson(MediaAdvancedSearchQueryGraphqlPage entity) {
Map<String, dynamic> $MediaAdvancedSearchQueryGraphqlPageToJson(
MediaAdvancedSearchQueryGraphqlPage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['media'] = entity.media.map((v) => v.toJson()).toList();
return data;
@@ -66,8 +70,8 @@ MediaAdvancedSearchQueryGraphqlPageMedia $MediaAdvancedSearchQueryGraphqlPageMed
if (idMal != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.idMal = idMal;
}
final MediaAdvancedSearchQueryGraphqlPageMediaTitle? title = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPageMediaTitle>(json['title']);
final MediaAdvancedSearchQueryGraphqlPageMediaTitle? title = jsonConvert
.convert<MediaAdvancedSearchQueryGraphqlPageMediaTitle>(json['title']);
if (title != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.title = title;
}
@@ -83,12 +87,14 @@ MediaAdvancedSearchQueryGraphqlPageMedia $MediaAdvancedSearchQueryGraphqlPageMed
if (chapters != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.chapters = chapters;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.countryOfOrigin = countryOfOrigin;
}
final MediaAdvancedSearchQueryGraphqlPageMediaCoverImage? coverImage = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPageMediaCoverImage>(json['coverImage']);
final MediaAdvancedSearchQueryGraphqlPageMediaCoverImage? coverImage = jsonConvert
.convert<MediaAdvancedSearchQueryGraphqlPageMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.coverImage = coverImage;
}
@@ -100,13 +106,15 @@ MediaAdvancedSearchQueryGraphqlPageMedia $MediaAdvancedSearchQueryGraphqlPageMed
if (duration != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.duration = duration;
}
final MediaAdvancedSearchQueryGraphqlPageMediaEndDate? endDate = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPageMediaEndDate>(json['endDate']);
final MediaAdvancedSearchQueryGraphqlPageMediaEndDate? endDate = jsonConvert
.convert<MediaAdvancedSearchQueryGraphqlPageMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.endDate = endDate;
}
final MediaAdvancedSearchQueryGraphqlPageMediaStartDate? startDate = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPageMediaStartDate>(json['startDate']);
final MediaAdvancedSearchQueryGraphqlPageMediaStartDate? startDate = jsonConvert
.convert<MediaAdvancedSearchQueryGraphqlPageMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.startDate = startDate;
}
@@ -143,10 +151,12 @@ MediaAdvancedSearchQueryGraphqlPageMedia $MediaAdvancedSearchQueryGraphqlPageMed
if (isFavourite != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.isFavourite = isFavourite;
}
final MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode? nextAiringEpisode = jsonConvert.convert<
MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode>(json['nextAiringEpisode']);
final MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode? nextAiringEpisode = jsonConvert
.convert<MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode>(
json['nextAiringEpisode']);
if (nextAiringEpisode != null) {
mediaAdvancedSearchQueryGraphqlPageMedia.nextAiringEpisode = nextAiringEpisode;
mediaAdvancedSearchQueryGraphqlPageMedia.nextAiringEpisode =
nextAiringEpisode;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
@@ -249,7 +259,8 @@ MediaAdvancedSearchQueryGraphqlPageMediaTitle $MediaAdvancedSearchQueryGraphqlPa
if (romaji != null) {
mediaAdvancedSearchQueryGraphqlPageMediaTitle.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaAdvancedSearchQueryGraphqlPageMediaTitle.userPreferred = userPreferred;
}
@@ -396,12 +407,14 @@ MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode $MediaAdvancedSearchQu
}
final int? airingAt = jsonConvert.convert<int>(json['airingAt']);
if (airingAt != null) {
mediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode.airingAt = airingAt;
mediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode.airingAt =
airingAt;
}
return mediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode;
}
Map<String, dynamic> $MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisodeToJson(
Map<String,
dynamic> $MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisodeToJson(
MediaAdvancedSearchQueryGraphqlPageMediaNextAiringEpisode entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['episode'] = entity.episode;

View File

@@ -1,17 +1,19 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/anilist/media_collection_graphql_entity.dart';
MediaCollectionGraphqlEntity $MediaCollectionGraphqlEntityFromJson(Map<String, dynamic> json) {
MediaCollectionGraphqlEntity $MediaCollectionGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaCollectionGraphqlEntity mediaCollectionGraphqlEntity = MediaCollectionGraphqlEntity();
final MediaCollectionGraphqlDtoData? data = jsonConvert.convert<MediaCollectionGraphqlDtoData>(
json['data']);
final MediaCollectionGraphqlDtoData? data = jsonConvert.convert<
MediaCollectionGraphqlDtoData>(json['data']);
if (data != null) {
mediaCollectionGraphqlEntity.data = data;
}
return mediaCollectionGraphqlEntity;
}
Map<String, dynamic> $MediaCollectionGraphqlEntityToJson(MediaCollectionGraphqlEntity entity) {
Map<String, dynamic> $MediaCollectionGraphqlEntityToJson(
MediaCollectionGraphqlEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['data'] = entity.data.toJson();
return data;
@@ -26,17 +28,20 @@ extension MediaCollectionGraphqlEntityExtension on MediaCollectionGraphqlEntity
}
}
MediaCollectionGraphqlDtoData $MediaCollectionGraphqlDtoDataFromJson(Map<String, dynamic> json) {
MediaCollectionGraphqlDtoData $MediaCollectionGraphqlDtoDataFromJson(
Map<String, dynamic> json) {
final MediaCollectionGraphqlDtoData mediaCollectionGraphqlDtoData = MediaCollectionGraphqlDtoData();
final MediaCollectionGraphqlDtoDataMediaListCollection? mediaListCollection = jsonConvert.convert<
MediaCollectionGraphqlDtoDataMediaListCollection>(json['MediaListCollection']);
final MediaCollectionGraphqlDtoDataMediaListCollection? mediaListCollection = jsonConvert
.convert<MediaCollectionGraphqlDtoDataMediaListCollection>(
json['MediaListCollection']);
if (mediaListCollection != null) {
mediaCollectionGraphqlDtoData.mediaListCollection = mediaListCollection;
}
return mediaCollectionGraphqlDtoData;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataToJson(MediaCollectionGraphqlDtoData entity) {
Map<String, dynamic> $MediaCollectionGraphqlDtoDataToJson(
MediaCollectionGraphqlDtoData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['MediaListCollection'] = entity.mediaListCollection.toJson();
return data;
@@ -54,18 +59,20 @@ extension MediaCollectionGraphqlDtoDataExtension on MediaCollectionGraphqlDtoDat
MediaCollectionGraphqlDtoDataMediaListCollection $MediaCollectionGraphqlDtoDataMediaListCollectionFromJson(
Map<String, dynamic> json) {
final MediaCollectionGraphqlDtoDataMediaListCollection mediaCollectionGraphqlDtoDataMediaListCollection = MediaCollectionGraphqlDtoDataMediaListCollection();
final List<MediaCollectionGraphqlDtoDataMediaListCollectionLists>? lists = (json['lists'] as List<dynamic>?)
?.map(
final List<
MediaCollectionGraphqlDtoDataMediaListCollectionLists>? lists = (json['lists'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaCollectionGraphqlDtoDataMediaListCollectionLists>(
e) as MediaCollectionGraphqlDtoDataMediaListCollectionLists)
.toList();
jsonConvert.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionLists>(
e) as MediaCollectionGraphqlDtoDataMediaListCollectionLists).toList();
if (lists != null) {
mediaCollectionGraphqlDtoDataMediaListCollection.lists = lists;
}
final bool? hasNextChunk = jsonConvert.convert<bool>(json['hasNextChunk']);
if (hasNextChunk != null) {
mediaCollectionGraphqlDtoDataMediaListCollection.hasNextChunk = hasNextChunk;
mediaCollectionGraphqlDtoDataMediaListCollection.hasNextChunk =
hasNextChunk;
}
return mediaCollectionGraphqlDtoDataMediaListCollection;
}
@@ -94,10 +101,13 @@ MediaCollectionGraphqlDtoDataMediaListCollectionLists $MediaCollectionGraphqlDto
final MediaCollectionGraphqlDtoDataMediaListCollectionLists mediaCollectionGraphqlDtoDataMediaListCollectionLists = MediaCollectionGraphqlDtoDataMediaListCollectionLists();
final List<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries>? entries = (json['entries'] as List<
dynamic>?)?.map(
dynamic>?)
?.map(
(e) =>
jsonConvert.convert<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries>(
e) as MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries).toList();
jsonConvert.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries>(
e) as MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries)
.toList();
if (entries != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionLists.entries = entries;
}
@@ -107,12 +117,14 @@ MediaCollectionGraphqlDtoDataMediaListCollectionLists $MediaCollectionGraphqlDto
}
final bool? isCustomList = jsonConvert.convert<bool>(json['isCustomList']);
if (isCustomList != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionLists.isCustomList = isCustomList;
mediaCollectionGraphqlDtoDataMediaListCollectionLists.isCustomList =
isCustomList;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionLists;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionLists entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['entries'] = entity.entries.map((v) => v.toJson()).toList();
@@ -137,15 +149,18 @@ extension MediaCollectionGraphqlDtoDataMediaListCollectionListsExtension on Medi
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesFromJson(
Map<String, dynamic> json) {
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries mediaCollectionGraphqlDtoDataMediaListCollectionListsEntries = MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries();
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia? media = jsonConvert.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia>(json['media']);
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia? media = jsonConvert
.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia>(
json['media']);
if (media != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntries.media = media;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntries;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntries entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['media'] = entity.media.toJson();
@@ -170,98 +185,128 @@ MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia $MediaCollecti
}
final int? idMal = jsonConvert.convert<int>(json['idMal']);
if (idMal != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.idMal = idMal;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.idMal =
idMal;
}
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle? title = jsonConvert.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle>(json['title']);
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle? title = jsonConvert
.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle>(
json['title']);
if (title != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.title = title;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.title =
title;
}
final int? averageScore = jsonConvert.convert<int>(json['averageScore']);
if (averageScore != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.averageScore = averageScore;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.averageScore = averageScore;
}
final String? bannerImage = jsonConvert.convert<String>(json['bannerImage']);
if (bannerImage != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.bannerImage = bannerImage;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.bannerImage = bannerImage;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.chapters = chapters;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.chapters =
chapters;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.countryOfOrigin = countryOfOrigin;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.countryOfOrigin = countryOfOrigin;
}
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage? coverImage = jsonConvert
.convert<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage>(
.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.coverImage = coverImage;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.coverImage = coverImage;
}
final String? description = jsonConvert.convert<String>(json['description']);
if (description != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.description = description;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.description = description;
}
final int? duration = jsonConvert.convert<int>(json['duration']);
if (duration != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.duration = duration;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.duration =
duration;
}
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate? endDate = jsonConvert
.convert<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate>(json['endDate']);
.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.endDate = endDate;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.endDate =
endDate;
}
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate? startDate = jsonConvert
.convert<MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate>(json['startDate']);
.convert<
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.startDate = startDate;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.startDate = startDate;
}
final int? episodes = jsonConvert.convert<int>(json['episodes']);
if (episodes != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.episodes = episodes;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.episodes =
episodes;
}
final List<String>? genres = (json['genres'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<String>(e) as String).toList();
if (genres != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.genres = genres;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.genres =
genres;
}
final String? format = jsonConvert.convert<String>(json['format']);
if (format != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.format = format;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.format =
format;
}
final bool? isAdult = jsonConvert.convert<bool>(json['isAdult']);
if (isAdult != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.isAdult = isAdult;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.isAdult =
isAdult;
}
final int? popularity = jsonConvert.convert<int>(json['popularity']);
if (popularity != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.popularity = popularity;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.popularity = popularity;
}
final int? meanScore = jsonConvert.convert<int>(json['meanScore']);
if (meanScore != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.meanScore = meanScore;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.meanScore = meanScore;
}
final String? season = jsonConvert.convert<String>(json['season']);
if (season != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.season = season;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.season =
season;
}
final bool? isFavourite = jsonConvert.convert<bool>(json['isFavourite']);
if (isFavourite != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.isFavourite = isFavourite;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.isFavourite = isFavourite;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.status = status;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.status =
status;
}
final dynamic nextAiringEpisode = json['nextAiringEpisode'];
if (nextAiringEpisode != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia.nextAiringEpisode = nextAiringEpisode;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia
.nextAiringEpisode = nextAiringEpisode;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMedia entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
@@ -345,24 +390,30 @@ MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle $MediaCol
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle = MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle();
final String? english = jsonConvert.convert<String>(json['english']);
if (english != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle.english = english;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle
.english = english;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle.userPreferred = userPreferred;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle
.userPreferred = userPreferred;
}
final String? romaji = jsonConvert.convert<String>(json['romaji']);
if (romaji != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle.romaji = romaji;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle
.romaji = romaji;
}
final String? native = jsonConvert.convert<String>(json['native']);
if (native != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle.native = native;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle
.native = native;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitleToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitleToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;
@@ -373,12 +424,13 @@ Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntri
}
extension MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitleExtension on MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle copyWith({
String? english,
String? userPreferred,
String? romaji,
String? native,
}) {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle copyWith(
{
String? english,
String? userPreferred,
String? romaji,
String? native,
}) {
return MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaTitle()
..english = english ?? this.english
..userPreferred = userPreferred ?? this.userPreferred
@@ -392,12 +444,14 @@ MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage $Med
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage = MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage();
final String? large = jsonConvert.convert<String>(json['large']);
if (large != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage.large = large;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage
.large = large;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImageToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImageToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -405,9 +459,10 @@ Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntri
}
extension MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImageExtension on MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage copyWith({
String? large,
}) {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage copyWith(
{
String? large,
}) {
return MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaCoverImage()
..large = large ?? this.large;
}
@@ -418,20 +473,24 @@ MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate $MediaC
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate = MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate.day = day;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate
.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate.month = month;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate.year = year;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate
.year = year;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDateToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDateToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -441,11 +500,12 @@ Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntri
}
extension MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDateExtension on MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaEndDate()
..day = day ?? this.day
..month = month ?? this.month
@@ -458,20 +518,24 @@ MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate $Medi
final MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate = MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate.day = day;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate
.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate.month = month;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate.year = year;
mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate
.year = year;
}
return mediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate;
}
Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDateToJson(
Map<String,
dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDateToJson(
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -481,11 +545,12 @@ Map<String, dynamic> $MediaCollectionGraphqlDtoDataMediaListCollectionListsEntri
}
extension MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDateExtension on MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaCollectionGraphqlDtoDataMediaListCollectionListsEntriesMediaStartDate()
..day = day ?? this.day
..month = month ?? this.month

View File

@@ -4,8 +4,8 @@ import 'package:unyo/core/services/api/dto/anilist/media_collection_recently_com
MediaCollectionRecentlyCompletedGraphqlEntity $MediaCollectionRecentlyCompletedGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaCollectionRecentlyCompletedGraphqlEntity mediaCollectionRecentlyCompletedGraphqlEntity = MediaCollectionRecentlyCompletedGraphqlEntity();
final MediaCollectionRecentlyCompletedGraphqlDtoPage? page = jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPage>(json['Page']);
final MediaCollectionRecentlyCompletedGraphqlDtoPage? page = jsonConvert
.convert<MediaCollectionRecentlyCompletedGraphqlDtoPage>(json['Page']);
if (page != null) {
mediaCollectionRecentlyCompletedGraphqlEntity.page = page;
}
@@ -31,12 +31,13 @@ extension MediaCollectionRecentlyCompletedGraphqlEntityExtension on MediaCollect
MediaCollectionRecentlyCompletedGraphqlDtoPage $MediaCollectionRecentlyCompletedGraphqlDtoPageFromJson(
Map<String, dynamic> json) {
final MediaCollectionRecentlyCompletedGraphqlDtoPage mediaCollectionRecentlyCompletedGraphqlDtoPage = MediaCollectionRecentlyCompletedGraphqlDtoPage();
final List<MediaCollectionRecentlyCompletedGraphqlDtoPageMedia>? media = (json['media'] as List<dynamic>?)
?.map(
final List<
MediaCollectionRecentlyCompletedGraphqlDtoPageMedia>? media = (json['media'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaCollectionRecentlyCompletedGraphqlDtoPageMedia>(
e) as MediaCollectionRecentlyCompletedGraphqlDtoPageMedia)
.toList();
jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPageMedia>(
e) as MediaCollectionRecentlyCompletedGraphqlDtoPageMedia).toList();
if (media != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPage.media = media;
}
@@ -64,7 +65,8 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMedia $MediaCollectionRecentlyComp
final MediaCollectionRecentlyCompletedGraphqlDtoPageMedia mediaCollectionRecentlyCompletedGraphqlDtoPageMedia = MediaCollectionRecentlyCompletedGraphqlDtoPageMedia();
final dynamic nextAiringEpisode = json['nextAiringEpisode'];
if (nextAiringEpisode != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.nextAiringEpisode = nextAiringEpisode;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.nextAiringEpisode =
nextAiringEpisode;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
@@ -72,7 +74,8 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMedia $MediaCollectionRecentlyComp
}
final bool? isFavourite = jsonConvert.convert<bool>(json['isFavourite']);
if (isFavourite != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.isFavourite = isFavourite;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.isFavourite =
isFavourite;
}
final String? season = jsonConvert.convert<String>(json['season']);
if (season != null) {
@@ -111,13 +114,15 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMedia $MediaCollectionRecentlyComp
if (episodes != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.episodes = episodes;
}
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate? endDate = jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate>(json['endDate']);
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate? endDate = jsonConvert
.convert<MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.endDate = endDate;
}
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate? startDate = jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate>(json['startDate']);
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate? startDate = jsonConvert
.convert<MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.startDate = startDate;
}
@@ -127,16 +132,20 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMedia $MediaCollectionRecentlyComp
}
final String? description = jsonConvert.convert<String>(json['description']);
if (description != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.description = description;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.description =
description;
}
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage>(json['coverImage']);
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert
.convert<MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.coverImage = coverImage;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.countryOfOrigin = countryOfOrigin;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.countryOfOrigin =
countryOfOrigin;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
@@ -144,14 +153,17 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMedia $MediaCollectionRecentlyComp
}
final String? bannerImage = jsonConvert.convert<String>(json['bannerImage']);
if (bannerImage != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.bannerImage = bannerImage;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.bannerImage =
bannerImage;
}
final int? averageScore = jsonConvert.convert<int>(json['averageScore']);
if (averageScore != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.averageScore = averageScore;
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.averageScore =
averageScore;
}
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle? title = jsonConvert.convert<
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle>(json['title']);
final MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle? title = jsonConvert
.convert<MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle>(
json['title']);
if (title != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMedia.title = title;
}
@@ -255,7 +267,8 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate $MediaCollectionRecen
return mediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate;
}
Map<String, dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDateToJson(
Map<String,
dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDateToJson(
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaEndDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -295,7 +308,8 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate $MediaCollectionRec
return mediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate;
}
Map<String, dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDateToJson(
Map<String,
dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDateToJson(
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaStartDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -327,7 +341,8 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage $MediaCollectionRe
return mediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage;
}
Map<String, dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImageToJson(
Map<String,
dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImageToJson(
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -358,14 +373,17 @@ MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle $MediaCollectionRecentl
if (romaji != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle.userPreferred = userPreferred;
mediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle.userPreferred =
userPreferred;
}
return mediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle;
}
Map<String, dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitleToJson(
Map<String,
dynamic> $MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitleToJson(
MediaCollectionRecentlyCompletedGraphqlDtoPageMediaTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;

View File

@@ -4,8 +4,8 @@ import 'package:unyo/core/services/api/dto/anilist/media_collection_recently_rel
MediaCollectionRecentlyReleasedGraphqlEntity $MediaCollectionRecentlyReleasedGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaCollectionRecentlyReleasedGraphqlEntity mediaCollectionRecentlyReleasedGraphqlEntity = MediaCollectionRecentlyReleasedGraphqlEntity();
final MediaCollectionRecentlyReleasedGraphqlDtoPage? page = jsonConvert.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPage>(json['Page']);
final MediaCollectionRecentlyReleasedGraphqlDtoPage? page = jsonConvert
.convert<MediaCollectionRecentlyReleasedGraphqlDtoPage>(json['Page']);
if (page != null) {
mediaCollectionRecentlyReleasedGraphqlEntity.page = page;
}
@@ -33,12 +33,16 @@ MediaCollectionRecentlyReleasedGraphqlDtoPage $MediaCollectionRecentlyReleasedGr
final MediaCollectionRecentlyReleasedGraphqlDtoPage mediaCollectionRecentlyReleasedGraphqlDtoPage = MediaCollectionRecentlyReleasedGraphqlDtoPage();
final List<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules>? airingSchedules = (json['airingSchedules'] as List<
dynamic>?)?.map(
dynamic>?)
?.map(
(e) =>
jsonConvert.convert<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules>(
e) as MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules).toList();
jsonConvert.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules>(
e) as MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules)
.toList();
if (airingSchedules != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPage.airingSchedules = airingSchedules;
mediaCollectionRecentlyReleasedGraphqlDtoPage.airingSchedules =
airingSchedules;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPage;
}
@@ -46,13 +50,15 @@ MediaCollectionRecentlyReleasedGraphqlDtoPage $MediaCollectionRecentlyReleasedGr
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['airingSchedules'] = entity.airingSchedules.map((v) => v.toJson()).toList();
data['airingSchedules'] =
entity.airingSchedules.map((v) => v.toJson()).toList();
return data;
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageExtension on MediaCollectionRecentlyReleasedGraphqlDtoPage {
MediaCollectionRecentlyReleasedGraphqlDtoPage copyWith({
List<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules>? airingSchedules,
List<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules>? airingSchedules,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPage()
..airingSchedules = airingSchedules ?? this.airingSchedules;
@@ -62,15 +68,18 @@ extension MediaCollectionRecentlyReleasedGraphqlDtoPageExtension on MediaCollect
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesFromJson(
Map<String, dynamic> json) {
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules();
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia? media = jsonConvert.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia>(json['media']);
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia? media = jsonConvert
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia>(
json['media']);
if (media != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules.media = media;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedules entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['media'] = entity.media.toJson();
@@ -90,22 +99,27 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia $MediaCollecti
Map<String, dynamic> json) {
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia();
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode? nextAiringEpisode = jsonConvert
.convert<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode>(
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode>(
json['nextAiringEpisode']);
if (nextAiringEpisode != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.nextAiringEpisode = nextAiringEpisode;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.nextAiringEpisode = nextAiringEpisode;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.status = status;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.status =
status;
}
final bool? isFavourite = jsonConvert.convert<bool>(json['isFavourite']);
if (isFavourite != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.isFavourite = isFavourite;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.isFavourite = isFavourite;
}
final String? season = jsonConvert.convert<String>(json['season']);
if (season != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.season = season;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.season =
season;
}
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
@@ -113,82 +127,108 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia $MediaCollecti
}
final int? idMal = jsonConvert.convert<int>(json['idMal']);
if (idMal != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.idMal = idMal;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.idMal =
idMal;
}
final bool? isAdult = jsonConvert.convert<bool>(json['isAdult']);
if (isAdult != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.isAdult = isAdult;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.isAdult =
isAdult;
}
final int? meanScore = jsonConvert.convert<int>(json['meanScore']);
if (meanScore != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.meanScore = meanScore;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.meanScore = meanScore;
}
final int? popularity = jsonConvert.convert<int>(json['popularity']);
if (popularity != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.popularity = popularity;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.popularity = popularity;
}
final List<String>? genres = (json['genres'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<String>(e) as String).toList();
if (genres != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.genres = genres;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.genres =
genres;
}
final String? format = jsonConvert.convert<String>(json['format']);
if (format != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.format = format;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.format =
format;
}
final int? episodes = jsonConvert.convert<int>(json['episodes']);
if (episodes != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.episodes = episodes;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.episodes =
episodes;
}
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate? endDate = jsonConvert
.convert<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate>(json['endDate']);
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.endDate = endDate;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.endDate =
endDate;
}
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate? startDate = jsonConvert
.convert<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate>(json['startDate']);
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.startDate = startDate;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.startDate = startDate;
}
final int? duration = jsonConvert.convert<int>(json['duration']);
if (duration != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.duration = duration;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.duration =
duration;
}
final String? description = jsonConvert.convert<String>(json['description']);
if (description != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.description = description;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.description = description;
}
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage? coverImage = jsonConvert
.convert<MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage>(
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.coverImage = coverImage;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.coverImage = coverImage;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.countryOfOrigin = countryOfOrigin;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.countryOfOrigin = countryOfOrigin;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.chapters = chapters;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.chapters =
chapters;
}
final String? bannerImage = jsonConvert.convert<String>(json['bannerImage']);
if (bannerImage != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.bannerImage = bannerImage;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.bannerImage = bannerImage;
}
final int? averageScore = jsonConvert.convert<int>(json['averageScore']);
if (averageScore != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.averageScore = averageScore;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia
.averageScore = averageScore;
}
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle? title = jsonConvert.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle>(json['title']);
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle? title = jsonConvert
.convert<
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle>(
json['title']);
if (title != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.title = title;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia.title =
title;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMedia entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['nextAiringEpisode'] = entity.nextAiringEpisode.toJson();
@@ -272,11 +312,13 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpiso
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode();
final int? episode = jsonConvert.convert<int>(json['episode']);
if (episode != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode.episode = episode;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode
.episode = episode;
}
final int? airingAt = jsonConvert.convert<int>(json['airingAt']);
if (airingAt != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode.airingAt = airingAt;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode
.airingAt = airingAt;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode;
}
@@ -291,10 +333,11 @@ Map<String,
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisodeExtension on MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode copyWith({
int? episode,
int? airingAt,
}) {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode copyWith(
{
int? episode,
int? airingAt,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaNextAiringEpisode()
..episode = episode ?? this.episode
..airingAt = airingAt ?? this.airingAt;
@@ -306,20 +349,24 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate $MediaC
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate.day = day;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate
.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate.month = month;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate.year = year;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate
.year = year;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDateToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDateToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -329,11 +376,12 @@ Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedul
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDateExtension on MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaEndDate()
..day = day ?? this.day
..month = month ?? this.month
@@ -346,20 +394,24 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate $Medi
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate.day = day;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate
.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate.month = month;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate.year = year;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate
.year = year;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDateToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDateToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -369,11 +421,12 @@ Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedul
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDateExtension on MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaStartDate()
..day = day ?? this.day
..month = month ?? this.month
@@ -386,12 +439,14 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage $Med
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage();
final String? large = jsonConvert.convert<String>(json['large']);
if (large != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage.large = large;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage
.large = large;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImageToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImageToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -399,9 +454,10 @@ Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedul
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImageExtension on MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage copyWith({
String? large,
}) {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage copyWith(
{
String? large,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaCoverImage()
..large = large ?? this.large;
}
@@ -412,24 +468,30 @@ MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle $MediaCol
final MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle = MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle();
final String? english = jsonConvert.convert<String>(json['english']);
if (english != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle.english = english;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle
.english = english;
}
final String? native = jsonConvert.convert<String>(json['native']);
if (native != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle.native = native;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle
.native = native;
}
final String? romaji = jsonConvert.convert<String>(json['romaji']);
if (romaji != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle.romaji = romaji;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle
.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle.userPreferred = userPreferred;
mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle
.userPreferred = userPreferred;
}
return mediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle;
}
Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitleToJson(
Map<String,
dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitleToJson(
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;
@@ -440,12 +502,13 @@ Map<String, dynamic> $MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedul
}
extension MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitleExtension on MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle copyWith({
String? english,
String? native,
String? romaji,
String? userPreferred,
}) {
MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle copyWith(
{
String? english,
String? native,
String? romaji,
String? userPreferred,
}) {
return MediaCollectionRecentlyReleasedGraphqlDtoPageAiringSchedulesMediaTitle()
..english = english ?? this.english
..native = native ?? this.native

View File

@@ -4,8 +4,8 @@ import 'package:unyo/core/services/api/dto/anilist/media_collection_trendingOrPo
MediaCollectionTrendingOrPopularGraphqlEntity $MediaCollectionTrendingOrPopularGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaCollectionTrendingOrPopularGraphqlEntity mediaCollectionTrendingOrPopularGraphqlEntity = MediaCollectionTrendingOrPopularGraphqlEntity();
final MediaCollectionTrendingOrPopularGraphqlDtoPage? page = jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPage>(json['Page']);
final MediaCollectionTrendingOrPopularGraphqlDtoPage? page = jsonConvert
.convert<MediaCollectionTrendingOrPopularGraphqlDtoPage>(json['Page']);
if (page != null) {
mediaCollectionTrendingOrPopularGraphqlEntity.page = page;
}
@@ -31,12 +31,13 @@ extension MediaCollectionTrendingOrPopularGraphqlEntityExtension on MediaCollect
MediaCollectionTrendingOrPopularGraphqlDtoPage $MediaCollectionTrendingOrPopularGraphqlDtoPageFromJson(
Map<String, dynamic> json) {
final MediaCollectionTrendingOrPopularGraphqlDtoPage mediaCollectionTrendingOrPopularGraphqlDtoPage = MediaCollectionTrendingOrPopularGraphqlDtoPage();
final List<MediaCollectionTrendingOrPopularGraphqlDtoPageMedia>? media = (json['media'] as List<dynamic>?)
?.map(
final List<
MediaCollectionTrendingOrPopularGraphqlDtoPageMedia>? media = (json['media'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaCollectionTrendingOrPopularGraphqlDtoPageMedia>(
e) as MediaCollectionTrendingOrPopularGraphqlDtoPageMedia)
.toList();
jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPageMedia>(
e) as MediaCollectionTrendingOrPopularGraphqlDtoPageMedia).toList();
if (media != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPage.media = media;
}
@@ -64,7 +65,8 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMedia $MediaCollectionTrendingOrPo
final MediaCollectionTrendingOrPopularGraphqlDtoPageMedia mediaCollectionTrendingOrPopularGraphqlDtoPageMedia = MediaCollectionTrendingOrPopularGraphqlDtoPageMedia();
final dynamic nextAiringEpisode = json['nextAiringEpisode'];
if (nextAiringEpisode != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.nextAiringEpisode = nextAiringEpisode;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.nextAiringEpisode =
nextAiringEpisode;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
@@ -72,7 +74,8 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMedia $MediaCollectionTrendingOrPo
}
final bool? isFavourite = jsonConvert.convert<bool>(json['isFavourite']);
if (isFavourite != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.isFavourite = isFavourite;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.isFavourite =
isFavourite;
}
final String? season = jsonConvert.convert<String>(json['season']);
if (season != null) {
@@ -111,13 +114,15 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMedia $MediaCollectionTrendingOrPo
if (episodes != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.episodes = episodes;
}
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate? endDate = jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate>(json['endDate']);
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate? endDate = jsonConvert
.convert<MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.endDate = endDate;
}
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate? startDate = jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate>(json['startDate']);
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate? startDate = jsonConvert
.convert<MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.startDate = startDate;
}
@@ -127,16 +132,20 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMedia $MediaCollectionTrendingOrPo
}
final String? description = jsonConvert.convert<String>(json['description']);
if (description != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.description = description;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.description =
description;
}
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage>(json['coverImage']);
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert
.convert<MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.coverImage = coverImage;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.countryOfOrigin = countryOfOrigin;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.countryOfOrigin =
countryOfOrigin;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
@@ -144,14 +153,17 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMedia $MediaCollectionTrendingOrPo
}
final String? bannerImage = jsonConvert.convert<String>(json['bannerImage']);
if (bannerImage != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.bannerImage = bannerImage;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.bannerImage =
bannerImage;
}
final int? averageScore = jsonConvert.convert<int>(json['averageScore']);
if (averageScore != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.averageScore = averageScore;
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.averageScore =
averageScore;
}
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle? title = jsonConvert.convert<
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle>(json['title']);
final MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle? title = jsonConvert
.convert<MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle>(
json['title']);
if (title != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMedia.title = title;
}
@@ -255,7 +267,8 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate $MediaCollectionTrend
return mediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate;
}
Map<String, dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDateToJson(
Map<String,
dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDateToJson(
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaEndDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -295,7 +308,8 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate $MediaCollectionTre
return mediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate;
}
Map<String, dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDateToJson(
Map<String,
dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDateToJson(
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaStartDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -327,7 +341,8 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage $MediaCollectionTr
return mediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage;
}
Map<String, dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImageToJson(
Map<String,
dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImageToJson(
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -358,14 +373,17 @@ MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle $MediaCollectionTrendin
if (romaji != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle.userPreferred = userPreferred;
mediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle.userPreferred =
userPreferred;
}
return mediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle;
}
Map<String, dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitleToJson(
Map<String,
dynamic> $MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitleToJson(
MediaCollectionTrendingOrPopularGraphqlDtoPageMediaTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;

View File

@@ -31,7 +31,9 @@ extension MediaCollectionUpcomingGraphqlEntityExtension on MediaCollectionUpcomi
MediaCollectionUpcomingGraphqlDtoPage $MediaCollectionUpcomingGraphqlDtoPageFromJson(
Map<String, dynamic> json) {
final MediaCollectionUpcomingGraphqlDtoPage mediaCollectionUpcomingGraphqlDtoPage = MediaCollectionUpcomingGraphqlDtoPage();
final List<MediaCollectionUpcomingGraphqlDtoPageMedia>? media = (json['media'] as List<dynamic>?)?.map(
final List<
MediaCollectionUpcomingGraphqlDtoPageMedia>? media = (json['media'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaCollectionUpcomingGraphqlDtoPageMedia>(
e) as MediaCollectionUpcomingGraphqlDtoPageMedia).toList();
@@ -60,10 +62,12 @@ extension MediaCollectionUpcomingGraphqlDtoPageExtension on MediaCollectionUpcom
MediaCollectionUpcomingGraphqlDtoPageMedia $MediaCollectionUpcomingGraphqlDtoPageMediaFromJson(
Map<String, dynamic> json) {
final MediaCollectionUpcomingGraphqlDtoPageMedia mediaCollectionUpcomingGraphqlDtoPageMedia = MediaCollectionUpcomingGraphqlDtoPageMedia();
final MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode? nextAiringEpisode = jsonConvert.convert<
MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode>(json['nextAiringEpisode']);
final MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode? nextAiringEpisode = jsonConvert
.convert<MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode>(
json['nextAiringEpisode']);
if (nextAiringEpisode != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.nextAiringEpisode = nextAiringEpisode;
mediaCollectionUpcomingGraphqlDtoPageMedia.nextAiringEpisode =
nextAiringEpisode;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
@@ -110,13 +114,15 @@ MediaCollectionUpcomingGraphqlDtoPageMedia $MediaCollectionUpcomingGraphqlDtoPag
if (episodes != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.episodes = episodes;
}
final MediaCollectionUpcomingGraphqlDtoPageMediaEndDate? endDate = jsonConvert.convert<
MediaCollectionUpcomingGraphqlDtoPageMediaEndDate>(json['endDate']);
final MediaCollectionUpcomingGraphqlDtoPageMediaEndDate? endDate = jsonConvert
.convert<MediaCollectionUpcomingGraphqlDtoPageMediaEndDate>(
json['endDate']);
if (endDate != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.endDate = endDate;
}
final MediaCollectionUpcomingGraphqlDtoPageMediaStartDate? startDate = jsonConvert.convert<
MediaCollectionUpcomingGraphqlDtoPageMediaStartDate>(json['startDate']);
final MediaCollectionUpcomingGraphqlDtoPageMediaStartDate? startDate = jsonConvert
.convert<MediaCollectionUpcomingGraphqlDtoPageMediaStartDate>(
json['startDate']);
if (startDate != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.startDate = startDate;
}
@@ -128,14 +134,17 @@ MediaCollectionUpcomingGraphqlDtoPageMedia $MediaCollectionUpcomingGraphqlDtoPag
if (description != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.description = description;
}
final MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert.convert<
MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage>(json['coverImage']);
final MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage? coverImage = jsonConvert
.convert<MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.coverImage = coverImage;
}
final String? countryOfOrigin = jsonConvert.convert<String>(json['countryOfOrigin']);
final String? countryOfOrigin = jsonConvert.convert<String>(
json['countryOfOrigin']);
if (countryOfOrigin != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.countryOfOrigin = countryOfOrigin;
mediaCollectionUpcomingGraphqlDtoPageMedia.countryOfOrigin =
countryOfOrigin;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
@@ -149,8 +158,8 @@ MediaCollectionUpcomingGraphqlDtoPageMedia $MediaCollectionUpcomingGraphqlDtoPag
if (averageScore != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.averageScore = averageScore;
}
final MediaCollectionUpcomingGraphqlDtoPageMediaTitle? title = jsonConvert.convert<
MediaCollectionUpcomingGraphqlDtoPageMediaTitle>(json['title']);
final MediaCollectionUpcomingGraphqlDtoPageMediaTitle? title = jsonConvert
.convert<MediaCollectionUpcomingGraphqlDtoPageMediaTitle>(json['title']);
if (title != null) {
mediaCollectionUpcomingGraphqlDtoPageMedia.title = title;
}
@@ -241,16 +250,19 @@ MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode $MediaCollectionUpco
final MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode = MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode();
final int? episode = jsonConvert.convert<int>(json['episode']);
if (episode != null) {
mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode.episode = episode;
mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode.episode =
episode;
}
final int? airingAt = jsonConvert.convert<int>(json['airingAt']);
if (airingAt != null) {
mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode.airingAt = airingAt;
mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode.airingAt =
airingAt;
}
return mediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode;
}
Map<String, dynamic> $MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisodeToJson(
Map<String,
dynamic> $MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisodeToJson(
MediaCollectionUpcomingGraphqlDtoPageMediaNextAiringEpisode entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['episode'] = entity.episode;
@@ -359,7 +371,8 @@ MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage $MediaCollectionUpcomingGra
return mediaCollectionUpcomingGraphqlDtoPageMediaCoverImage;
}
Map<String, dynamic> $MediaCollectionUpcomingGraphqlDtoPageMediaCoverImageToJson(
Map<String,
dynamic> $MediaCollectionUpcomingGraphqlDtoPageMediaCoverImageToJson(
MediaCollectionUpcomingGraphqlDtoPageMediaCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -390,9 +403,11 @@ MediaCollectionUpcomingGraphqlDtoPageMediaTitle $MediaCollectionUpcomingGraphqlD
if (romaji != null) {
mediaCollectionUpcomingGraphqlDtoPageMediaTitle.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaCollectionUpcomingGraphqlDtoPageMediaTitle.userPreferred = userPreferred;
mediaCollectionUpcomingGraphqlDtoPageMediaTitle.userPreferred =
userPreferred;
}
return mediaCollectionUpcomingGraphqlDtoPageMediaTitle;
}

View File

@@ -1,16 +1,19 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_graphql_entity.dart';
MediaDetailsGraphqlEntity $MediaDetailsGraphqlEntityFromJson(Map<String, dynamic> json) {
MediaDetailsGraphqlEntity $MediaDetailsGraphqlEntityFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlEntity mediaDetailsGraphqlEntity = MediaDetailsGraphqlEntity();
final MediaDetailsGraphqlMedia? media = jsonConvert.convert<MediaDetailsGraphqlMedia>(json['Media']);
final MediaDetailsGraphqlMedia? media = jsonConvert.convert<
MediaDetailsGraphqlMedia>(json['Media']);
if (media != null) {
mediaDetailsGraphqlEntity.media = media;
}
return mediaDetailsGraphqlEntity;
}
Map<String, dynamic> $MediaDetailsGraphqlEntityToJson(MediaDetailsGraphqlEntity entity) {
Map<String, dynamic> $MediaDetailsGraphqlEntityToJson(
MediaDetailsGraphqlEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['Media'] = entity.media.toJson();
return data;
@@ -25,19 +28,21 @@ extension MediaDetailsGraphqlEntityExtension on MediaDetailsGraphqlEntity {
}
}
MediaDetailsGraphqlMedia $MediaDetailsGraphqlMediaFromJson(Map<String, dynamic> json) {
MediaDetailsGraphqlMedia $MediaDetailsGraphqlMediaFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMedia mediaDetailsGraphqlMedia = MediaDetailsGraphqlMedia();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
mediaDetailsGraphqlMedia.id = id;
}
final MediaDetailsGraphqlMediaTitle? title = jsonConvert.convert<MediaDetailsGraphqlMediaTitle>(
json['title']);
final MediaDetailsGraphqlMediaTitle? title = jsonConvert.convert<
MediaDetailsGraphqlMediaTitle>(json['title']);
if (title != null) {
mediaDetailsGraphqlMedia.title = title;
}
final MediaDetailsGraphqlMediaRecommendations? recommendations = jsonConvert.convert<
MediaDetailsGraphqlMediaRecommendations>(json['recommendations']);
final MediaDetailsGraphqlMediaRecommendations? recommendations = jsonConvert
.convert<MediaDetailsGraphqlMediaRecommendations>(
json['recommendations']);
if (recommendations != null) {
mediaDetailsGraphqlMedia.recommendations = recommendations;
}
@@ -46,21 +51,16 @@ MediaDetailsGraphqlMedia $MediaDetailsGraphqlMediaFromJson(Map<String, dynamic>
if (characters != null) {
mediaDetailsGraphqlMedia.characters = characters;
}
final MediaDetailsGraphqlMediaMediaListEntry? mediaListEntry = jsonConvert.convert<
MediaDetailsGraphqlMediaMediaListEntry>(json['mediaListEntry']);
if (mediaListEntry != null) {
mediaDetailsGraphqlMedia.mediaListEntry = mediaListEntry;
}
return mediaDetailsGraphqlMedia;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaToJson(MediaDetailsGraphqlMedia entity) {
Map<String, dynamic> $MediaDetailsGraphqlMediaToJson(
MediaDetailsGraphqlMedia entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['title'] = entity.title.toJson();
data['recommendations'] = entity.recommendations.toJson();
data['characters'] = entity.characters.toJson();
data['mediaListEntry'] = entity.mediaListEntry?.toJson();
return data;
}
@@ -70,18 +70,17 @@ extension MediaDetailsGraphqlMediaExtension on MediaDetailsGraphqlMedia {
MediaDetailsGraphqlMediaTitle? title,
MediaDetailsGraphqlMediaRecommendations? recommendations,
MediaDetailsGraphqlMediaCharacters? characters,
MediaDetailsGraphqlMediaMediaListEntry? mediaListEntry,
}) {
return MediaDetailsGraphqlMedia()
..id = id ?? this.id
..title = title ?? this.title
..recommendations = recommendations ?? this.recommendations
..characters = characters ?? this.characters
..mediaListEntry = mediaListEntry ?? this.mediaListEntry;
..characters = characters ?? this.characters;
}
}
MediaDetailsGraphqlMediaTitle $MediaDetailsGraphqlMediaTitleFromJson(Map<String, dynamic> json) {
MediaDetailsGraphqlMediaTitle $MediaDetailsGraphqlMediaTitleFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaTitle mediaDetailsGraphqlMediaTitle = MediaDetailsGraphqlMediaTitle();
final String? english = jsonConvert.convert<String>(json['english']);
if (english != null) {
@@ -95,14 +94,16 @@ MediaDetailsGraphqlMediaTitle $MediaDetailsGraphqlMediaTitleFromJson(Map<String,
if (native != null) {
mediaDetailsGraphqlMediaTitle.native = native;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaDetailsGraphqlMediaTitle.userPreferred = userPreferred;
}
return mediaDetailsGraphqlMediaTitle;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaTitleToJson(MediaDetailsGraphqlMediaTitle entity) {
Map<String, dynamic> $MediaDetailsGraphqlMediaTitleToJson(
MediaDetailsGraphqlMediaTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;
data['romaji'] = entity.romaji;
@@ -129,9 +130,12 @@ extension MediaDetailsGraphqlMediaTitleExtension on MediaDetailsGraphqlMediaTitl
MediaDetailsGraphqlMediaRecommendations $MediaDetailsGraphqlMediaRecommendationsFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaRecommendations mediaDetailsGraphqlMediaRecommendations = MediaDetailsGraphqlMediaRecommendations();
final List<MediaDetailsGraphqlMediaRecommendationsNodes>? nodes = (json['nodes'] as List<dynamic>?)?.map(
final List<
MediaDetailsGraphqlMediaRecommendationsNodes>? nodes = (json['nodes'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaDetailsGraphqlMediaRecommendationsNodes>(
jsonConvert.convert<
MediaDetailsGraphqlMediaRecommendationsNodes>(
e) as MediaDetailsGraphqlMediaRecommendationsNodes).toList();
if (nodes != null) {
mediaDetailsGraphqlMediaRecommendations.nodes = nodes;
@@ -159,9 +163,11 @@ MediaDetailsGraphqlMediaRecommendationsNodes $MediaDetailsGraphqlMediaRecommenda
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaRecommendationsNodes mediaDetailsGraphqlMediaRecommendationsNodes = MediaDetailsGraphqlMediaRecommendationsNodes();
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation? mediaRecommendation = jsonConvert
.convert<MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation>(json['mediaRecommendation']);
.convert<MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation>(
json['mediaRecommendation']);
if (mediaRecommendation != null) {
mediaDetailsGraphqlMediaRecommendationsNodes.mediaRecommendation = mediaRecommendation;
mediaDetailsGraphqlMediaRecommendationsNodes.mediaRecommendation =
mediaRecommendation;
}
return mediaDetailsGraphqlMediaRecommendationsNodes;
}
@@ -191,89 +197,117 @@ MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation $MediaDetailsGra
}
final int? idMal = jsonConvert.convert<int>(json['idMal']);
if (idMal != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.idMal = idMal;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.idMal =
idMal;
}
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate? startDate = jsonConvert
.convert<MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate>(json['startDate']);
.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate>(
json['startDate']);
if (startDate != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.startDate = startDate;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.startDate =
startDate;
}
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate? endDate = jsonConvert.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate>(json['endDate']);
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate? endDate = jsonConvert
.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate>(
json['endDate']);
if (endDate != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.endDate = endDate;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.endDate =
endDate;
}
final String? season = jsonConvert.convert<String>(json['season']);
if (season != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.season = season;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.season =
season;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.status = status;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.status =
status;
}
final bool? isFavourite = jsonConvert.convert<bool>(json['isFavourite']);
if (isFavourite != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.isFavourite = isFavourite;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation
.isFavourite = isFavourite;
}
final bool? isAdult = jsonConvert.convert<bool>(json['isAdult']);
if (isAdult != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.isAdult = isAdult;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.isAdult =
isAdult;
}
final int? episodes = jsonConvert.convert<int>(json['episodes']);
if (episodes != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.episodes = episodes;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.episodes =
episodes;
}
final int? chapters = jsonConvert.convert<int>(json['chapters']);
if (chapters != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.chapters = chapters;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.chapters =
chapters;
}
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle? title = jsonConvert.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle>(json['title']);
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle? title = jsonConvert
.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle>(
json['title']);
if (title != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.title = title;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.title =
title;
}
final String? bannerImage = jsonConvert.convert<String>(json['bannerImage']);
if (bannerImage != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.bannerImage = bannerImage;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation
.bannerImage = bannerImage;
}
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage? coverImage = jsonConvert
.convert<MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage>(json['coverImage']);
.convert<
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage>(
json['coverImage']);
if (coverImage != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.coverImage = coverImage;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.coverImage =
coverImage;
}
final int? averageScore = jsonConvert.convert<int>(json['averageScore']);
if (averageScore != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.averageScore = averageScore;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation
.averageScore = averageScore;
}
final int? duration = jsonConvert.convert<int>(json['duration']);
if (duration != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.duration = duration;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.duration =
duration;
}
final String? format = jsonConvert.convert<String>(json['format']);
if (format != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.format = format;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.format =
format;
}
final List<String>? genres = (json['genres'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<String>(e) as String).toList();
if (genres != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.genres = genres;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.genres =
genres;
}
final String? description = jsonConvert.convert<String>(json['description']);
if (description != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.description = description;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation
.description = description;
}
final int? meanScore = jsonConvert.convert<int>(json['meanScore']);
if (meanScore != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.meanScore = meanScore;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.meanScore =
meanScore;
}
final dynamic nextAiringEpisode = json['nextAiringEpisode'];
if (nextAiringEpisode != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation.nextAiringEpisode = nextAiringEpisode;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation
.nextAiringEpisode = nextAiringEpisode;
}
return mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationToJson(
Map<String,
dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationToJson(
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendation entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
@@ -351,20 +385,24 @@ MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate $MediaD
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate = MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate.day = day;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate
.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate.month = month;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate.year = year;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate
.year = year;
}
return mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDateToJson(
Map<String,
dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDateToJson(
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -374,11 +412,12 @@ Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommend
}
extension MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDateExtension on MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationStartDate()
..day = day ?? this.day
..month = month ?? this.month
@@ -391,20 +430,24 @@ MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate $MediaDet
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate = MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate.day = day;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate.day =
day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate.month = month;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate
.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate.year = year;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate
.year = year;
}
return mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDateToJson(
Map<String,
dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDateToJson(
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
@@ -414,11 +457,12 @@ Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommend
}
extension MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDateExtension on MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate copyWith({
int? day,
int? month,
int? year,
}) {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate copyWith(
{
int? day,
int? month,
int? year,
}) {
return MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationEndDate()
..day = day ?? this.day
..month = month ?? this.month
@@ -431,24 +475,30 @@ MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle $MediaDetai
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle = MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle();
final String? english = jsonConvert.convert<String>(json['english']);
if (english != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle.english = english;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle
.english = english;
}
final String? native = jsonConvert.convert<String>(json['native']);
if (native != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle.native = native;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle
.native = native;
}
final String? romaji = jsonConvert.convert<String>(json['romaji']);
if (romaji != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle.romaji = romaji;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle
.romaji = romaji;
}
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle.userPreferred = userPreferred;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle
.userPreferred = userPreferred;
}
return mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitleToJson(
Map<String,
dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitleToJson(
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['english'] = entity.english;
@@ -459,12 +509,13 @@ Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommend
}
extension MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitleExtension on MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle copyWith({
String? english,
String? native,
String? romaji,
String? userPreferred,
}) {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle copyWith(
{
String? english,
String? native,
String? romaji,
String? userPreferred,
}) {
return MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationTitle()
..english = english ?? this.english
..native = native ?? this.native
@@ -478,12 +529,14 @@ MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage $Media
final MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage = MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage();
final String? large = jsonConvert.convert<String>(json['large']);
if (large != null) {
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage.large = large;
mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage
.large = large;
}
return mediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImageToJson(
Map<String,
dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImageToJson(
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['large'] = entity.large;
@@ -491,17 +544,21 @@ Map<String, dynamic> $MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommend
}
extension MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImageExtension on MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage copyWith({
String? large,
}) {
MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage copyWith(
{
String? large,
}) {
return MediaDetailsGraphqlMediaRecommendationsNodesMediaRecommendationCoverImage()
..large = large ?? this.large;
}
}
MediaDetailsGraphqlMediaCharacters $MediaDetailsGraphqlMediaCharactersFromJson(Map<String, dynamic> json) {
MediaDetailsGraphqlMediaCharacters $MediaDetailsGraphqlMediaCharactersFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaCharacters mediaDetailsGraphqlMediaCharacters = MediaDetailsGraphqlMediaCharacters();
final List<MediaDetailsGraphqlMediaCharactersNodes>? nodes = (json['nodes'] as List<dynamic>?)?.map(
final List<
MediaDetailsGraphqlMediaCharactersNodes>? nodes = (json['nodes'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaDetailsGraphqlMediaCharactersNodes>(
e) as MediaDetailsGraphqlMediaCharactersNodes).toList();
@@ -511,7 +568,8 @@ MediaDetailsGraphqlMediaCharacters $MediaDetailsGraphqlMediaCharactersFromJson(M
return mediaDetailsGraphqlMediaCharacters;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaCharactersToJson(MediaDetailsGraphqlMediaCharacters entity) {
Map<String, dynamic> $MediaDetailsGraphqlMediaCharactersToJson(
MediaDetailsGraphqlMediaCharacters entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['nodes'] = entity.nodes.map((v) => v.toJson()).toList();
return data;
@@ -533,8 +591,8 @@ MediaDetailsGraphqlMediaCharactersNodes $MediaDetailsGraphqlMediaCharactersNodes
if (id != null) {
mediaDetailsGraphqlMediaCharactersNodes.id = id;
}
final MediaDetailsGraphqlMediaCharactersNodesImage? image = jsonConvert.convert<
MediaDetailsGraphqlMediaCharactersNodesImage>(json['image']);
final MediaDetailsGraphqlMediaCharactersNodesImage? image = jsonConvert
.convert<MediaDetailsGraphqlMediaCharactersNodesImage>(json['image']);
if (image != null) {
mediaDetailsGraphqlMediaCharactersNodes.image = image;
}
@@ -551,8 +609,9 @@ MediaDetailsGraphqlMediaCharactersNodes $MediaDetailsGraphqlMediaCharactersNodes
if (description != null) {
mediaDetailsGraphqlMediaCharactersNodes.description = description;
}
final MediaDetailsGraphqlMediaCharactersNodesDateOfBirth? dateOfBirth = jsonConvert.convert<
MediaDetailsGraphqlMediaCharactersNodesDateOfBirth>(json['dateOfBirth']);
final MediaDetailsGraphqlMediaCharactersNodesDateOfBirth? dateOfBirth = jsonConvert
.convert<MediaDetailsGraphqlMediaCharactersNodesDateOfBirth>(
json['dateOfBirth']);
if (dateOfBirth != null) {
mediaDetailsGraphqlMediaCharactersNodes.dateOfBirth = dateOfBirth;
}
@@ -626,7 +685,8 @@ extension MediaDetailsGraphqlMediaCharactersNodesImageExtension on MediaDetailsG
MediaDetailsGraphqlMediaCharactersNodesName $MediaDetailsGraphqlMediaCharactersNodesNameFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaCharactersNodesName mediaDetailsGraphqlMediaCharactersNodesName = MediaDetailsGraphqlMediaCharactersNodesName();
final String? userPreferred = jsonConvert.convert<String>(json['userPreferred']);
final String? userPreferred = jsonConvert.convert<String>(
json['userPreferred']);
if (userPreferred != null) {
mediaDetailsGraphqlMediaCharactersNodesName.userPreferred = userPreferred;
}
@@ -689,167 +749,6 @@ extension MediaDetailsGraphqlMediaCharactersNodesDateOfBirthExtension on MediaDe
}
}
MediaDetailsGraphqlMediaMediaListEntry $MediaDetailsGraphqlMediaMediaListEntryFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaMediaListEntry mediaDetailsGraphqlMediaMediaListEntry = MediaDetailsGraphqlMediaMediaListEntry();
final int? progress = jsonConvert.convert<int>(json['progress']);
if (progress != null) {
mediaDetailsGraphqlMediaMediaListEntry.progress = progress;
}
final int? progressVolumes = jsonConvert.convert<int>(json['progressVolumes']);
if (progressVolumes != null) {
mediaDetailsGraphqlMediaMediaListEntry.progressVolumes = progressVolumes;
}
final double? score = jsonConvert.convert<double>(json['score']);
if (score != null) {
mediaDetailsGraphqlMediaMediaListEntry.score = score;
}
final int? repeat = jsonConvert.convert<int>(json['repeat']);
if (repeat != null) {
mediaDetailsGraphqlMediaMediaListEntry.repeat = repeat;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
mediaDetailsGraphqlMediaMediaListEntry.status = status;
}
final MediaDetailsGraphqlMediaMediaListEntryStartedAt? startedAt = jsonConvert.convert<
MediaDetailsGraphqlMediaMediaListEntryStartedAt>(json['startedAt']);
if (startedAt != null) {
mediaDetailsGraphqlMediaMediaListEntry.startedAt = startedAt;
}
final MediaDetailsGraphqlMediaMediaListEntryCompletedAt? completedAt = jsonConvert.convert<
MediaDetailsGraphqlMediaMediaListEntryCompletedAt>(json['completedAt']);
if (completedAt != null) {
mediaDetailsGraphqlMediaMediaListEntry.completedAt = completedAt;
}
final List<MediaDetailsGraphqlMediaMediaListEntryCustomLists>? customLists = (json['customLists'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<MediaDetailsGraphqlMediaMediaListEntryCustomLists>(
e) as MediaDetailsGraphqlMediaMediaListEntryCustomLists).toList();
if (customLists != null) {
mediaDetailsGraphqlMediaMediaListEntry.customLists = customLists;
}
return mediaDetailsGraphqlMediaMediaListEntry;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaMediaListEntryToJson(
MediaDetailsGraphqlMediaMediaListEntry entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['progress'] = entity.progress;
data['progressVolumes'] = entity.progressVolumes;
data['score'] = entity.score;
data['repeat'] = entity.repeat;
data['status'] = entity.status;
data['startedAt'] = entity.startedAt.toJson();
data['completedAt'] = entity.completedAt.toJson();
data['customLists'] = entity.customLists.map((v) => v.toJson()).toList();
return data;
}
extension MediaDetailsGraphqlMediaMediaListEntryExtension on MediaDetailsGraphqlMediaMediaListEntry {
MediaDetailsGraphqlMediaMediaListEntry copyWith({
int? progress,
int? progressVolumes,
double? score,
int? repeat,
String? status,
MediaDetailsGraphqlMediaMediaListEntryStartedAt? startedAt,
MediaDetailsGraphqlMediaMediaListEntryCompletedAt? completedAt,
List<MediaDetailsGraphqlMediaMediaListEntryCustomLists>? customLists,
}) {
return MediaDetailsGraphqlMediaMediaListEntry()
..progress = progress ?? this.progress
..progressVolumes = progressVolumes ?? this.progressVolumes
..score = score ?? this.score
..repeat = repeat ?? this.repeat
..status = status ?? this.status
..startedAt = startedAt ?? this.startedAt
..completedAt = completedAt ?? this.completedAt
..customLists = customLists ?? this.customLists;
}
}
MediaDetailsGraphqlMediaMediaListEntryStartedAt $MediaDetailsGraphqlMediaMediaListEntryStartedAtFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaMediaListEntryStartedAt mediaDetailsGraphqlMediaMediaListEntryStartedAt = MediaDetailsGraphqlMediaMediaListEntryStartedAt();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsGraphqlMediaMediaListEntryStartedAt.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsGraphqlMediaMediaListEntryStartedAt.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsGraphqlMediaMediaListEntryStartedAt.year = year;
}
return mediaDetailsGraphqlMediaMediaListEntryStartedAt;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaMediaListEntryStartedAtToJson(
MediaDetailsGraphqlMediaMediaListEntryStartedAt entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
data['month'] = entity.month;
data['year'] = entity.year;
return data;
}
extension MediaDetailsGraphqlMediaMediaListEntryStartedAtExtension on MediaDetailsGraphqlMediaMediaListEntryStartedAt {
MediaDetailsGraphqlMediaMediaListEntryStartedAt copyWith({
int? day,
int? month,
int? year,
}) {
return MediaDetailsGraphqlMediaMediaListEntryStartedAt()
..day = day ?? this.day
..month = month ?? this.month
..year = year ?? this.year;
}
}
MediaDetailsGraphqlMediaMediaListEntryCompletedAt $MediaDetailsGraphqlMediaMediaListEntryCompletedAtFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaMediaListEntryCompletedAt mediaDetailsGraphqlMediaMediaListEntryCompletedAt = MediaDetailsGraphqlMediaMediaListEntryCompletedAt();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsGraphqlMediaMediaListEntryCompletedAt.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsGraphqlMediaMediaListEntryCompletedAt.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsGraphqlMediaMediaListEntryCompletedAt.year = year;
}
return mediaDetailsGraphqlMediaMediaListEntryCompletedAt;
}
Map<String, dynamic> $MediaDetailsGraphqlMediaMediaListEntryCompletedAtToJson(
MediaDetailsGraphqlMediaMediaListEntryCompletedAt entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
data['month'] = entity.month;
data['year'] = entity.year;
return data;
}
extension MediaDetailsGraphqlMediaMediaListEntryCompletedAtExtension on MediaDetailsGraphqlMediaMediaListEntryCompletedAt {
MediaDetailsGraphqlMediaMediaListEntryCompletedAt copyWith({
int? day,
int? month,
int? year,
}) {
return MediaDetailsGraphqlMediaMediaListEntryCompletedAt()
..day = day ?? this.day
..month = month ?? this.month
..year = year ?? this.year;
}
}
MediaDetailsGraphqlMediaMediaListEntryCustomLists $MediaDetailsGraphqlMediaMediaListEntryCustomListsFromJson(
Map<String, dynamic> json) {
final MediaDetailsGraphqlMediaMediaListEntryCustomLists mediaDetailsGraphqlMediaMediaListEntryCustomLists = MediaDetailsGraphqlMediaMediaListEntryCustomLists();

View File

@@ -0,0 +1,261 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/anilist/media_details_media_list_entry_entity.dart';
MediaDetailsMediaListEntryEntity $MediaDetailsMediaListEntryEntityFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryEntity mediaDetailsMediaListEntryEntity = MediaDetailsMediaListEntryEntity();
final MediaDetailsMediaListEntryMedia? media = jsonConvert.convert<
MediaDetailsMediaListEntryMedia>(json['Media']);
if (media != null) {
mediaDetailsMediaListEntryEntity.media = media;
}
return mediaDetailsMediaListEntryEntity;
}
Map<String, dynamic> $MediaDetailsMediaListEntryEntityToJson(
MediaDetailsMediaListEntryEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['Media'] = entity.media.toJson();
return data;
}
extension MediaDetailsMediaListEntryEntityExtension on MediaDetailsMediaListEntryEntity {
MediaDetailsMediaListEntryEntity copyWith({
MediaDetailsMediaListEntryMedia? media,
}) {
return MediaDetailsMediaListEntryEntity()
..media = media ?? this.media;
}
}
MediaDetailsMediaListEntryMedia $MediaDetailsMediaListEntryMediaFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryMedia mediaDetailsMediaListEntryMedia = MediaDetailsMediaListEntryMedia();
final MediaDetailsMediaListEntryMediaMediaListEntry? mediaListEntry = jsonConvert
.convert<MediaDetailsMediaListEntryMediaMediaListEntry>(
json['mediaListEntry']);
if (mediaListEntry != null) {
mediaDetailsMediaListEntryMedia.mediaListEntry = mediaListEntry;
}
return mediaDetailsMediaListEntryMedia;
}
Map<String, dynamic> $MediaDetailsMediaListEntryMediaToJson(
MediaDetailsMediaListEntryMedia entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['mediaListEntry'] = entity.mediaListEntry.toJson();
return data;
}
extension MediaDetailsMediaListEntryMediaExtension on MediaDetailsMediaListEntryMedia {
MediaDetailsMediaListEntryMedia copyWith({
MediaDetailsMediaListEntryMediaMediaListEntry? mediaListEntry,
}) {
return MediaDetailsMediaListEntryMedia()
..mediaListEntry = mediaListEntry ?? this.mediaListEntry;
}
}
MediaDetailsMediaListEntryMediaMediaListEntry $MediaDetailsMediaListEntryMediaMediaListEntryFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryMediaMediaListEntry mediaDetailsMediaListEntryMediaMediaListEntry = MediaDetailsMediaListEntryMediaMediaListEntry();
final int? progress = jsonConvert.convert<int>(json['progress']);
if (progress != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.progress = progress;
}
final double? score = jsonConvert.convert<double>(json['score']);
if (score != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.score = score;
}
final int? repeat = jsonConvert.convert<int>(json['repeat']);
if (repeat != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.repeat = repeat;
}
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.status = status;
}
final MediaDetailsMediaListEntryMediaMediaListEntryStartedAt? startedAt = jsonConvert
.convert<MediaDetailsMediaListEntryMediaMediaListEntryStartedAt>(
json['startedAt']);
if (startedAt != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.startedAt = startedAt;
}
final MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt? completedAt = jsonConvert
.convert<MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt>(
json['completedAt']);
if (completedAt != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.completedAt = completedAt;
}
final List<
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists>? customLists = (json['customLists'] as List<
dynamic>?)
?.map(
(e) =>
jsonConvert.convert<
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists>(
e) as MediaDetailsMediaListEntryMediaMediaListEntryCustomLists)
.toList();
if (customLists != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.customLists = customLists;
}
final int? progressVolumes = json['progressVolumes'];
if (progressVolumes != null) {
mediaDetailsMediaListEntryMediaMediaListEntry.progressVolumes =
progressVolumes;
}
return mediaDetailsMediaListEntryMediaMediaListEntry;
}
Map<String, dynamic> $MediaDetailsMediaListEntryMediaMediaListEntryToJson(
MediaDetailsMediaListEntryMediaMediaListEntry entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['progress'] = entity.progress;
data['score'] = entity.score;
data['repeat'] = entity.repeat;
data['status'] = entity.status;
data['startedAt'] = entity.startedAt.toJson();
data['completedAt'] = entity.completedAt.toJson();
data['customLists'] = entity.customLists.map((v) => v.toJson()).toList();
data['progressVolumes'] = entity.progressVolumes;
return data;
}
extension MediaDetailsMediaListEntryMediaMediaListEntryExtension on MediaDetailsMediaListEntryMediaMediaListEntry {
MediaDetailsMediaListEntryMediaMediaListEntry copyWith({
int? progress,
double? score,
int? repeat,
String? status,
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt? startedAt,
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt? completedAt,
List<MediaDetailsMediaListEntryMediaMediaListEntryCustomLists>? customLists,
int? progressVolumes,
}) {
return MediaDetailsMediaListEntryMediaMediaListEntry()
..progress = progress ?? this.progress
..score = score ?? this.score
..repeat = repeat ?? this.repeat
..status = status ?? this.status
..startedAt = startedAt ?? this.startedAt
..completedAt = completedAt ?? this.completedAt
..customLists = customLists ?? this.customLists
..progressVolumes = progressVolumes ?? this.progressVolumes;
}
}
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt $MediaDetailsMediaListEntryMediaMediaListEntryStartedAtFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryMediaMediaListEntryStartedAt mediaDetailsMediaListEntryMediaMediaListEntryStartedAt = MediaDetailsMediaListEntryMediaMediaListEntryStartedAt();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsMediaListEntryMediaMediaListEntryStartedAt.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsMediaListEntryMediaMediaListEntryStartedAt.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsMediaListEntryMediaMediaListEntryStartedAt.year = year;
}
return mediaDetailsMediaListEntryMediaMediaListEntryStartedAt;
}
Map<String,
dynamic> $MediaDetailsMediaListEntryMediaMediaListEntryStartedAtToJson(
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
data['month'] = entity.month;
data['year'] = entity.year;
return data;
}
extension MediaDetailsMediaListEntryMediaMediaListEntryStartedAtExtension on MediaDetailsMediaListEntryMediaMediaListEntryStartedAt {
MediaDetailsMediaListEntryMediaMediaListEntryStartedAt copyWith({
int? day,
int? month,
int? year,
}) {
return MediaDetailsMediaListEntryMediaMediaListEntryStartedAt()
..day = day ?? this.day
..month = month ?? this.month
..year = year ?? this.year;
}
}
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt $MediaDetailsMediaListEntryMediaMediaListEntryCompletedAtFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt mediaDetailsMediaListEntryMediaMediaListEntryCompletedAt = MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt();
final int? day = jsonConvert.convert<int>(json['day']);
if (day != null) {
mediaDetailsMediaListEntryMediaMediaListEntryCompletedAt.day = day;
}
final int? month = jsonConvert.convert<int>(json['month']);
if (month != null) {
mediaDetailsMediaListEntryMediaMediaListEntryCompletedAt.month = month;
}
final int? year = jsonConvert.convert<int>(json['year']);
if (year != null) {
mediaDetailsMediaListEntryMediaMediaListEntryCompletedAt.year = year;
}
return mediaDetailsMediaListEntryMediaMediaListEntryCompletedAt;
}
Map<String,
dynamic> $MediaDetailsMediaListEntryMediaMediaListEntryCompletedAtToJson(
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['day'] = entity.day;
data['month'] = entity.month;
data['year'] = entity.year;
return data;
}
extension MediaDetailsMediaListEntryMediaMediaListEntryCompletedAtExtension on MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt {
MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt copyWith({
int? day,
int? month,
int? year,
}) {
return MediaDetailsMediaListEntryMediaMediaListEntryCompletedAt()
..day = day ?? this.day
..month = month ?? this.month
..year = year ?? this.year;
}
}
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists $MediaDetailsMediaListEntryMediaMediaListEntryCustomListsFromJson(
Map<String, dynamic> json) {
final MediaDetailsMediaListEntryMediaMediaListEntryCustomLists mediaDetailsMediaListEntryMediaMediaListEntryCustomLists = MediaDetailsMediaListEntryMediaMediaListEntryCustomLists();
final String? name = jsonConvert.convert<String>(json['name']);
if (name != null) {
mediaDetailsMediaListEntryMediaMediaListEntryCustomLists.name = name;
}
final bool? enabled = jsonConvert.convert<bool>(json['enabled']);
if (enabled != null) {
mediaDetailsMediaListEntryMediaMediaListEntryCustomLists.enabled = enabled;
}
return mediaDetailsMediaListEntryMediaMediaListEntryCustomLists;
}
Map<String,
dynamic> $MediaDetailsMediaListEntryMediaMediaListEntryCustomListsToJson(
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['name'] = entity.name;
data['enabled'] = entity.enabled;
return data;
}
extension MediaDetailsMediaListEntryMediaMediaListEntryCustomListsExtension on MediaDetailsMediaListEntryMediaMediaListEntryCustomLists {
MediaDetailsMediaListEntryMediaMediaListEntryCustomLists copyWith({
String? name,
bool? enabled,
}) {
return MediaDetailsMediaListEntryMediaMediaListEntryCustomLists()
..name = name ?? this.name
..enabled = enabled ?? this.enabled;
}
}

View File

@@ -1,17 +1,20 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/anilist/save_media_list_entry_entity.dart';
SaveMediaListEntryEntity $SaveMediaListEntryEntityFromJson(Map<String, dynamic> json) {
SaveMediaListEntryEntity $SaveMediaListEntryEntityFromJson(
Map<String, dynamic> json) {
final SaveMediaListEntryEntity saveMediaListEntryEntity = SaveMediaListEntryEntity();
final SaveMediaListEntrySaveMediaListEntry? saveMediaListEntry = jsonConvert.convert<
SaveMediaListEntrySaveMediaListEntry>(json['SaveMediaListEntry']);
final SaveMediaListEntrySaveMediaListEntry? saveMediaListEntry = jsonConvert
.convert<SaveMediaListEntrySaveMediaListEntry>(
json['SaveMediaListEntry']);
if (saveMediaListEntry != null) {
saveMediaListEntryEntity.saveMediaListEntry = saveMediaListEntry;
}
return saveMediaListEntryEntity;
}
Map<String, dynamic> $SaveMediaListEntryEntityToJson(SaveMediaListEntryEntity entity) {
Map<String, dynamic> $SaveMediaListEntryEntityToJson(
SaveMediaListEntryEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['SaveMediaListEntry'] = entity.saveMediaListEntry.toJson();
return data;
@@ -33,7 +36,8 @@ SaveMediaListEntrySaveMediaListEntry $SaveMediaListEntrySaveMediaListEntryFromJs
if (progress != null) {
saveMediaListEntrySaveMediaListEntry.progress = progress;
}
final int? progressVolumes = jsonConvert.convert<int>(json['progressVolumes']);
final int? progressVolumes = jsonConvert.convert<int>(
json['progressVolumes']);
if (progressVolumes != null) {
saveMediaListEntrySaveMediaListEntry.progressVolumes = progressVolumes;
}
@@ -49,13 +53,15 @@ SaveMediaListEntrySaveMediaListEntry $SaveMediaListEntrySaveMediaListEntryFromJs
if (status != null) {
saveMediaListEntrySaveMediaListEntry.status = status;
}
final SaveMediaListEntrySaveMediaListEntryStartedAt? startedAt = jsonConvert.convert<
SaveMediaListEntrySaveMediaListEntryStartedAt>(json['startedAt']);
final SaveMediaListEntrySaveMediaListEntryStartedAt? startedAt = jsonConvert
.convert<SaveMediaListEntrySaveMediaListEntryStartedAt>(
json['startedAt']);
if (startedAt != null) {
saveMediaListEntrySaveMediaListEntry.startedAt = startedAt;
}
final SaveMediaListEntrySaveMediaListEntryCompletedAt? completedAt = jsonConvert.convert<
SaveMediaListEntrySaveMediaListEntryCompletedAt>(json['completedAt']);
final SaveMediaListEntrySaveMediaListEntryCompletedAt? completedAt = jsonConvert
.convert<SaveMediaListEntrySaveMediaListEntryCompletedAt>(
json['completedAt']);
if (completedAt != null) {
saveMediaListEntrySaveMediaListEntry.completedAt = completedAt;
}

View File

@@ -1,7 +1,8 @@
import 'package:unyo/generated/json/base/json_convert_content.dart';
import 'package:unyo/core/services/api/dto/extensions/tachiyomi_repo_json_entity.dart';
TachiyomiRepoJsonEntity $TachiyomiRepoJsonEntityFromJson(Map<String, dynamic> json) {
TachiyomiRepoJsonEntity $TachiyomiRepoJsonEntityFromJson(
Map<String, dynamic> json) {
final TachiyomiRepoJsonEntity tachiyomiRepoJsonEntity = TachiyomiRepoJsonEntity();
final String? name = jsonConvert.convert<String>(json['name']);
if (name != null) {
@@ -31,15 +32,19 @@ TachiyomiRepoJsonEntity $TachiyomiRepoJsonEntityFromJson(Map<String, dynamic> js
if (nsfw != null) {
tachiyomiRepoJsonEntity.nsfw = nsfw;
}
final List<TachiyomiRepoJsonSources>? sources = (json['sources'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<TachiyomiRepoJsonSources>(e) as TachiyomiRepoJsonSources).toList();
final List<TachiyomiRepoJsonSources>? sources = (json['sources'] as List<
dynamic>?)?.map(
(e) =>
jsonConvert.convert<TachiyomiRepoJsonSources>(
e) as TachiyomiRepoJsonSources).toList();
if (sources != null) {
tachiyomiRepoJsonEntity.sources = sources;
}
return tachiyomiRepoJsonEntity;
}
Map<String, dynamic> $TachiyomiRepoJsonEntityToJson(TachiyomiRepoJsonEntity entity) {
Map<String, dynamic> $TachiyomiRepoJsonEntityToJson(
TachiyomiRepoJsonEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['name'] = entity.name;
data['pkg'] = entity.pkg;
@@ -75,7 +80,8 @@ extension TachiyomiRepoJsonEntityExtension on TachiyomiRepoJsonEntity {
}
}
TachiyomiRepoJsonSources $TachiyomiRepoJsonSourcesFromJson(Map<String, dynamic> json) {
TachiyomiRepoJsonSources $TachiyomiRepoJsonSourcesFromJson(
Map<String, dynamic> json) {
final TachiyomiRepoJsonSources tachiyomiRepoJsonSources = TachiyomiRepoJsonSources();
final String? name = jsonConvert.convert<String>(json['name']);
if (name != null) {
@@ -96,7 +102,8 @@ TachiyomiRepoJsonSources $TachiyomiRepoJsonSourcesFromJson(Map<String, dynamic>
return tachiyomiRepoJsonSources;
}
Map<String, dynamic> $TachiyomiRepoJsonSourcesToJson(TachiyomiRepoJsonSources entity) {
Map<String, dynamic> $TachiyomiRepoJsonSourcesToJson(
TachiyomiRepoJsonSources entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['name'] = entity.name;
data['lang'] = entity.lang;

View File

@@ -3,7 +3,8 @@ import 'package:unyo/core/services/api/dto/anilist/viewer_graphql_entity.dart';
ViewerGraphqlEntity $ViewerGraphqlEntityFromJson(Map<String, dynamic> json) {
final ViewerGraphqlEntity viewerGraphqlEntity = ViewerGraphqlEntity();
final ViewerGraphqlDtoViewer? viewer = jsonConvert.convert<ViewerGraphqlDtoViewer>(json['Viewer']);
final ViewerGraphqlDtoViewer? viewer = jsonConvert.convert<
ViewerGraphqlDtoViewer>(json['Viewer']);
if (viewer != null) {
viewerGraphqlEntity.viewer = viewer;
}
@@ -25,7 +26,8 @@ extension ViewerGraphqlEntityExtension on ViewerGraphqlEntity {
}
}
ViewerGraphqlDtoViewer $ViewerGraphqlDtoViewerFromJson(Map<String, dynamic> json) {
ViewerGraphqlDtoViewer $ViewerGraphqlDtoViewerFromJson(
Map<String, dynamic> json) {
final ViewerGraphqlDtoViewer viewerGraphqlDtoViewer = ViewerGraphqlDtoViewer();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
@@ -35,13 +37,14 @@ ViewerGraphqlDtoViewer $ViewerGraphqlDtoViewerFromJson(Map<String, dynamic> json
if (bannerImage != null) {
viewerGraphqlDtoViewer.bannerImage = bannerImage;
}
final ViewerGraphqlDtoViewerAvatar? avatar = jsonConvert.convert<ViewerGraphqlDtoViewerAvatar>(
json['avatar']);
final ViewerGraphqlDtoViewerAvatar? avatar = jsonConvert.convert<
ViewerGraphqlDtoViewerAvatar>(json['avatar']);
if (avatar != null) {
viewerGraphqlDtoViewer.avatar = avatar;
}
final ViewerGraphqlDtoViewerMediaListOptions? mediaListOptions = jsonConvert.convert<
ViewerGraphqlDtoViewerMediaListOptions>(json['mediaListOptions']);
final ViewerGraphqlDtoViewerMediaListOptions? mediaListOptions = jsonConvert
.convert<ViewerGraphqlDtoViewerMediaListOptions>(
json['mediaListOptions']);
if (mediaListOptions != null) {
viewerGraphqlDtoViewer.mediaListOptions = mediaListOptions;
}
@@ -52,7 +55,8 @@ ViewerGraphqlDtoViewer $ViewerGraphqlDtoViewerFromJson(Map<String, dynamic> json
return viewerGraphqlDtoViewer;
}
Map<String, dynamic> $ViewerGraphqlDtoViewerToJson(ViewerGraphqlDtoViewer entity) {
Map<String, dynamic> $ViewerGraphqlDtoViewerToJson(
ViewerGraphqlDtoViewer entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['bannerImage'] = entity.bannerImage;
@@ -79,7 +83,8 @@ extension ViewerGraphqlDtoViewerExtension on ViewerGraphqlDtoViewer {
}
}
ViewerGraphqlDtoViewerAvatar $ViewerGraphqlDtoViewerAvatarFromJson(Map<String, dynamic> json) {
ViewerGraphqlDtoViewerAvatar $ViewerGraphqlDtoViewerAvatarFromJson(
Map<String, dynamic> json) {
final ViewerGraphqlDtoViewerAvatar viewerGraphqlDtoViewerAvatar = ViewerGraphqlDtoViewerAvatar();
final String? medium = jsonConvert.convert<String>(json['medium']);
if (medium != null) {
@@ -88,7 +93,8 @@ ViewerGraphqlDtoViewerAvatar $ViewerGraphqlDtoViewerAvatarFromJson(Map<String, d
return viewerGraphqlDtoViewerAvatar;
}
Map<String, dynamic> $ViewerGraphqlDtoViewerAvatarToJson(ViewerGraphqlDtoViewerAvatar entity) {
Map<String, dynamic> $ViewerGraphqlDtoViewerAvatarToJson(
ViewerGraphqlDtoViewerAvatar entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['medium'] = entity.medium;
return data;
@@ -106,13 +112,15 @@ extension ViewerGraphqlDtoViewerAvatarExtension on ViewerGraphqlDtoViewerAvatar
ViewerGraphqlDtoViewerMediaListOptions $ViewerGraphqlDtoViewerMediaListOptionsFromJson(
Map<String, dynamic> json) {
final ViewerGraphqlDtoViewerMediaListOptions viewerGraphqlDtoViewerMediaListOptions = ViewerGraphqlDtoViewerMediaListOptions();
final ViewerGraphqlDtoViewerMediaListOptionsAnimeList? animeList = jsonConvert.convert<
ViewerGraphqlDtoViewerMediaListOptionsAnimeList>(json['animeList']);
final ViewerGraphqlDtoViewerMediaListOptionsAnimeList? animeList = jsonConvert
.convert<ViewerGraphqlDtoViewerMediaListOptionsAnimeList>(
json['animeList']);
if (animeList != null) {
viewerGraphqlDtoViewerMediaListOptions.animeList = animeList;
}
final ViewerGraphqlDtoViewerMediaListOptionsMangaList? mangaList = jsonConvert.convert<
ViewerGraphqlDtoViewerMediaListOptionsMangaList>(json['mangaList']);
final ViewerGraphqlDtoViewerMediaListOptionsMangaList? mangaList = jsonConvert
.convert<ViewerGraphqlDtoViewerMediaListOptionsMangaList>(
json['mangaList']);
if (mangaList != null) {
viewerGraphqlDtoViewerMediaListOptions.mangaList = mangaList;
}
@@ -148,8 +156,10 @@ extension ViewerGraphqlDtoViewerMediaListOptionsExtension on ViewerGraphqlDtoVie
ViewerGraphqlDtoViewerMediaListOptionsAnimeList $ViewerGraphqlDtoViewerMediaListOptionsAnimeListFromJson(
Map<String, dynamic> json) {
final ViewerGraphqlDtoViewerMediaListOptionsAnimeList viewerGraphqlDtoViewerMediaListOptionsAnimeList = ViewerGraphqlDtoViewerMediaListOptionsAnimeList();
final List<String>? customLists = (json['customLists'] as List<dynamic>?)?.map(
(e) => jsonConvert.convert<String>(e) as String).toList();
final List<String>? customLists = (json['customLists'] as List<dynamic>?)
?.map(
(e) => jsonConvert.convert<String>(e) as String)
.toList();
if (customLists != null) {
viewerGraphqlDtoViewerMediaListOptionsAnimeList.customLists = customLists;
}
@@ -175,8 +185,10 @@ extension ViewerGraphqlDtoViewerMediaListOptionsAnimeListExtension on ViewerGrap
ViewerGraphqlDtoViewerMediaListOptionsMangaList $ViewerGraphqlDtoViewerMediaListOptionsMangaListFromJson(
Map<String, dynamic> json) {
final ViewerGraphqlDtoViewerMediaListOptionsMangaList viewerGraphqlDtoViewerMediaListOptionsMangaList = ViewerGraphqlDtoViewerMediaListOptionsMangaList();
final List<dynamic>? customLists = (json['customLists'] as List<dynamic>?)?.map(
(e) => e).toList();
final List<dynamic>? customLists = (json['customLists'] as List<dynamic>?)
?.map(
(e) => e)
.toList();
if (customLists != null) {
viewerGraphqlDtoViewerMediaListOptionsMangaList.customLists = customLists;
}

View File

@@ -175,7 +175,7 @@ class _SettingsViewState extends State<_SettingsView> with TickerProviderStateMi
service.name.substring(1),
)
.toList(),
onPressed: context.read<SettingsCubit>().updateEpisodeMetadataService,
onPressed: context.read<SettingsCubit>().updateMediaMetadataService,
),
UnyoSettingsSelectionDropdown(
title: "Episode Metadata Service",