asddasd
This commit is contained in:
parent
c28abdd999
commit
b17d039fb6
161
src/create_custom_objects.py
Normal file
161
src/create_custom_objects.py
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
import music_kraken
|
||||||
|
from music_kraken import (
|
||||||
|
Song,
|
||||||
|
Lyrics,
|
||||||
|
Target,
|
||||||
|
Source,
|
||||||
|
Album,
|
||||||
|
Artist,
|
||||||
|
ID3Timestamp,
|
||||||
|
SourcePages,
|
||||||
|
SourceTypes
|
||||||
|
)
|
||||||
|
|
||||||
|
from music_kraken.tagging import (
|
||||||
|
AudioMetadata,
|
||||||
|
write_metadata,
|
||||||
|
write_many_metadata
|
||||||
|
)
|
||||||
|
|
||||||
|
import music_kraken.database.new_database as db
|
||||||
|
|
||||||
|
import pycountry
|
||||||
|
|
||||||
|
|
||||||
|
def div(msg: str = ""):
|
||||||
|
print("-" * 50 + msg + "-" * 50)
|
||||||
|
|
||||||
|
|
||||||
|
cache = music_kraken.database.new_database.Database("test.db")
|
||||||
|
cache.reset()
|
||||||
|
|
||||||
|
|
||||||
|
main_artist = Artist(
|
||||||
|
name="I'm in a coffin",
|
||||||
|
sources=[
|
||||||
|
Source(SourcePages.ENCYCLOPAEDIA_METALLUM, "https://www.metal-archives.com/bands/I%27m_in_a_Coffin/127727")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
artist_ref = main_artist.reference
|
||||||
|
|
||||||
|
split_artist = Artist(
|
||||||
|
name="split"
|
||||||
|
)
|
||||||
|
|
||||||
|
feature_artist = Artist(
|
||||||
|
name="Ghost"
|
||||||
|
)
|
||||||
|
|
||||||
|
album_input = Album(
|
||||||
|
title="One Final Action",
|
||||||
|
date=ID3Timestamp(year=1986, month=3, day=1),
|
||||||
|
language=pycountry.languages.get(alpha_2="en"),
|
||||||
|
label="cum productions",
|
||||||
|
sources=[
|
||||||
|
Source(SourcePages.ENCYCLOPAEDIA_METALLUM, "https://www.metal-archives.com/albums/I%27m_in_a_Coffin/One_Final_Action/207614")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
album_input.artists = [
|
||||||
|
main_artist,
|
||||||
|
split_artist
|
||||||
|
]
|
||||||
|
|
||||||
|
song_input = Song(
|
||||||
|
genre="HS Core",
|
||||||
|
title="Vein Deep in the Solution",
|
||||||
|
length=666,
|
||||||
|
isrc="US-S1Z-99-00001",
|
||||||
|
tracksort=2,
|
||||||
|
target=Target(file="song.mp3", path="~/Music"),
|
||||||
|
lyrics=[
|
||||||
|
Lyrics(text="these are some depressive lyrics", language="en"),
|
||||||
|
Lyrics(text="test", language="en")
|
||||||
|
],
|
||||||
|
sources=[
|
||||||
|
Source(SourcePages.YOUTUBE, "https://youtu.be/dfnsdajlhkjhsd"),
|
||||||
|
Source(SourcePages.MUSIFY, "https://ln.topdf.de/Music-Kraken/")
|
||||||
|
],
|
||||||
|
album=album_input,
|
||||||
|
main_artist_list=[main_artist],
|
||||||
|
feature_artist_list=[feature_artist],
|
||||||
|
)
|
||||||
|
|
||||||
|
other_song = Song(
|
||||||
|
title="this is just another song",
|
||||||
|
main_artist_list=[feature_artist],
|
||||||
|
feature_artist_list=[main_artist]
|
||||||
|
)
|
||||||
|
|
||||||
|
print(song_input)
|
||||||
|
|
||||||
|
additional_song = Song(
|
||||||
|
title="A fcking Song",
|
||||||
|
album=album_input
|
||||||
|
)
|
||||||
|
|
||||||
|
song_ref = song_input.reference
|
||||||
|
print(song_ref)
|
||||||
|
|
||||||
|
lyrics = Lyrics(text="these are some Lyrics that don't belong to any Song", language="en")
|
||||||
|
|
||||||
|
cache.push([album_input, song_input, lyrics, additional_song, other_song])
|
||||||
|
|
||||||
|
# getting song by song ref
|
||||||
|
div()
|
||||||
|
song_output_list = cache.pull_songs(song_ref=song_ref)
|
||||||
|
print(len(song_output_list), song_output_list, song_output_list[0].album, sep=" | ")
|
||||||
|
song = song_output_list[0]
|
||||||
|
print("tracksort", song_output_list[0].tracksort, sep=": ")
|
||||||
|
print("ID3", dict(song.metadata))
|
||||||
|
print(str(song_output_list[0].metadata))
|
||||||
|
print("--src--")
|
||||||
|
for source in song.sources:
|
||||||
|
print(source)
|
||||||
|
|
||||||
|
print("album", song.album.sources)
|
||||||
|
|
||||||
|
# try writing metadata
|
||||||
|
write_metadata(song)
|
||||||
|
|
||||||
|
exit()
|
||||||
|
|
||||||
|
# getting song by album ref
|
||||||
|
div()
|
||||||
|
song_output_list = cache.pull_songs(album_ref=album_input.reference)
|
||||||
|
print(len(song_output_list), song_output_list)
|
||||||
|
for song in song_output_list:
|
||||||
|
print(song, song.album)
|
||||||
|
|
||||||
|
# getting album
|
||||||
|
div("album")
|
||||||
|
album_output_list = cache.pull_albums(album_ref=album_input.reference)
|
||||||
|
album_output = album_output_list[0]
|
||||||
|
print(album_output)
|
||||||
|
print(f"--tracklist-{len(album_output)}--")
|
||||||
|
for track in album_output.tracklist:
|
||||||
|
print(track.tracksort, track)
|
||||||
|
print("--artist--")
|
||||||
|
for artist in album_output.artists:
|
||||||
|
print(artist)
|
||||||
|
|
||||||
|
# getting album by song
|
||||||
|
div()
|
||||||
|
album_output_list = cache.pull_albums(song_ref=song_ref)
|
||||||
|
print(album_output_list)
|
||||||
|
print("len of album ->", len(album_output_list[0]), album_output_list[0], sep=" | ")
|
||||||
|
|
||||||
|
# get artist
|
||||||
|
div("artist")
|
||||||
|
artist_output = cache.pull_artists(artist_ref=artist_ref)[0]
|
||||||
|
print(artist_output)
|
||||||
|
|
||||||
|
print("---static---")
|
||||||
|
print("albums", artist_output.main_albums)
|
||||||
|
print("main_s", artist_output.main_songs)
|
||||||
|
print("feat_s", artist_output.feature_songs)
|
||||||
|
|
||||||
|
print("---dynamic---")
|
||||||
|
print("discography", artist_output.discography)
|
||||||
|
print("songs", artist_output.songs, artist_output.songs.tracklist)
|
||||||
|
print("features", artist_output.features, artist_output.features.tracklist)
|
162
src/goof.py
162
src/goof.py
@ -1,161 +1,5 @@
|
|||||||
import music_kraken
|
from music_kraken.pages import (
|
||||||
from music_kraken import (
|
EncyclopaediaMetallum
|
||||||
Song,
|
|
||||||
Lyrics,
|
|
||||||
Target,
|
|
||||||
Source,
|
|
||||||
Album,
|
|
||||||
Artist,
|
|
||||||
ID3Timestamp,
|
|
||||||
SourcePages,
|
|
||||||
SourceTypes
|
|
||||||
)
|
)
|
||||||
|
|
||||||
from music_kraken.tagging import (
|
EncyclopaediaMetallum.search_by_query("Ghost Bath")
|
||||||
AudioMetadata,
|
|
||||||
write_metadata,
|
|
||||||
write_many_metadata
|
|
||||||
)
|
|
||||||
|
|
||||||
import music_kraken.database.new_database as db
|
|
||||||
|
|
||||||
import pycountry
|
|
||||||
|
|
||||||
|
|
||||||
def div(msg: str = ""):
|
|
||||||
print("-" * 50 + msg + "-" * 50)
|
|
||||||
|
|
||||||
|
|
||||||
cache = music_kraken.database.new_database.Database("test.db")
|
|
||||||
cache.reset()
|
|
||||||
|
|
||||||
|
|
||||||
main_artist = Artist(
|
|
||||||
name="I'm in a coffin",
|
|
||||||
sources=[
|
|
||||||
Source(SourcePages.ENCYCLOPAEDIA_METALLUM, "https://www.metal-archives.com/bands/I%27m_in_a_Coffin/127727")
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
artist_ref = main_artist.reference
|
|
||||||
|
|
||||||
split_artist = Artist(
|
|
||||||
name="split"
|
|
||||||
)
|
|
||||||
|
|
||||||
feature_artist = Artist(
|
|
||||||
name="Ghost"
|
|
||||||
)
|
|
||||||
|
|
||||||
album_input = Album(
|
|
||||||
title="One Final Action",
|
|
||||||
date=ID3Timestamp(year=1986, month=3, day=1),
|
|
||||||
language=pycountry.languages.get(alpha_2="en"),
|
|
||||||
label="cum productions",
|
|
||||||
sources=[
|
|
||||||
Source(SourcePages.ENCYCLOPAEDIA_METALLUM, "https://www.metal-archives.com/albums/I%27m_in_a_Coffin/One_Final_Action/207614")
|
|
||||||
]
|
|
||||||
)
|
|
||||||
album_input.artists = [
|
|
||||||
main_artist,
|
|
||||||
split_artist
|
|
||||||
]
|
|
||||||
|
|
||||||
song_input = Song(
|
|
||||||
genre="HS Core",
|
|
||||||
title="Vein Deep in the Solution",
|
|
||||||
length=666,
|
|
||||||
isrc="US-S1Z-99-00001",
|
|
||||||
tracksort=2,
|
|
||||||
target=Target(file="song.mp3", path="~/Music"),
|
|
||||||
lyrics=[
|
|
||||||
Lyrics(text="these are some depressive lyrics", language="en"),
|
|
||||||
Lyrics(text="test", language="en")
|
|
||||||
],
|
|
||||||
sources=[
|
|
||||||
Source(SourcePages.YOUTUBE, "https://youtu.be/dfnsdajlhkjhsd"),
|
|
||||||
Source(SourcePages.MUSIFY, "https://ln.topdf.de/Music-Kraken/")
|
|
||||||
],
|
|
||||||
album=album_input,
|
|
||||||
main_artist_list=[main_artist],
|
|
||||||
feature_artist_list=[feature_artist],
|
|
||||||
)
|
|
||||||
|
|
||||||
other_song = Song(
|
|
||||||
title="this is just another song",
|
|
||||||
main_artist_list=[feature_artist],
|
|
||||||
feature_artist_list=[main_artist]
|
|
||||||
)
|
|
||||||
|
|
||||||
print(song_input)
|
|
||||||
|
|
||||||
additional_song = Song(
|
|
||||||
title="A fcking Song",
|
|
||||||
album=album_input
|
|
||||||
)
|
|
||||||
|
|
||||||
song_ref = song_input.reference
|
|
||||||
print(song_ref)
|
|
||||||
|
|
||||||
lyrics = Lyrics(text="these are some Lyrics that don't belong to any Song", language="en")
|
|
||||||
|
|
||||||
cache.push([album_input, song_input, lyrics, additional_song, other_song])
|
|
||||||
|
|
||||||
# getting song by song ref
|
|
||||||
div()
|
|
||||||
song_output_list = cache.pull_songs(song_ref=song_ref)
|
|
||||||
print(len(song_output_list), song_output_list, song_output_list[0].album, sep=" | ")
|
|
||||||
song = song_output_list[0]
|
|
||||||
print("tracksort", song_output_list[0].tracksort, sep=": ")
|
|
||||||
print("ID3", dict(song.metadata))
|
|
||||||
print(str(song_output_list[0].metadata))
|
|
||||||
print("--src--")
|
|
||||||
for source in song.sources:
|
|
||||||
print(source)
|
|
||||||
|
|
||||||
print("album", song.album.sources)
|
|
||||||
|
|
||||||
# try writing metadata
|
|
||||||
write_metadata(song)
|
|
||||||
|
|
||||||
exit()
|
|
||||||
|
|
||||||
# getting song by album ref
|
|
||||||
div()
|
|
||||||
song_output_list = cache.pull_songs(album_ref=album_input.reference)
|
|
||||||
print(len(song_output_list), song_output_list)
|
|
||||||
for song in song_output_list:
|
|
||||||
print(song, song.album)
|
|
||||||
|
|
||||||
# getting album
|
|
||||||
div("album")
|
|
||||||
album_output_list = cache.pull_albums(album_ref=album_input.reference)
|
|
||||||
album_output = album_output_list[0]
|
|
||||||
print(album_output)
|
|
||||||
print(f"--tracklist-{len(album_output)}--")
|
|
||||||
for track in album_output.tracklist:
|
|
||||||
print(track.tracksort, track)
|
|
||||||
print("--artist--")
|
|
||||||
for artist in album_output.artists:
|
|
||||||
print(artist)
|
|
||||||
|
|
||||||
# getting album by song
|
|
||||||
div()
|
|
||||||
album_output_list = cache.pull_albums(song_ref=song_ref)
|
|
||||||
print(album_output_list)
|
|
||||||
print("len of album ->", len(album_output_list[0]), album_output_list[0], sep=" | ")
|
|
||||||
|
|
||||||
# get artist
|
|
||||||
div("artist")
|
|
||||||
artist_output = cache.pull_artists(artist_ref=artist_ref)[0]
|
|
||||||
print(artist_output)
|
|
||||||
|
|
||||||
print("---static---")
|
|
||||||
print("albums", artist_output.main_albums)
|
|
||||||
print("main_s", artist_output.main_songs)
|
|
||||||
print("feat_s", artist_output.feature_songs)
|
|
||||||
|
|
||||||
print("---dynamic---")
|
|
||||||
print("discography", artist_output.discography)
|
|
||||||
print("songs", artist_output.songs, artist_output.songs.tracklist)
|
|
||||||
print("features", artist_output.features, artist_output.features.tracklist)
|
|
||||||
|
@ -3,6 +3,8 @@ from . import (
|
|||||||
objects
|
objects
|
||||||
)
|
)
|
||||||
|
|
||||||
|
MusicObject = objects.MusicObject
|
||||||
|
|
||||||
ID3Timestamp = objects.ID3Timestamp
|
ID3Timestamp = objects.ID3Timestamp
|
||||||
SourceTypes = objects.SourceTypes
|
SourceTypes = objects.SourceTypes
|
||||||
SourcePages = objects.SourcePages
|
SourcePages = objects.SourcePages
|
||||||
|
3
src/music_kraken/pages/__init__.py
Normal file
3
src/music_kraken/pages/__init__.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from .encyclopaedia_metallum import EncyclopaediaMetallum
|
||||||
|
|
||||||
|
EncyclopaediaMetallum = EncyclopaediaMetallum
|
@ -20,6 +20,46 @@ class Page:
|
|||||||
functionality for every other class fetching something
|
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
|
@classmethod
|
||||||
def search_by_query(cls, query: str) -> List[MusicObject]:
|
def search_by_query(cls, query: str) -> List[MusicObject]:
|
||||||
"""
|
"""
|
||||||
|
18
src/music_kraken/pages/encyclopaedia_metallum.py
Normal file
18
src/music_kraken/pages/encyclopaedia_metallum.py
Normal 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
|
Loading…
Reference in New Issue
Block a user