diff --git a/src/gql/gql.ts b/src/gql/gql.ts index 9aec6e6..2ed20ea 100644 --- a/src/gql/gql.ts +++ b/src/gql/gql.ts @@ -21,13 +21,13 @@ const documents = { types.ViewerDocument, '\n mutation SaveMediaListEntry(\n $id: Int\n $mediaId: Int\n $status: MediaListStatus\n $score: Float\n $scoreRaw: Int\n $progress: Int\n $progressVolumes: Int\n $repeat: Int\n $priority: Int\n $private: Boolean\n $notes: String\n $hiddenFromStatusLists: Boolean\n $customLists: [String]\n $advancedScores: [Float]\n $startedAt: FuzzyDateInput\n $completedAt: FuzzyDateInput\n ) {\n SaveMediaListEntry(\n id: $id\n mediaId: $mediaId\n status: $status\n score: $score\n scoreRaw: $scoreRaw\n progress: $progress\n progressVolumes: $progressVolumes\n repeat: $repeat\n priority: $priority\n private: $private\n notes: $notes\n hiddenFromStatusLists: $hiddenFromStatusLists\n customLists: $customLists\n advancedScores: $advancedScores\n startedAt: $startedAt\n completedAt: $completedAt\n ) {\n progress\n score(format: POINT_10_DECIMAL)\n status\n }\n }\n': types.SaveMediaListEntryDocument, - '\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n ...DetailsCard\n }\n }\n }\n }\n': + '\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n isAdult\n ...DetailsCard\n }\n }\n }\n }\n': types.AiringScheduleScreenDocument, - '\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n ...CardMedia\n }\n }\n }\n }\n': + '\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n isAdult\n ...CardMedia\n }\n }\n }\n }\n': types.AiringScheduleDocument, - '\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n': + '\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n': types.PopularThisSeasonDocument, - '\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n': + '\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n': types.UpcomingNextSeasonDocument, '\n fragment WatchCard on Media {\n id\n title {\n userPreferred\n }\n coverImage {\n large\n }\n bannerImage\n ...MediaUnitStatsMedia\n }\n': types.WatchCardFragmentDoc, @@ -123,26 +123,26 @@ export function graphql( * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: '\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n ...DetailsCard\n }\n }\n }\n }\n' -): (typeof documents)['\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n ...DetailsCard\n }\n }\n }\n }\n']; + source: '\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n isAdult\n ...DetailsCard\n }\n }\n }\n }\n' +): (typeof documents)['\n query AiringScheduleScreen($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 50) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n airingAt\n media {\n id\n isAdult\n ...DetailsCard\n }\n }\n }\n }\n']; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: '\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n ...CardMedia\n }\n }\n }\n }\n' -): (typeof documents)['\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n ...CardMedia\n }\n }\n }\n }\n']; + source: '\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n isAdult\n ...CardMedia\n }\n }\n }\n }\n' +): (typeof documents)['\n query AiringSchedule($airingAt_greater: Int, $airingAt_lesser: Int) {\n Page(page: 1, perPage: 20) {\n airingSchedules(\n airingAt_greater: $airingAt_greater\n airingAt_lesser: $airingAt_lesser\n sort: [TIME_DESC]\n ) {\n media {\n isAdult\n ...CardMedia\n }\n }\n }\n }\n']; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: '\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n' -): (typeof documents)['\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n']; + source: '\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n' +): (typeof documents)['\n query PopularThisSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n']; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: '\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n' -): (typeof documents)['\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n ) {\n ...CardMedia\n }\n }\n }\n']; + source: '\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n' +): (typeof documents)['\n query UpcomingNextSeason($season: MediaSeason, $seasonYear: Int) {\n Page(page: 1, perPage: 10) {\n media(\n type: ANIME\n sort: [POPULARITY_DESC]\n season: $season\n seasonYear: $seasonYear\n isAdult: false\n countryOfOrigin: "JP"\n ) {\n ...CardMedia\n }\n }\n }\n']; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/src/gql/graphql.ts b/src/gql/graphql.ts index 5f0a09f..df279aa 100644 --- a/src/gql/graphql.ts +++ b/src/gql/graphql.ts @@ -4696,7 +4696,7 @@ export type AiringScheduleScreenQuery = { __typename?: 'AiringSchedule'; airingAt: number; media?: - | ({ __typename?: 'Media'; id: number } & { + | ({ __typename?: 'Media'; id: number; isAdult?: boolean | null } & { ' $fragmentRefs'?: { DetailsCardFragment: DetailsCardFragment }; }) | null; @@ -4716,7 +4716,7 @@ export type AiringScheduleQuery = { airingSchedules?: Array<{ __typename?: 'AiringSchedule'; media?: - | ({ __typename?: 'Media' } & { + | ({ __typename?: 'Media'; isAdult?: boolean | null } & { ' $fragmentRefs'?: { CardMediaFragment: CardMediaFragment }; }) | null; @@ -8270,6 +8270,10 @@ export const AiringScheduleScreenDocument = { kind: 'Field', name: { kind: 'Name', value: 'id' }, }, + { + kind: 'Field', + name: { kind: 'Name', value: 'isAdult' }, + }, { kind: 'FragmentSpread', name: { kind: 'Name', value: 'DetailsCard' }, @@ -8415,6 +8419,10 @@ export const AiringScheduleDocument = { selectionSet: { kind: 'SelectionSet', selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'isAdult' }, + }, { kind: 'FragmentSpread', name: { kind: 'Name', value: 'CardMedia' }, @@ -8594,6 +8602,16 @@ export const PopularThisSeasonDocument = { name: { kind: 'Name', value: 'seasonYear' }, }, }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'isAdult' }, + value: { kind: 'BooleanValue', value: false }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'countryOfOrigin' }, + value: { kind: 'StringValue', value: 'JP', block: false }, + }, ], selectionSet: { kind: 'SelectionSet', @@ -8777,6 +8795,16 @@ export const UpcomingNextSeasonDocument = { name: { kind: 'Name', value: 'seasonYear' }, }, }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'isAdult' }, + value: { kind: 'BooleanValue', value: false }, + }, + { + kind: 'Argument', + name: { kind: 'Name', value: 'countryOfOrigin' }, + value: { kind: 'StringValue', value: 'JP', block: false }, + }, ], selectionSet: { kind: 'SelectionSet', diff --git a/src/screens/anime/airing-schedule/screen.tsx b/src/screens/anime/airing-schedule/screen.tsx index 951ac8d..aca7409 100644 --- a/src/screens/anime/airing-schedule/screen.tsx +++ b/src/screens/anime/airing-schedule/screen.tsx @@ -30,6 +30,7 @@ const document = graphql(` airingAt media { id + isAdult ...DetailsCard } } @@ -223,6 +224,10 @@ const AiringScheduleScreen = () => { const isReleased = day.isBefore(dayjs()); + const nonAdultList = list.filter( + (schedule) => !schedule.media?.isAdult + ); + return ( @@ -240,7 +245,7 @@ const AiringScheduleScreen = () => { - {list.map((schedule) => ( + {nonAdultList.map((schedule) => ( diff --git a/src/screens/anime/components/airing-today-list.tsx b/src/screens/anime/components/airing-today-list.tsx index 3ace0cf..3b4f266 100644 --- a/src/screens/anime/components/airing-today-list.tsx +++ b/src/screens/anime/components/airing-today-list.tsx @@ -15,6 +15,7 @@ const document = graphql(` sort: [TIME_DESC] ) { media { + isAdult ...CardMedia } } @@ -34,8 +35,8 @@ const AiringTodayList = () => { }); const mediaList = data?.Page?.airingSchedules - ?.filter(Boolean) - ?.map((schedule) => schedule.media) + ?.map((schedule) => schedule?.media) + ?.filter((media) => !media?.isAdult) ?.filter(Boolean); if (isLoading) { diff --git a/src/screens/anime/components/popular-this-season.tsx b/src/screens/anime/components/popular-this-season.tsx index 15ea036..7a488fc 100644 --- a/src/screens/anime/components/popular-this-season.tsx +++ b/src/screens/anime/components/popular-this-season.tsx @@ -13,6 +13,8 @@ const document = graphql(` sort: [POPULARITY_DESC] season: $season seasonYear: $seasonYear + isAdult: false + countryOfOrigin: "JP" ) { ...CardMedia } diff --git a/src/screens/anime/components/upcoming-next-season.tsx b/src/screens/anime/components/upcoming-next-season.tsx index f4dcb0a..7ed3807 100644 --- a/src/screens/anime/components/upcoming-next-season.tsx +++ b/src/screens/anime/components/upcoming-next-season.tsx @@ -13,6 +13,8 @@ const document = graphql(` sort: [POPULARITY_DESC] season: $season seasonYear: $seasonYear + isAdult: false + countryOfOrigin: "JP" ) { ...CardMedia }