This commit is contained in:
Hellow
2023-01-24 00:16:10 +01:00
parent c28abdd999
commit b17d039fb6
6 changed files with 227 additions and 159 deletions

View File

@@ -3,6 +3,8 @@ from . import (
objects
)
MusicObject = objects.MusicObject
ID3Timestamp = objects.ID3Timestamp
SourceTypes = objects.SourceTypes
SourcePages = objects.SourcePages

View File

@@ -0,0 +1,3 @@
from .encyclopaedia_metallum import EncyclopaediaMetallum
EncyclopaediaMetallum = EncyclopaediaMetallum

View File

@@ -20,6 +20,46 @@ class Page:
functionality for every other class fetching something
"""
class Query:
def __init__(self, query: str):
self.query = query
self.is_raw = False
self.artist = None
self.album = None
self.song = None
self.parse_query(query=query)
def __str__(self):
if self.is_raw:
return self.query
return f"{self.artist}; {self.album}; {self.song}"
def parse_query(self, query: str):
if not '#' in query:
self.is_raw = True
return
query = query.strip()
parameters = query.split('#')
parameters.remove('')
for parameter in parameters:
splitted = parameter.split(" ")
type_ = splitted[0]
input_ = " ".join(splitted[1:]).strip()
if type_ == "a":
self.artist = input_
continue
if type_ == "r":
self.album = input_
continue
if type_ == "t":
self.song = type_
continue
@classmethod
def search_by_query(cls, query: str) -> List[MusicObject]:
"""

View File

@@ -0,0 +1,18 @@
from typing import List
from .abstract import Page
from ..database import MusicObject
class EncyclopaediaMetallum(Page):
@classmethod
def search_by_query(cls, query: str) -> List[MusicObject]:
query_obj = cls.Query(query)
if query_obj.is_raw:
return cls.simple_search(query_obj)
print(query_obj)
@classmethod
def simple_search(cls, query: Page.Query):
pass