mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-12 15:50:01 -08:00
chore: cleanup unused files
This commit is contained in:
@@ -1,137 +0,0 @@
|
||||
query ($id: Int) {
|
||||
Page {
|
||||
media(id: $id) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
coverImage {
|
||||
extraLarge
|
||||
}
|
||||
characters(perPage: 5, sort: FAVOURITES_DESC) {
|
||||
edges {
|
||||
node {
|
||||
name {
|
||||
full
|
||||
}
|
||||
gender
|
||||
dateOfBirth {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
age
|
||||
image {
|
||||
medium
|
||||
large
|
||||
}
|
||||
description
|
||||
}
|
||||
voiceActors {
|
||||
name {
|
||||
full
|
||||
}
|
||||
image {
|
||||
medium
|
||||
large
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
season
|
||||
format
|
||||
status
|
||||
seasonYear
|
||||
description
|
||||
genres
|
||||
synonyms
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
duration
|
||||
countryOfOrigin
|
||||
averageScore
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
|
||||
favourites
|
||||
source
|
||||
hashtag
|
||||
siteUrl
|
||||
tags {
|
||||
name
|
||||
rank
|
||||
}
|
||||
reviews(sort: SCORE_DESC, perPage: 3) {
|
||||
nodes {
|
||||
summary
|
||||
user {
|
||||
name
|
||||
avatar {
|
||||
medium
|
||||
large
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
recommendations(sort: RATING_DESC, perPage: 10) {
|
||||
nodes {
|
||||
mediaRecommendation {
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
relations {
|
||||
nodes {
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
native
|
||||
}
|
||||
}
|
||||
}
|
||||
externalLinks {
|
||||
url
|
||||
site
|
||||
icon
|
||||
}
|
||||
rankings {
|
||||
rank
|
||||
context
|
||||
}
|
||||
bannerImage
|
||||
episodes
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
query ($type: MediaType, $page: Int, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
media(sort: FAVOURITES_DESC, type: $type, genre_not_in: ["hentai"]) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
favourites
|
||||
averageScore
|
||||
episodes
|
||||
description
|
||||
genres
|
||||
synonyms
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
query ($type: MediaType, $page: Int, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
media(sort: POPULARITY_DESC, type: $type, genre_not_in: ["hentai"]) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
favourites
|
||||
averageScore
|
||||
description
|
||||
episodes
|
||||
genres
|
||||
synonyms
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
query ($type: MediaType, $page: Int, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
media(
|
||||
sort: UPDATED_AT_DESC
|
||||
type: $type
|
||||
averageScore_greater: 50
|
||||
genre_not_in: ["hentai"]
|
||||
status: RELEASING
|
||||
) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
|
||||
favourites
|
||||
averageScore
|
||||
description
|
||||
genres
|
||||
synonyms
|
||||
episodes
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
query ($type: MediaType, $page: Int, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
media(sort: SCORE_DESC, type: $type, genre_not_in: ["hentai"]) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
episodes
|
||||
favourites
|
||||
averageScore
|
||||
description
|
||||
genres
|
||||
synonyms
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
query ($type: MediaType, $page: Int, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
media(sort: TRENDING_DESC, type: $type, genre_not_in: ["hentai"]) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
favourites
|
||||
averageScore
|
||||
genres
|
||||
synonyms
|
||||
episodes
|
||||
description
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
query ($page: Int, $type: MediaType, $perPage: Int) {
|
||||
Page(perPage: $perPage, page: $page) {
|
||||
pageInfo {
|
||||
total
|
||||
perPage
|
||||
currentPage
|
||||
hasNextPage
|
||||
}
|
||||
media(
|
||||
type: $type
|
||||
status: NOT_YET_RELEASED
|
||||
sort: POPULARITY_DESC
|
||||
genre_not_in: ["hentai"]
|
||||
) {
|
||||
id
|
||||
idMal
|
||||
title {
|
||||
romaji
|
||||
english
|
||||
}
|
||||
coverImage {
|
||||
medium
|
||||
large
|
||||
}
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
popularity
|
||||
streamingEpisodes {
|
||||
title
|
||||
thumbnail
|
||||
}
|
||||
favourites
|
||||
averageScore
|
||||
genres
|
||||
synonyms
|
||||
episodes
|
||||
description
|
||||
studios {
|
||||
nodes {
|
||||
name
|
||||
isAnimationStudio
|
||||
}
|
||||
}
|
||||
tags {
|
||||
name
|
||||
}
|
||||
startDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate {
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
status
|
||||
nextAiringEpisode {
|
||||
timeUntilAiring
|
||||
airingAt
|
||||
episode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,145 +0,0 @@
|
||||
"""
|
||||
Example integration of IPC MPV Player with FastAnime.
|
||||
|
||||
This shows how to use the updated PlayerParams with IPC-specific parameters
|
||||
for episode navigation features. The IPC player is automatically used when
|
||||
mpv.use_ipc is enabled and the required parameters are provided.
|
||||
"""
|
||||
|
||||
from typing import List, Literal, Optional
|
||||
|
||||
from ....libs.player.params import PlayerParams
|
||||
from ....libs.provider.anime.base import BaseAnimeProvider
|
||||
from ....libs.provider.anime.types import Anime
|
||||
|
||||
|
||||
def create_ipc_player_params(
|
||||
url: str,
|
||||
title: str,
|
||||
provider: BaseAnimeProvider,
|
||||
anime: Anime,
|
||||
current_episode: str,
|
||||
translation_type: Literal["sub", "dub"] = "sub",
|
||||
subtitles: Optional[List[str]] = None,
|
||||
headers: Optional[dict] = None,
|
||||
start_time: Optional[str] = None,
|
||||
) -> PlayerParams:
|
||||
"""
|
||||
Create PlayerParams with IPC player dependencies for episode navigation.
|
||||
|
||||
Args:
|
||||
url: Stream URL
|
||||
title: Episode title
|
||||
provider: Anime provider for fetching episode streams
|
||||
anime: Current anime object
|
||||
current_episode: Current episode number
|
||||
translation_type: Translation type ("sub" or "dub")
|
||||
subtitles: List of subtitle URLs
|
||||
headers: HTTP headers for streaming
|
||||
start_time: Start time for playback
|
||||
|
||||
Returns:
|
||||
PlayerParams configured for IPC player
|
||||
"""
|
||||
# Get available episodes for the translation type
|
||||
available_episodes: List[str] = getattr(anime.episodes, translation_type, [])
|
||||
|
||||
return PlayerParams(
|
||||
url=url,
|
||||
title=title,
|
||||
subtitles=subtitles,
|
||||
headers=headers,
|
||||
start_time=start_time,
|
||||
# IPC-specific parameters
|
||||
anime_provider=provider,
|
||||
current_anime=anime,
|
||||
available_episodes=available_episodes,
|
||||
current_episode=current_episode,
|
||||
current_anime_id=anime.id,
|
||||
current_anime_title=anime.title,
|
||||
current_translation_type=translation_type,
|
||||
)
|
||||
|
||||
|
||||
def example_usage():
|
||||
"""Example of how to use the IPC player in an interactive session."""
|
||||
# This would typically be called from within the servers.py menu
|
||||
# when the IPC player is enabled
|
||||
|
||||
# Updated integration example:
|
||||
"""
|
||||
# In servers.py, around line 82:
|
||||
|
||||
if config.mpv.use_ipc and state.provider.anime:
|
||||
# Get available episodes for current translation type
|
||||
available_episodes = getattr(
|
||||
state.provider.anime.episodes,
|
||||
config.stream.translation_type,
|
||||
[]
|
||||
)
|
||||
|
||||
# Create player params with IPC dependencies
|
||||
player_result = ctx.player.play(
|
||||
PlayerParams(
|
||||
url=stream_link_obj.link,
|
||||
title=final_title,
|
||||
subtitles=[sub.url for sub in selected_server.subtitles],
|
||||
headers=selected_server.headers,
|
||||
start_time=state.provider.start_time,
|
||||
# IPC-specific parameters
|
||||
anime_provider=provider,
|
||||
current_anime=state.provider.anime,
|
||||
available_episodes=available_episodes,
|
||||
current_episode=episode_number,
|
||||
current_anime_id=state.provider.anime.id,
|
||||
current_anime_title=state.provider.anime.title,
|
||||
current_translation_type=config.stream.translation_type
|
||||
)
|
||||
)
|
||||
else:
|
||||
# Use regular player without IPC features
|
||||
player_result = ctx.player.play(
|
||||
PlayerParams(
|
||||
url=stream_link_obj.link,
|
||||
title=final_title,
|
||||
subtitles=[sub.url for sub in selected_server.subtitles],
|
||||
headers=selected_server.headers,
|
||||
start_time=state.provider.start_time,
|
||||
)
|
||||
)
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
# Key features enabled by IPC player:
|
||||
#
|
||||
# 1. Episode Navigation:
|
||||
# - Shift+N: Next episode
|
||||
# - Shift+P: Previous episode
|
||||
# - Shift+R: Reload current episode
|
||||
#
|
||||
# 2. Quality/Server switching:
|
||||
# - Script message: select-quality 720
|
||||
# - Script message: select-server gogoanime
|
||||
#
|
||||
# 3. Episode jumping:
|
||||
# - Script message: select-episode 5
|
||||
#
|
||||
# 4. Translation type switching:
|
||||
# - Shift+T: Toggle between sub/dub
|
||||
#
|
||||
# 5. Auto-next episode (when implemented):
|
||||
# - Automatically plays next episode when current one ends
|
||||
#
|
||||
# To send script messages from MPV console (` key):
|
||||
# script-message select-episode 5
|
||||
# script-message select-quality 1080
|
||||
# script-message select-server top
|
||||
#
|
||||
# Configuration:
|
||||
# To enable IPC player, set in config: mpv.use_ipc = true
|
||||
#
|
||||
# The IPC player will automatically be used when:
|
||||
# 1. mpv.use_ipc is enabled in config
|
||||
# 2. The required anime provider and episode data is passed in PlayerParams
|
||||
# 3. MPV executable is available and unix sockets are supported (Linux/macOS)
|
||||
Reference in New Issue
Block a user