MediaProcessing/apps/pyMetadata/sources/mal.py
2023-12-04 00:03:57 +01:00

31 lines
1.1 KiB
Python

from mal import *
from .result import Metadata, DataResult
class metadata():
name: str = None
def __init__(self, name: str) -> None:
self.name = name
def lookup(self) -> DataResult:
try:
search = AnimeSearch(self.name)
if (len(search.results) == 0):
return DataResult(status="SUCCESS", message="No results")
anime = Anime(search.results[0].mal_id)
meta = Metadata(
title = anime.title,
altTitle = [altName for altName in [anime.title_english, *anime.title_synonyms] if altName],
cover = anime.image_url,
summary = anime.synopsis,
type = 'movie' if anime.type.lower() == 'movie' else 'serie',
genres = anime.genres,
source="mal",
usedTitle=self.name
)
if (meta.title is None) or (meta.type is None):
return DataResult("SUCCESS", None, None)
return DataResult("SUCCESS", None, meta)
except Exception as e:
return DataResult(status="ERROR", message=str(e))