mirror of
https://github.com/K3vinb5/Unyo.git
synced 2026-06-13 05:49:42 +00:00
rewrite: Add reload notifier enhance media list entry handling and how this affetct multiple screens
This commit is contained in:
45
.github/agents/OpenProject_Expert.agent.md
vendored
Normal file
45
.github/agents/OpenProject_Expert.agent.md
vendored
Normal 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".
|
||||
@@ -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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
26
lib/core/notification/reload/reload_notifier.dart
Normal file
26
lib/core/notification/reload/reload_notifier.dart
Normal 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();
|
||||
}
|
||||
7
lib/core/notification/reload/reload_type.dart
Normal file
7
lib/core/notification/reload/reload_type.dart
Normal file
@@ -0,0 +1,7 @@
|
||||
enum ReloadType {
|
||||
empty, // No reload needed
|
||||
newMetadataService, // HomeScreen, AnimeScreen and MangaScreen
|
||||
homeMediaListEntryUpdated, // HomeScreen
|
||||
animeMediaListEntryUpdated, // AnimeDetailsScreen
|
||||
videoMediaListEntryUpdated, // AnimeDetailsScreen
|
||||
}
|
||||
@@ -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 = '';
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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':
|
||||
|
||||
3
lib/core/services/settings/settings_service.dart
Normal file
3
lib/core/services/settings/settings_service.dart
Normal file
@@ -0,0 +1,3 @@
|
||||
class SettingsService {
|
||||
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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) =>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
261
lib/generated/json/media_details_media_list_entry_entity.g.dart
Normal file
261
lib/generated/json/media_details_media_list_entry_entity.g.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user