From 486da4b43cf86e0253a442d9edf1bf5bbd34e8a8 Mon Sep 17 00:00:00 2001 From: Hellow2 Date: Wed, 24 May 2023 17:32:22 +0200 Subject: [PATCH] musify --- .VSCodeCounter/2023-02-27_12-22-06/details.md | 78 -- .../2023-02-27_12-22-06/diff-details.md | 49 - .VSCodeCounter/2023-02-27_12-22-06/diff.csv | 36 - .VSCodeCounter/2023-02-27_12-22-06/diff.md | 30 - .VSCodeCounter/2023-02-27_12-22-06/diff.txt | 67 -- .../2023-02-27_12-22-06/results.csv | 65 -- .../2023-02-27_12-22-06/results.json | 1 - .VSCodeCounter/2023-02-27_12-22-06/results.md | 40 - .../2023-02-27_12-22-06/results.txt | 106 -- .VSCodeCounter/2023-05-24_11-17-57/details.md | 104 ++ .../2023-05-24_11-17-57/diff-details.md | 76 ++ .VSCodeCounter/2023-05-24_11-17-57/diff.csv | 63 ++ .VSCodeCounter/2023-05-24_11-17-57/diff.md | 40 + .VSCodeCounter/2023-05-24_11-17-57/diff.txt | 104 ++ .../2023-05-24_11-17-57/results.csv | 91 ++ .../2023-05-24_11-17-57/results.json | 1 + .VSCodeCounter/2023-05-24_11-17-57/results.md | 46 + .../2023-05-24_11-17-57/results.txt | 138 +++ src/music_kraken/pages/musify.py | 1000 +++++++++-------- 19 files changed, 1177 insertions(+), 958 deletions(-) delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/details.md delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/diff-details.md delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/diff.csv delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/diff.md delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/diff.txt delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/results.csv delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/results.json delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/results.md delete mode 100644 .VSCodeCounter/2023-02-27_12-22-06/results.txt create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/details.md create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/diff-details.md create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/diff.csv create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/diff.md create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/diff.txt create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/results.csv create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/results.json create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/results.md create mode 100644 .VSCodeCounter/2023-05-24_11-17-57/results.txt diff --git a/.VSCodeCounter/2023-02-27_12-22-06/details.md b/.VSCodeCounter/2023-02-27_12-22-06/details.md deleted file mode 100644 index 323f8aa..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/details.md +++ /dev/null @@ -1,78 +0,0 @@ -# Details - -Date : 2023-02-27 12:22:06 - -Directory /home/lars/Projects/music-downloader/src - -Total : 63 files, 4095 codes, 1060 comments, 1216 blanks, all 6371 lines - -[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) - -## Files -| filename | language | code | comment | blank | total | -| :--- | :--- | ---: | ---: | ---: | ---: | -| [src/__init__.py](/src/__init__.py) | Python | 0 | 0 | 1 | 1 | -| [src/create_custom_objects.py](/src/create_custom_objects.py) | Python | 80 | 3 | 18 | 101 | -| [src/metal_archives.py](/src/metal_archives.py) | Python | 48 | 4 | 15 | 67 | -| [src/music_kraken/__init__.py](/src/music_kraken/__init__.py) | Python | 57 | 8 | 25 | 90 | -| [src/music_kraken/__main__.py](/src/music_kraken/__main__.py) | Python | 3 | 2 | 3 | 8 | -| [src/music_kraken/database/__init__.py](/src/music_kraken/database/__init__.py) | Python | 18 | 0 | 5 | 23 | -| [src/music_kraken/database/data_models.py](/src/music_kraken/database/data_models.py) | Python | 116 | 23 | 49 | 188 | -| [src/music_kraken/database/database.py](/src/music_kraken/database/database.py) | Python | 84 | 48 | 26 | 158 | -| [src/music_kraken/database/object_cache.py](/src/music_kraken/database/object_cache.py) | Python | 35 | 56 | 16 | 107 | -| [src/music_kraken/database/old_database.py](/src/music_kraken/database/old_database.py) | Python | 432 | 154 | 115 | 701 | -| [src/music_kraken/database/read.py](/src/music_kraken/database/read.py) | Python | 0 | 0 | 1 | 1 | -| [src/music_kraken/database/temp_database.py](/src/music_kraken/database/temp_database.py) | Python | 12 | 0 | 8 | 20 | -| [src/music_kraken/database/write.py](/src/music_kraken/database/write.py) | Python | 168 | 62 | 55 | 285 | -| [src/music_kraken/not_used_anymore/__init__.py](/src/music_kraken/not_used_anymore/__init__.py) | Python | 0 | 0 | 3 | 3 | -| [src/music_kraken/not_used_anymore/fetch_audio.py](/src/music_kraken/not_used_anymore/fetch_audio.py) | Python | 75 | 12 | 20 | 107 | -| [src/music_kraken/not_used_anymore/fetch_source.py](/src/music_kraken/not_used_anymore/fetch_source.py) | Python | 54 | 1 | 16 | 71 | -| [src/music_kraken/not_used_anymore/metadata/__init__.py](/src/music_kraken/not_used_anymore/metadata/__init__.py) | Python | 6 | 0 | 2 | 8 | -| [src/music_kraken/not_used_anymore/metadata/metadata_fetch.py](/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py) | Python | 257 | 24 | 65 | 346 | -| [src/music_kraken/not_used_anymore/metadata/metadata_search.py](/src/music_kraken/not_used_anymore/metadata/metadata_search.py) | Python | 253 | 40 | 72 | 365 | -| [src/music_kraken/not_used_anymore/metadata/sources/__init__.py](/src/music_kraken/not_used_anymore/metadata/sources/__init__.py) | Python | 3 | 0 | 2 | 5 | -| [src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py](/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py) | Python | 42 | 6 | 12 | 60 | -| [src/music_kraken/not_used_anymore/sources/__init__.py](/src/music_kraken/not_used_anymore/sources/__init__.py) | Python | 0 | 0 | 1 | 1 | -| [src/music_kraken/not_used_anymore/sources/genius.py](/src/music_kraken/not_used_anymore/sources/genius.py) | Python | 115 | 16 | 42 | 173 | -| [src/music_kraken/not_used_anymore/sources/local_files.py](/src/music_kraken/not_used_anymore/sources/local_files.py) | Python | 40 | 0 | 18 | 58 | -| [src/music_kraken/not_used_anymore/sources/musify.py](/src/music_kraken/not_used_anymore/sources/musify.py) | Python | 136 | 9 | 37 | 182 | -| [src/music_kraken/not_used_anymore/sources/source.py](/src/music_kraken/not_used_anymore/sources/source.py) | Python | 11 | 5 | 8 | 24 | -| [src/music_kraken/not_used_anymore/sources/youtube.py](/src/music_kraken/not_used_anymore/sources/youtube.py) | Python | 71 | 4 | 24 | 99 | -| [src/music_kraken/objects/__init__.py](/src/music_kraken/objects/__init__.py) | Python | 23 | 0 | 7 | 30 | -| [src/music_kraken/objects/album.py](/src/music_kraken/objects/album.py) | Python | 15 | 6 | 5 | 26 | -| [src/music_kraken/objects/artist.py](/src/music_kraken/objects/artist.py) | Python | 18 | 0 | 5 | 23 | -| [src/music_kraken/objects/collection.py](/src/music_kraken/objects/collection.py) | Python | 52 | 15 | 24 | 91 | -| [src/music_kraken/objects/formatted_text.py](/src/music_kraken/objects/formatted_text.py) | Python | 53 | 57 | 20 | 130 | -| [src/music_kraken/objects/lyrics.py](/src/music_kraken/objects/lyrics.py) | Python | 21 | 0 | 7 | 28 | -| [src/music_kraken/objects/metadata.py](/src/music_kraken/objects/metadata.py) | Python | 262 | 68 | 63 | 393 | -| [src/music_kraken/objects/parents.py](/src/music_kraken/objects/parents.py) | Python | 22 | 15 | 12 | 49 | -| [src/music_kraken/objects/song.py](/src/music_kraken/objects/song.py) | Python | 332 | 81 | 89 | 502 | -| [src/music_kraken/objects/source.py](/src/music_kraken/objects/source.py) | Python | 116 | 38 | 41 | 195 | -| [src/music_kraken/objects/target.py](/src/music_kraken/objects/target.py) | Python | 22 | 7 | 7 | 36 | -| [src/music_kraken/pages/__init__.py](/src/music_kraken/pages/__init__.py) | Python | 7 | 0 | 5 | 12 | -| [src/music_kraken/pages/abstract.py](/src/music_kraken/pages/abstract.py) | Python | 73 | 68 | 27 | 168 | -| [src/music_kraken/pages/encyclopaedia_metallum.py](/src/music_kraken/pages/encyclopaedia_metallum.py) | Python | 341 | 66 | 91 | 498 | -| [src/music_kraken/pages/youtube.py](/src/music_kraken/pages/youtube.py) | Python | 25 | 16 | 6 | 47 | -| [src/music_kraken/static_files/new_db.sql](/src/music_kraken/static_files/new_db.sql) | SQLite | 72 | 0 | 10 | 82 | -| [src/music_kraken/static_files/temp_database_structure.sql](/src/music_kraken/static_files/temp_database_structure.sql) | SQLite | 135 | 0 | 10 | 145 | -| [src/music_kraken/tagging/__init__.py](/src/music_kraken/tagging/__init__.py) | Python | 8 | 0 | 2 | 10 | -| [src/music_kraken/tagging/id3.py](/src/music_kraken/tagging/id3.py) | Python | 51 | 4 | 20 | 75 | -| [src/music_kraken/target/__init__.py](/src/music_kraken/target/__init__.py) | Python | 4 | 0 | 2 | 6 | -| [src/music_kraken/target/set_target.py](/src/music_kraken/target/set_target.py) | Python | 37 | 7 | 18 | 62 | -| [src/music_kraken/utils/__init__.py](/src/music_kraken/utils/__init__.py) | Python | 1 | 1 | 1 | 3 | -| [src/music_kraken/utils/functions.py](/src/music_kraken/utils/functions.py) | Python | 3 | 0 | 1 | 4 | -| [src/music_kraken/utils/object_handeling.py](/src/music_kraken/utils/object_handeling.py) | Python | 19 | 0 | 6 | 25 | -| [src/music_kraken/utils/phonetic_compares.py](/src/music_kraken/utils/phonetic_compares.py) | Python | 39 | 2 | 17 | 58 | -| [src/music_kraken/utils/shared.py](/src/music_kraken/utils/shared.py) | Python | 62 | 3 | 10 | 75 | -| [src/music_kraken/utils/string_processing.py](/src/music_kraken/utils/string_processing.py) | Python | 2 | 5 | 2 | 9 | -| [src/music_kraken_cli.py](/src/music_kraken_cli.py) | Python | 3 | 0 | 3 | 6 | -| [src/music_kraken_gtk.py](/src/music_kraken_gtk.py) | Python | 3 | 0 | 2 | 5 | -| [src/test.db](/src/test.db) | Database | 91 | 0 | 1 | 92 | -| [src/tests/__init__.py](/src/tests/__init__.py) | Python | 0 | 0 | 1 | 1 | -| [src/tests/conftest.py](/src/tests/conftest.py) | Python | 3 | 1 | 2 | 6 | -| [src/tests/example_data_objects.py](/src/tests/example_data_objects.py) | Python | 36 | 5 | 6 | 47 | -| [src/try-programming-interface.py](/src/try-programming-interface.py) | Python | 14 | 98 | 22 | 134 | -| [src/try.py](/src/try.py) | Python | 1 | 0 | 3 | 4 | -| [src/try_python.py](/src/try_python.py) | Python | 13 | 20 | 9 | 42 | - -[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/diff-details.md b/.VSCodeCounter/2023-02-27_12-22-06/diff-details.md deleted file mode 100644 index 94a033f..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/diff-details.md +++ /dev/null @@ -1,49 +0,0 @@ -# Diff Details - -Date : 2023-02-27 12:22:06 - -Directory /home/lars/Projects/music-downloader/src - -Total : 34 files, 520 codes, 285 comments, 188 blanks, all 993 lines - -[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details - -## Files -| filename | language | code | comment | blank | total | -| :--- | :--- | ---: | ---: | ---: | ---: | -| [src/metal_archives.py](/src/metal_archives.py) | Python | 3 | -2 | -2 | -1 | -| [src/music_kraken/__init__.py](/src/music_kraken/__init__.py) | Python | -6 | -18 | -8 | -32 | -| [src/music_kraken/database/data_models.py](/src/music_kraken/database/data_models.py) | Python | 116 | 23 | 49 | 188 | -| [src/music_kraken/database/database.py](/src/music_kraken/database/database.py) | Python | -345 | -64 | -85 | -494 | -| [src/music_kraken/database/object_cache.py](/src/music_kraken/database/object_cache.py) | Python | 35 | 56 | 16 | 107 | -| [src/music_kraken/database/objects/__init__.py](/src/music_kraken/database/objects/__init__.py) | Python | -20 | 0 | -7 | -27 | -| [src/music_kraken/database/objects/artist.py](/src/music_kraken/database/objects/artist.py) | Python | -18 | 0 | -5 | -23 | -| [src/music_kraken/database/objects/formatted_text.py](/src/music_kraken/database/objects/formatted_text.py) | Python | -48 | -57 | -16 | -121 | -| [src/music_kraken/database/objects/metadata.py](/src/music_kraken/database/objects/metadata.py) | Python | -251 | -68 | -61 | -380 | -| [src/music_kraken/database/objects/parents.py](/src/music_kraken/database/objects/parents.py) | Python | -40 | -8 | -19 | -67 | -| [src/music_kraken/database/objects/song.py](/src/music_kraken/database/objects/song.py) | Python | -323 | -64 | -85 | -472 | -| [src/music_kraken/database/objects/source.py](/src/music_kraken/database/objects/source.py) | Python | -116 | -38 | -41 | -195 | -| [src/music_kraken/database/old_database.py](/src/music_kraken/database/old_database.py) | Python | 432 | 154 | 115 | 701 | -| [src/music_kraken/database/read.py](/src/music_kraken/database/read.py) | Python | 0 | 0 | 1 | 1 | -| [src/music_kraken/database/write.py](/src/music_kraken/database/write.py) | Python | 168 | 62 | 55 | 285 | -| [src/music_kraken/objects/__init__.py](/src/music_kraken/objects/__init__.py) | Python | 23 | 0 | 7 | 30 | -| [src/music_kraken/objects/album.py](/src/music_kraken/objects/album.py) | Python | 15 | 6 | 5 | 26 | -| [src/music_kraken/objects/artist.py](/src/music_kraken/objects/artist.py) | Python | 18 | 0 | 5 | 23 | -| [src/music_kraken/objects/collection.py](/src/music_kraken/objects/collection.py) | Python | 52 | 15 | 24 | 91 | -| [src/music_kraken/objects/formatted_text.py](/src/music_kraken/objects/formatted_text.py) | Python | 53 | 57 | 20 | 130 | -| [src/music_kraken/objects/lyrics.py](/src/music_kraken/objects/lyrics.py) | Python | 21 | 0 | 7 | 28 | -| [src/music_kraken/objects/metadata.py](/src/music_kraken/objects/metadata.py) | Python | 262 | 68 | 63 | 393 | -| [src/music_kraken/objects/parents.py](/src/music_kraken/objects/parents.py) | Python | 22 | 15 | 12 | 49 | -| [src/music_kraken/objects/song.py](/src/music_kraken/objects/song.py) | Python | 332 | 81 | 89 | 502 | -| [src/music_kraken/objects/source.py](/src/music_kraken/objects/source.py) | Python | 116 | 38 | 41 | 195 | -| [src/music_kraken/objects/target.py](/src/music_kraken/objects/target.py) | Python | 22 | 7 | 7 | 36 | -| [src/music_kraken/pages/abstract.py](/src/music_kraken/pages/abstract.py) | Python | 3 | 0 | 0 | 3 | -| [src/music_kraken/pages/encyclopaedia_metallum.py](/src/music_kraken/pages/encyclopaedia_metallum.py) | Python | 42 | 6 | 15 | 63 | -| [src/music_kraken_cli.py](/src/music_kraken_cli.py) | Python | -88 | -9 | -29 | -126 | -| [src/tests/__init__.py](/src/tests/__init__.py) | Python | 0 | 0 | 1 | 1 | -| [src/tests/conftest.py](/src/tests/conftest.py) | Python | 3 | 1 | 2 | 6 | -| [src/tests/example_data_objects.py](/src/tests/example_data_objects.py) | Python | 36 | 5 | 6 | 47 | -| [src/try.py](/src/try.py) | Python | 1 | 0 | 3 | 4 | -| [src/try_python.py](/src/try_python.py) | Python | 0 | 19 | 3 | 22 | - -[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/diff.csv b/.VSCodeCounter/2023-02-27_12-22-06/diff.csv deleted file mode 100644 index f377d2d..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/diff.csv +++ /dev/null @@ -1,36 +0,0 @@ -"filename", "language", "Python", "comment", "blank", "total" -"/home/lars/Projects/music-downloader/src/metal_archives.py", "Python", 3, -2, -2, -1 -"/home/lars/Projects/music-downloader/src/music_kraken/__init__.py", "Python", -6, -18, -8, -32 -"/home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py", "Python", 116, 23, 49, 188 -"/home/lars/Projects/music-downloader/src/music_kraken/database/database.py", "Python", -345, -64, -85, -494 -"/home/lars/Projects/music-downloader/src/music_kraken/database/object_cache.py", "Python", 35, 56, 16, 107 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/__init__.py", "Python", -20, 0, -7, -27 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/artist.py", "Python", -18, 0, -5, -23 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/formatted_text.py", "Python", -48, -57, -16, -121 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/metadata.py", "Python", -251, -68, -61, -380 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/parents.py", "Python", -40, -8, -19, -67 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/song.py", "Python", -323, -64, -85, -472 -"/home/lars/Projects/music-downloader/src/music_kraken/database/objects/source.py", "Python", -116, -38, -41, -195 -"/home/lars/Projects/music-downloader/src/music_kraken/database/old_database.py", "Python", 432, 154, 115, 701 -"/home/lars/Projects/music-downloader/src/music_kraken/database/read.py", "Python", 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/music_kraken/database/write.py", "Python", 168, 62, 55, 285 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py", "Python", 23, 0, 7, 30 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/album.py", "Python", 15, 6, 5, 26 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/artist.py", "Python", 18, 0, 5, 23 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py", "Python", 52, 15, 24, 91 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py", "Python", 53, 57, 20, 130 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py", "Python", 21, 0, 7, 28 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py", "Python", 262, 68, 63, 393 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py", "Python", 22, 15, 12, 49 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/song.py", "Python", 332, 81, 89, 502 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/source.py", "Python", 116, 38, 41, 195 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/target.py", "Python", 22, 7, 7, 36 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py", "Python", 3, 0, 0, 3 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py", "Python", 42, 6, 15, 63 -"/home/lars/Projects/music-downloader/src/music_kraken_cli.py", "Python", -88, -9, -29, -126 -"/home/lars/Projects/music-downloader/src/tests/__init__.py", "Python", 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/tests/conftest.py", "Python", 3, 1, 2, 6 -"/home/lars/Projects/music-downloader/src/tests/example_data_objects.py", "Python", 36, 5, 6, 47 -"/home/lars/Projects/music-downloader/src/try.py", "Python", 1, 0, 3, 4 -"/home/lars/Projects/music-downloader/src/try_python.py", "Python", 0, 19, 3, 22 -"Total", "-", 520, 285, 188, 993 \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/diff.md b/.VSCodeCounter/2023-02-27_12-22-06/diff.md deleted file mode 100644 index ab5ef72..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/diff.md +++ /dev/null @@ -1,30 +0,0 @@ -# Diff Summary - -Date : 2023-02-27 12:22:06 - -Directory /home/lars/Projects/music-downloader/src - -Total : 34 files, 520 codes, 285 comments, 188 blanks, all 993 lines - -[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) - -## Languages -| language | files | code | comment | blank | total | -| :--- | ---: | ---: | ---: | ---: | ---: | -| Python | 34 | 520 | 285 | 188 | 993 | - -## Directories -| path | files | code | comment | blank | total | -| :--- | ---: | ---: | ---: | ---: | ---: | -| . | 34 | 520 | 285 | 188 | 993 | -| . (Files) | 4 | -84 | 8 | -25 | -101 | -| music_kraken | 27 | 565 | 271 | 204 | 1,040 | -| music_kraken (Files) | 1 | -6 | -18 | -8 | -32 | -| music_kraken/database | 13 | -410 | -4 | -83 | -497 | -| music_kraken/database (Files) | 6 | 406 | 231 | 151 | 788 | -| music_kraken/database/objects | 7 | -816 | -235 | -234 | -1,285 | -| music_kraken/objects | 11 | 936 | 287 | 280 | 1,503 | -| music_kraken/pages | 2 | 45 | 6 | 15 | 66 | -| tests | 3 | 39 | 6 | 9 | 54 | - -[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/diff.txt b/.VSCodeCounter/2023-02-27_12-22-06/diff.txt deleted file mode 100644 index fe120cc..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/diff.txt +++ /dev/null @@ -1,67 +0,0 @@ -Date : 2023-02-27 12:22:06 -Directory : /home/lars/Projects/music-downloader/src -Total : 34 files, 520 codes, 285 comments, 188 blanks, all 993 lines - -Languages -+----------+------------+------------+------------+------------+------------+ -| language | files | code | comment | blank | total | -+----------+------------+------------+------------+------------+------------+ -| Python | 34 | 520 | 285 | 188 | 993 | -+----------+------------+------------+------------+------------+------------+ - -Directories -+------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ -| path | files | code | comment | blank | total | -+------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ -| . | 34 | 520 | 285 | 188 | 993 | -| . (Files) | 4 | -84 | 8 | -25 | -101 | -| music_kraken | 27 | 565 | 271 | 204 | 1,040 | -| music_kraken (Files) | 1 | -6 | -18 | -8 | -32 | -| music_kraken/database | 13 | -410 | -4 | -83 | -497 | -| music_kraken/database (Files) | 6 | 406 | 231 | 151 | 788 | -| music_kraken/database/objects | 7 | -816 | -235 | -234 | -1,285 | -| music_kraken/objects | 11 | 936 | 287 | 280 | 1,503 | -| music_kraken/pages | 2 | 45 | 6 | 15 | 66 | -| tests | 3 | 39 | 6 | 9 | 54 | -+------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ - -Files -+------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ -| filename | language | code | comment | blank | total | -+------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ -| /home/lars/Projects/music-downloader/src/metal_archives.py | Python | 3 | -2 | -2 | -1 | -| /home/lars/Projects/music-downloader/src/music_kraken/__init__.py | Python | -6 | -18 | -8 | -32 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py | Python | 116 | 23 | 49 | 188 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/database.py | Python | -345 | -64 | -85 | -494 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/object_cache.py | Python | 35 | 56 | 16 | 107 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/__init__.py | Python | -20 | 0 | -7 | -27 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/artist.py | Python | -18 | 0 | -5 | -23 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/formatted_text.py | Python | -48 | -57 | -16 | -121 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/metadata.py | Python | -251 | -68 | -61 | -380 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/parents.py | Python | -40 | -8 | -19 | -67 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/song.py | Python | -323 | -64 | -85 | -472 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/objects/source.py | Python | -116 | -38 | -41 | -195 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/old_database.py | Python | 432 | 154 | 115 | 701 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/read.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/write.py | Python | 168 | 62 | 55 | 285 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py | Python | 23 | 0 | 7 | 30 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/album.py | Python | 15 | 6 | 5 | 26 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/artist.py | Python | 18 | 0 | 5 | 23 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py | Python | 52 | 15 | 24 | 91 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py | Python | 53 | 57 | 20 | 130 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py | Python | 21 | 0 | 7 | 28 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py | Python | 262 | 68 | 63 | 393 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py | Python | 22 | 15 | 12 | 49 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/song.py | Python | 332 | 81 | 89 | 502 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/source.py | Python | 116 | 38 | 41 | 195 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/target.py | Python | 22 | 7 | 7 | 36 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py | Python | 3 | 0 | 0 | 3 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py | Python | 42 | 6 | 15 | 63 | -| /home/lars/Projects/music-downloader/src/music_kraken_cli.py | Python | -88 | -9 | -29 | -126 | -| /home/lars/Projects/music-downloader/src/tests/__init__.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/tests/conftest.py | Python | 3 | 1 | 2 | 6 | -| /home/lars/Projects/music-downloader/src/tests/example_data_objects.py | Python | 36 | 5 | 6 | 47 | -| /home/lars/Projects/music-downloader/src/try.py | Python | 1 | 0 | 3 | 4 | -| /home/lars/Projects/music-downloader/src/try_python.py | Python | 0 | 19 | 3 | 22 | -| Total | | 520 | 285 | 188 | 993 | -+------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/results.csv b/.VSCodeCounter/2023-02-27_12-22-06/results.csv deleted file mode 100644 index b1cd8bb..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/results.csv +++ /dev/null @@ -1,65 +0,0 @@ -"filename", "language", "Python", "SQLite", "Database", "comment", "blank", "total" -"/home/lars/Projects/music-downloader/src/__init__.py", "Python", 0, 0, 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/create_custom_objects.py", "Python", 80, 0, 0, 3, 18, 101 -"/home/lars/Projects/music-downloader/src/metal_archives.py", "Python", 48, 0, 0, 4, 15, 67 -"/home/lars/Projects/music-downloader/src/music_kraken/__init__.py", "Python", 57, 0, 0, 8, 25, 90 -"/home/lars/Projects/music-downloader/src/music_kraken/__main__.py", "Python", 3, 0, 0, 2, 3, 8 -"/home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py", "Python", 18, 0, 0, 0, 5, 23 -"/home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py", "Python", 116, 0, 0, 23, 49, 188 -"/home/lars/Projects/music-downloader/src/music_kraken/database/database.py", "Python", 84, 0, 0, 48, 26, 158 -"/home/lars/Projects/music-downloader/src/music_kraken/database/object_cache.py", "Python", 35, 0, 0, 56, 16, 107 -"/home/lars/Projects/music-downloader/src/music_kraken/database/old_database.py", "Python", 432, 0, 0, 154, 115, 701 -"/home/lars/Projects/music-downloader/src/music_kraken/database/read.py", "Python", 0, 0, 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/music_kraken/database/temp_database.py", "Python", 12, 0, 0, 0, 8, 20 -"/home/lars/Projects/music-downloader/src/music_kraken/database/write.py", "Python", 168, 0, 0, 62, 55, 285 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py", "Python", 0, 0, 0, 0, 3, 3 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py", "Python", 75, 0, 0, 12, 20, 107 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py", "Python", 54, 0, 0, 1, 16, 71 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py", "Python", 6, 0, 0, 0, 2, 8 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py", "Python", 257, 0, 0, 24, 65, 346 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py", "Python", 253, 0, 0, 40, 72, 365 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py", "Python", 3, 0, 0, 0, 2, 5 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py", "Python", 42, 0, 0, 6, 12, 60 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py", "Python", 0, 0, 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py", "Python", 115, 0, 0, 16, 42, 173 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py", "Python", 40, 0, 0, 0, 18, 58 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py", "Python", 136, 0, 0, 9, 37, 182 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py", "Python", 11, 0, 0, 5, 8, 24 -"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py", "Python", 71, 0, 0, 4, 24, 99 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py", "Python", 23, 0, 0, 0, 7, 30 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/album.py", "Python", 15, 0, 0, 6, 5, 26 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/artist.py", "Python", 18, 0, 0, 0, 5, 23 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py", "Python", 52, 0, 0, 15, 24, 91 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py", "Python", 53, 0, 0, 57, 20, 130 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py", "Python", 21, 0, 0, 0, 7, 28 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py", "Python", 262, 0, 0, 68, 63, 393 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py", "Python", 22, 0, 0, 15, 12, 49 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/song.py", "Python", 332, 0, 0, 81, 89, 502 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/source.py", "Python", 116, 0, 0, 38, 41, 195 -"/home/lars/Projects/music-downloader/src/music_kraken/objects/target.py", "Python", 22, 0, 0, 7, 7, 36 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py", "Python", 7, 0, 0, 0, 5, 12 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py", "Python", 73, 0, 0, 68, 27, 168 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py", "Python", 341, 0, 0, 66, 91, 498 -"/home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py", "Python", 25, 0, 0, 16, 6, 47 -"/home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql", "SQLite", 0, 72, 0, 0, 10, 82 -"/home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql", "SQLite", 0, 135, 0, 0, 10, 145 -"/home/lars/Projects/music-downloader/src/music_kraken/tagging/__init__.py", "Python", 8, 0, 0, 0, 2, 10 -"/home/lars/Projects/music-downloader/src/music_kraken/tagging/id3.py", "Python", 51, 0, 0, 4, 20, 75 -"/home/lars/Projects/music-downloader/src/music_kraken/target/__init__.py", "Python", 4, 0, 0, 0, 2, 6 -"/home/lars/Projects/music-downloader/src/music_kraken/target/set_target.py", "Python", 37, 0, 0, 7, 18, 62 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py", "Python", 1, 0, 0, 1, 1, 3 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py", "Python", 3, 0, 0, 0, 1, 4 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py", "Python", 19, 0, 0, 0, 6, 25 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py", "Python", 39, 0, 0, 2, 17, 58 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py", "Python", 62, 0, 0, 3, 10, 75 -"/home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py", "Python", 2, 0, 0, 5, 2, 9 -"/home/lars/Projects/music-downloader/src/music_kraken_cli.py", "Python", 3, 0, 0, 0, 3, 6 -"/home/lars/Projects/music-downloader/src/music_kraken_gtk.py", "Python", 3, 0, 0, 0, 2, 5 -"/home/lars/Projects/music-downloader/src/test.db", "Database", 0, 0, 91, 0, 1, 92 -"/home/lars/Projects/music-downloader/src/tests/__init__.py", "Python", 0, 0, 0, 0, 1, 1 -"/home/lars/Projects/music-downloader/src/tests/conftest.py", "Python", 3, 0, 0, 1, 2, 6 -"/home/lars/Projects/music-downloader/src/tests/example_data_objects.py", "Python", 36, 0, 0, 5, 6, 47 -"/home/lars/Projects/music-downloader/src/try-programming-interface.py", "Python", 14, 0, 0, 98, 22, 134 -"/home/lars/Projects/music-downloader/src/try.py", "Python", 1, 0, 0, 0, 3, 4 -"/home/lars/Projects/music-downloader/src/try_python.py", "Python", 13, 0, 0, 20, 9, 42 -"Total", "-", 3797, 207, 91, 1060, 1216, 6371 \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/results.json b/.VSCodeCounter/2023-02-27_12-22-06/results.json deleted file mode 100644 index 7e8791c..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/results.json +++ /dev/null @@ -1 +0,0 @@ -{"file:///home/lars/Projects/music-downloader/src/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/try_python.py":{"language":"Python","code":13,"comment":20,"blank":9},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/database.py":{"language":"Python","code":84,"comment":48,"blank":26},"file:///home/lars/Projects/music-downloader/src/music_kraken/__init__.py":{"language":"Python","code":57,"comment":8,"blank":25},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py":{"language":"Python","code":116,"comment":23,"blank":49},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/read.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/write.py":{"language":"Python","code":168,"comment":62,"blank":55},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/old_database.py":{"language":"Python","code":432,"comment":154,"blank":115},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py":{"language":"Python","code":18,"comment":0,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/object_cache.py":{"language":"Python","code":35,"comment":56,"blank":16},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/temp_database.py":{"language":"Python","code":12,"comment":0,"blank":8},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py":{"language":"Python","code":1,"comment":1,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py":{"language":"Python","code":2,"comment":5,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py":{"language":"Python","code":19,"comment":0,"blank":6},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py":{"language":"Python","code":39,"comment":2,"blank":17},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py":{"language":"Python","code":62,"comment":3,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py":{"language":"Python","code":3,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py":{"language":"Python","code":7,"comment":0,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py":{"language":"Python","code":73,"comment":68,"blank":27},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py":{"language":"Python","code":25,"comment":16,"blank":6},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py":{"language":"Python","code":23,"comment":0,"blank":7},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/song.py":{"language":"Python","code":332,"comment":81,"blank":89},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/album.py":{"language":"Python","code":15,"comment":6,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py":{"language":"Python","code":341,"comment":66,"blank":91},"file:///home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql":{"language":"SQLite","code":72,"comment":0,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql":{"language":"SQLite","code":135,"comment":0,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/source.py":{"language":"Python","code":116,"comment":38,"blank":41},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py":{"language":"Python","code":262,"comment":68,"blank":63},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/target.py":{"language":"Python","code":22,"comment":7,"blank":7},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py":{"language":"Python","code":22,"comment":15,"blank":12},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py":{"language":"Python","code":52,"comment":15,"blank":24},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py":{"language":"Python","code":21,"comment":0,"blank":7},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py":{"language":"Python","code":53,"comment":57,"blank":20},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/artist.py":{"language":"Python","code":18,"comment":0,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/tagging/__init__.py":{"language":"Python","code":8,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/__main__.py":{"language":"Python","code":3,"comment":2,"blank":3},"file:///home/lars/Projects/music-downloader/src/music_kraken/target/__init__.py":{"language":"Python","code":4,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/target/set_target.py":{"language":"Python","code":37,"comment":7,"blank":18},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py":{"language":"Python","code":0,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py":{"language":"Python","code":11,"comment":5,"blank":8},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py":{"language":"Python","code":75,"comment":12,"blank":20},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py":{"language":"Python","code":115,"comment":16,"blank":42},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py":{"language":"Python","code":71,"comment":4,"blank":24},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py":{"language":"Python","code":136,"comment":9,"blank":37},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py":{"language":"Python","code":40,"comment":0,"blank":18},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py":{"language":"Python","code":54,"comment":1,"blank":16},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py":{"language":"Python","code":6,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py":{"language":"Python","code":253,"comment":40,"blank":72},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py":{"language":"Python","code":3,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py":{"language":"Python","code":42,"comment":6,"blank":12},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py":{"language":"Python","code":257,"comment":24,"blank":65},"file:///home/lars/Projects/music-downloader/src/test.db":{"language":"Database","code":91,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/tests/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/tests/conftest.py":{"language":"Python","code":3,"comment":1,"blank":2},"file:///home/lars/Projects/music-downloader/src/tests/example_data_objects.py":{"language":"Python","code":36,"comment":5,"blank":6},"file:///home/lars/Projects/music-downloader/src/try.py":{"language":"Python","code":1,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/metal_archives.py":{"language":"Python","code":48,"comment":4,"blank":15},"file:///home/lars/Projects/music-downloader/src/create_custom_objects.py":{"language":"Python","code":80,"comment":3,"blank":18},"file:///home/lars/Projects/music-downloader/src/music_kraken_gtk.py":{"language":"Python","code":3,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken_cli.py":{"language":"Python","code":3,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/try-programming-interface.py":{"language":"Python","code":14,"comment":98,"blank":22},"file:///home/lars/Projects/music-downloader/src/music_kraken/tagging/id3.py":{"language":"Python","code":51,"comment":4,"blank":20}} \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/results.md b/.VSCodeCounter/2023-02-27_12-22-06/results.md deleted file mode 100644 index 5b6ad3b..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/results.md +++ /dev/null @@ -1,40 +0,0 @@ -# Summary - -Date : 2023-02-27 12:22:06 - -Directory /home/lars/Projects/music-downloader/src - -Total : 63 files, 4095 codes, 1060 comments, 1216 blanks, all 6371 lines - -Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) - -## Languages -| language | files | code | comment | blank | total | -| :--- | ---: | ---: | ---: | ---: | ---: | -| Python | 60 | 3,797 | 1,060 | 1,195 | 6,052 | -| SQLite | 2 | 207 | 0 | 20 | 227 | -| Database | 1 | 91 | 0 | 1 | 92 | - -## Directories -| path | files | code | comment | blank | total | -| :--- | ---: | ---: | ---: | ---: | ---: | -| . | 63 | 4,095 | 1,060 | 1,216 | 6,371 | -| . (Files) | 9 | 253 | 125 | 74 | 452 | -| music_kraken | 51 | 3,803 | 929 | 1,133 | 5,865 | -| music_kraken (Files) | 2 | 60 | 10 | 28 | 98 | -| music_kraken/database | 8 | 865 | 343 | 275 | 1,483 | -| music_kraken/not_used_anymore | 14 | 1,063 | 117 | 322 | 1,502 | -| music_kraken/not_used_anymore (Files) | 3 | 129 | 13 | 39 | 181 | -| music_kraken/not_used_anymore/metadata | 5 | 561 | 70 | 153 | 784 | -| music_kraken/not_used_anymore/metadata (Files) | 3 | 516 | 64 | 139 | 719 | -| music_kraken/not_used_anymore/metadata/sources | 2 | 45 | 6 | 14 | 65 | -| music_kraken/not_used_anymore/sources | 6 | 373 | 34 | 130 | 537 | -| music_kraken/objects | 11 | 936 | 287 | 280 | 1,503 | -| music_kraken/pages | 4 | 446 | 150 | 129 | 725 | -| music_kraken/static_files | 2 | 207 | 0 | 20 | 227 | -| music_kraken/tagging | 2 | 59 | 4 | 22 | 85 | -| music_kraken/target | 2 | 41 | 7 | 20 | 68 | -| music_kraken/utils | 6 | 126 | 11 | 37 | 174 | -| tests | 3 | 39 | 6 | 9 | 54 | - -Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-02-27_12-22-06/results.txt b/.VSCodeCounter/2023-02-27_12-22-06/results.txt deleted file mode 100644 index 1c4a102..0000000 --- a/.VSCodeCounter/2023-02-27_12-22-06/results.txt +++ /dev/null @@ -1,106 +0,0 @@ -Date : 2023-02-27 12:22:06 -Directory : /home/lars/Projects/music-downloader/src -Total : 63 files, 4095 codes, 1060 comments, 1216 blanks, all 6371 lines - -Languages -+----------+------------+------------+------------+------------+------------+ -| language | files | code | comment | blank | total | -+----------+------------+------------+------------+------------+------------+ -| Python | 60 | 3,797 | 1,060 | 1,195 | 6,052 | -| SQLite | 2 | 207 | 0 | 20 | 227 | -| Database | 1 | 91 | 0 | 1 | 92 | -+----------+------------+------------+------------+------------+------------+ - -Directories -+--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ -| path | files | code | comment | blank | total | -+--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ -| . | 63 | 4,095 | 1,060 | 1,216 | 6,371 | -| . (Files) | 9 | 253 | 125 | 74 | 452 | -| music_kraken | 51 | 3,803 | 929 | 1,133 | 5,865 | -| music_kraken (Files) | 2 | 60 | 10 | 28 | 98 | -| music_kraken/database | 8 | 865 | 343 | 275 | 1,483 | -| music_kraken/not_used_anymore | 14 | 1,063 | 117 | 322 | 1,502 | -| music_kraken/not_used_anymore (Files) | 3 | 129 | 13 | 39 | 181 | -| music_kraken/not_used_anymore/metadata | 5 | 561 | 70 | 153 | 784 | -| music_kraken/not_used_anymore/metadata (Files) | 3 | 516 | 64 | 139 | 719 | -| music_kraken/not_used_anymore/metadata/sources | 2 | 45 | 6 | 14 | 65 | -| music_kraken/not_used_anymore/sources | 6 | 373 | 34 | 130 | 537 | -| music_kraken/objects | 11 | 936 | 287 | 280 | 1,503 | -| music_kraken/pages | 4 | 446 | 150 | 129 | 725 | -| music_kraken/static_files | 2 | 207 | 0 | 20 | 227 | -| music_kraken/tagging | 2 | 59 | 4 | 22 | 85 | -| music_kraken/target | 2 | 41 | 7 | 20 | 68 | -| music_kraken/utils | 6 | 126 | 11 | 37 | 174 | -| tests | 3 | 39 | 6 | 9 | 54 | -+--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ - -Files -+--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ -| filename | language | code | comment | blank | total | -+--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ -| /home/lars/Projects/music-downloader/src/__init__.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/create_custom_objects.py | Python | 80 | 3 | 18 | 101 | -| /home/lars/Projects/music-downloader/src/metal_archives.py | Python | 48 | 4 | 15 | 67 | -| /home/lars/Projects/music-downloader/src/music_kraken/__init__.py | Python | 57 | 8 | 25 | 90 | -| /home/lars/Projects/music-downloader/src/music_kraken/__main__.py | Python | 3 | 2 | 3 | 8 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py | Python | 18 | 0 | 5 | 23 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py | Python | 116 | 23 | 49 | 188 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/database.py | Python | 84 | 48 | 26 | 158 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/object_cache.py | Python | 35 | 56 | 16 | 107 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/old_database.py | Python | 432 | 154 | 115 | 701 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/read.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/temp_database.py | Python | 12 | 0 | 8 | 20 | -| /home/lars/Projects/music-downloader/src/music_kraken/database/write.py | Python | 168 | 62 | 55 | 285 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py | Python | 0 | 0 | 3 | 3 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py | Python | 75 | 12 | 20 | 107 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py | Python | 54 | 1 | 16 | 71 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py | Python | 6 | 0 | 2 | 8 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py | Python | 257 | 24 | 65 | 346 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py | Python | 253 | 40 | 72 | 365 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py | Python | 3 | 0 | 2 | 5 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py | Python | 42 | 6 | 12 | 60 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py | Python | 115 | 16 | 42 | 173 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py | Python | 40 | 0 | 18 | 58 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py | Python | 136 | 9 | 37 | 182 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py | Python | 11 | 5 | 8 | 24 | -| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py | Python | 71 | 4 | 24 | 99 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py | Python | 23 | 0 | 7 | 30 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/album.py | Python | 15 | 6 | 5 | 26 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/artist.py | Python | 18 | 0 | 5 | 23 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py | Python | 52 | 15 | 24 | 91 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py | Python | 53 | 57 | 20 | 130 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py | Python | 21 | 0 | 7 | 28 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py | Python | 262 | 68 | 63 | 393 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py | Python | 22 | 15 | 12 | 49 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/song.py | Python | 332 | 81 | 89 | 502 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/source.py | Python | 116 | 38 | 41 | 195 | -| /home/lars/Projects/music-downloader/src/music_kraken/objects/target.py | Python | 22 | 7 | 7 | 36 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py | Python | 7 | 0 | 5 | 12 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py | Python | 73 | 68 | 27 | 168 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py | Python | 341 | 66 | 91 | 498 | -| /home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py | Python | 25 | 16 | 6 | 47 | -| /home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql | SQLite | 72 | 0 | 10 | 82 | -| /home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql | SQLite | 135 | 0 | 10 | 145 | -| /home/lars/Projects/music-downloader/src/music_kraken/tagging/__init__.py | Python | 8 | 0 | 2 | 10 | -| /home/lars/Projects/music-downloader/src/music_kraken/tagging/id3.py | Python | 51 | 4 | 20 | 75 | -| /home/lars/Projects/music-downloader/src/music_kraken/target/__init__.py | Python | 4 | 0 | 2 | 6 | -| /home/lars/Projects/music-downloader/src/music_kraken/target/set_target.py | Python | 37 | 7 | 18 | 62 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py | Python | 1 | 1 | 1 | 3 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py | Python | 3 | 0 | 1 | 4 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py | Python | 19 | 0 | 6 | 25 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py | Python | 39 | 2 | 17 | 58 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py | Python | 62 | 3 | 10 | 75 | -| /home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py | Python | 2 | 5 | 2 | 9 | -| /home/lars/Projects/music-downloader/src/music_kraken_cli.py | Python | 3 | 0 | 3 | 6 | -| /home/lars/Projects/music-downloader/src/music_kraken_gtk.py | Python | 3 | 0 | 2 | 5 | -| /home/lars/Projects/music-downloader/src/test.db | Database | 91 | 0 | 1 | 92 | -| /home/lars/Projects/music-downloader/src/tests/__init__.py | Python | 0 | 0 | 1 | 1 | -| /home/lars/Projects/music-downloader/src/tests/conftest.py | Python | 3 | 1 | 2 | 6 | -| /home/lars/Projects/music-downloader/src/tests/example_data_objects.py | Python | 36 | 5 | 6 | 47 | -| /home/lars/Projects/music-downloader/src/try-programming-interface.py | Python | 14 | 98 | 22 | 134 | -| /home/lars/Projects/music-downloader/src/try.py | Python | 1 | 0 | 3 | 4 | -| /home/lars/Projects/music-downloader/src/try_python.py | Python | 13 | 20 | 9 | 42 | -| Total | | 4,095 | 1,060 | 1,216 | 6,371 | -+--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/details.md b/.VSCodeCounter/2023-05-24_11-17-57/details.md new file mode 100644 index 0000000..3f7aca9 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/details.md @@ -0,0 +1,104 @@ +# Details + +Date : 2023-05-24 11:17:57 + +Directory /home/lars/Projects/music-downloader/src + +Total : 89 files, 6536 codes, 1157 comments, 1980 blanks, all 9673 lines + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [src/__init__.py](/src/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/actual_donwload.py](/src/actual_donwload.py) | Python | 43 | 2 | 18 | 63 | +| [src/create_custom_objects.py](/src/create_custom_objects.py) | Python | 58 | 0 | 6 | 64 | +| [src/metal_archives.py](/src/metal_archives.py) | Python | 30 | 0 | 12 | 42 | +| [src/music_kraken/__init__.py](/src/music_kraken/__init__.py) | Python | 189 | 21 | 60 | 270 | +| [src/music_kraken/__main__.py](/src/music_kraken/__main__.py) | Python | 88 | 3 | 21 | 112 | +| [src/music_kraken/audio/__init__.py](/src/music_kraken/audio/__init__.py) | Python | 7 | 0 | 3 | 10 | +| [src/music_kraken/audio/codec.py](/src/music_kraken/audio/codec.py) | Python | 25 | 0 | 8 | 33 | +| [src/music_kraken/audio/metadata.py](/src/music_kraken/audio/metadata.py) | Python | 60 | 4 | 24 | 88 | +| [src/music_kraken/connection/__init__.py](/src/music_kraken/connection/__init__.py) | Python | 1 | 0 | 1 | 2 | +| [src/music_kraken/connection/connection.py](/src/music_kraken/connection/connection.py) | Python | 162 | 1 | 30 | 193 | +| [src/music_kraken/connection/rotating.py](/src/music_kraken/connection/rotating.py) | Python | 27 | 3 | 14 | 44 | +| [src/music_kraken/database/__init__.py](/src/music_kraken/database/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/music_kraken/database/data_models.py](/src/music_kraken/database/data_models.py) | Python | 122 | 24 | 52 | 198 | +| [src/music_kraken/database/database.py](/src/music_kraken/database/database.py) | Python | 104 | 47 | 38 | 189 | +| [src/music_kraken/download/__init__.py](/src/music_kraken/download/__init__.py) | Python | 2 | 0 | 1 | 3 | +| [src/music_kraken/download/download.py](/src/music_kraken/download/download.py) | Python | 35 | 0 | 14 | 49 | +| [src/music_kraken/download/multiple_options.py](/src/music_kraken/download/multiple_options.py) | Python | 69 | 0 | 31 | 100 | +| [src/music_kraken/download/page_attributes.py](/src/music_kraken/download/page_attributes.py) | Python | 21 | 1 | 10 | 32 | +| [src/music_kraken/download/search.py](/src/music_kraken/download/search.py) | Python | 130 | 24 | 56 | 210 | +| [src/music_kraken/not_used_anymore/__init__.py](/src/music_kraken/not_used_anymore/__init__.py) | Python | 0 | 0 | 3 | 3 | +| [src/music_kraken/not_used_anymore/fetch_audio.py](/src/music_kraken/not_used_anymore/fetch_audio.py) | Python | 75 | 12 | 20 | 107 | +| [src/music_kraken/not_used_anymore/fetch_source.py](/src/music_kraken/not_used_anymore/fetch_source.py) | Python | 54 | 1 | 16 | 71 | +| [src/music_kraken/not_used_anymore/metadata/__init__.py](/src/music_kraken/not_used_anymore/metadata/__init__.py) | Python | 6 | 0 | 2 | 8 | +| [src/music_kraken/not_used_anymore/metadata/metadata_fetch.py](/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py) | Python | 257 | 24 | 65 | 346 | +| [src/music_kraken/not_used_anymore/metadata/metadata_search.py](/src/music_kraken/not_used_anymore/metadata/metadata_search.py) | Python | 253 | 40 | 72 | 365 | +| [src/music_kraken/not_used_anymore/metadata/sources/__init__.py](/src/music_kraken/not_used_anymore/metadata/sources/__init__.py) | Python | 3 | 0 | 2 | 5 | +| [src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py](/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py) | Python | 42 | 6 | 12 | 60 | +| [src/music_kraken/not_used_anymore/sources/__init__.py](/src/music_kraken/not_used_anymore/sources/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/music_kraken/not_used_anymore/sources/genius.py](/src/music_kraken/not_used_anymore/sources/genius.py) | Python | 115 | 16 | 42 | 173 | +| [src/music_kraken/not_used_anymore/sources/local_files.py](/src/music_kraken/not_used_anymore/sources/local_files.py) | Python | 40 | 0 | 18 | 58 | +| [src/music_kraken/not_used_anymore/sources/musify.py](/src/music_kraken/not_used_anymore/sources/musify.py) | Python | 136 | 9 | 37 | 182 | +| [src/music_kraken/not_used_anymore/sources/source.py](/src/music_kraken/not_used_anymore/sources/source.py) | Python | 11 | 5 | 8 | 24 | +| [src/music_kraken/not_used_anymore/sources/youtube.py](/src/music_kraken/not_used_anymore/sources/youtube.py) | Python | 71 | 4 | 24 | 99 | +| [src/music_kraken/objects/__init__.py](/src/music_kraken/objects/__init__.py) | Python | 14 | 0 | 5 | 19 | +| [src/music_kraken/objects/cache.py](/src/music_kraken/objects/cache.py) | Python | 37 | 56 | 18 | 111 | +| [src/music_kraken/objects/collection.py](/src/music_kraken/objects/collection.py) | Python | 91 | 31 | 39 | 161 | +| [src/music_kraken/objects/formatted_text.py](/src/music_kraken/objects/formatted_text.py) | Python | 50 | 10 | 19 | 79 | +| [src/music_kraken/objects/lyrics.py](/src/music_kraken/objects/lyrics.py) | Python | 25 | 0 | 7 | 32 | +| [src/music_kraken/objects/metadata.py](/src/music_kraken/objects/metadata.py) | Python | 261 | 62 | 61 | 384 | +| [src/music_kraken/objects/option.py](/src/music_kraken/objects/option.py) | Python | 28 | 0 | 13 | 41 | +| [src/music_kraken/objects/parents.py](/src/music_kraken/objects/parents.py) | Python | 65 | 33 | 33 | 131 | +| [src/music_kraken/objects/song.py](/src/music_kraken/objects/song.py) | Python | 473 | 113 | 115 | 701 | +| [src/music_kraken/objects/source.py](/src/music_kraken/objects/source.py) | Python | 90 | 16 | 32 | 138 | +| [src/music_kraken/objects/target.py](/src/music_kraken/objects/target.py) | Python | 63 | 15 | 23 | 101 | +| [src/music_kraken/pages/__init__.py](/src/music_kraken/pages/__init__.py) | Python | 3 | 0 | 1 | 4 | +| [src/music_kraken/pages/abstract.py](/src/music_kraken/pages/abstract.py) | Python | 357 | 34 | 103 | 494 | +| [src/music_kraken/pages/encyclopaedia_metallum.py](/src/music_kraken/pages/encyclopaedia_metallum.py) | Python | 432 | 90 | 127 | 649 | +| [src/music_kraken/pages/musify.py](/src/music_kraken/pages/musify.py) | Python | 629 | 289 | 187 | 1,105 | +| [src/music_kraken/pages/preset.py](/src/music_kraken/pages/preset.py) | Python | 43 | 1 | 16 | 60 | +| [src/music_kraken/pages/youtube.py](/src/music_kraken/pages/youtube.py) | Python | 25 | 16 | 6 | 47 | +| [src/music_kraken/static_files/new_db.sql](/src/music_kraken/static_files/new_db.sql) | SQLite | 72 | 0 | 10 | 82 | +| [src/music_kraken/static_files/temp_database_structure.sql](/src/music_kraken/static_files/temp_database_structure.sql) | SQLite | 135 | 0 | 10 | 145 | +| [src/music_kraken/utils/__init__.py](/src/music_kraken/utils/__init__.py) | Python | 2 | 1 | 2 | 5 | +| [src/music_kraken/utils/config/__init__.py](/src/music_kraken/utils/config/__init__.py) | Python | 7 | 0 | 4 | 11 | +| [src/music_kraken/utils/config/audio.py](/src/music_kraken/utils/config/audio.py) | Python | 152 | 15 | 28 | 195 | +| [src/music_kraken/utils/config/base_classes.py](/src/music_kraken/utils/config/base_classes.py) | Python | 136 | 35 | 61 | 232 | +| [src/music_kraken/utils/config/config.py](/src/music_kraken/utils/config/config.py) | Python | 92 | 16 | 30 | 138 | +| [src/music_kraken/utils/config/connection.py](/src/music_kraken/utils/config/connection.py) | Python | 81 | 2 | 15 | 98 | +| [src/music_kraken/utils/config/logging.py](/src/music_kraken/utils/config/logging.py) | Python | 104 | 4 | 17 | 125 | +| [src/music_kraken/utils/config/misc.py](/src/music_kraken/utils/config/misc.py) | Python | 40 | 0 | 9 | 49 | +| [src/music_kraken/utils/config/paths.py](/src/music_kraken/utils/config/paths.py) | Python | 40 | 0 | 13 | 53 | +| [src/music_kraken/utils/enums/__init__.py](/src/music_kraken/utils/enums/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/music_kraken/utils/enums/album.py](/src/music_kraken/utils/enums/album.py) | Python | 16 | 6 | 5 | 27 | +| [src/music_kraken/utils/enums/source.py](/src/music_kraken/utils/enums/source.py) | Python | 40 | 1 | 8 | 49 | +| [src/music_kraken/utils/exception/__init__.py](/src/music_kraken/utils/exception/__init__.py) | Python | 1 | 0 | 1 | 2 | +| [src/music_kraken/utils/exception/config.py](/src/music_kraken/utils/exception/config.py) | Python | 14 | 8 | 7 | 29 | +| [src/music_kraken/utils/functions.py](/src/music_kraken/utils/functions.py) | Python | 3 | 0 | 1 | 4 | +| [src/music_kraken/utils/object_handeling.py](/src/music_kraken/utils/object_handeling.py) | Python | 19 | 0 | 6 | 25 | +| [src/music_kraken/utils/path_manager/__init__.py](/src/music_kraken/utils/path_manager/__init__.py) | Python | 2 | 0 | 2 | 4 | +| [src/music_kraken/utils/path_manager/config_directory.py](/src/music_kraken/utils/path_manager/config_directory.py) | Python | 4 | 0 | 4 | 8 | +| [src/music_kraken/utils/path_manager/locations.py](/src/music_kraken/utils/path_manager/locations.py) | Python | 16 | 0 | 9 | 25 | +| [src/music_kraken/utils/path_manager/music_directory.py](/src/music_kraken/utils/path_manager/music_directory.py) | Python | 36 | 9 | 14 | 59 | +| [src/music_kraken/utils/phonetic_compares.py](/src/music_kraken/utils/phonetic_compares.py) | Python | 39 | 2 | 17 | 58 | +| [src/music_kraken/utils/regex.py](/src/music_kraken/utils/regex.py) | Python | 1 | 0 | 2 | 3 | +| [src/music_kraken/utils/shared.py](/src/music_kraken/utils/shared.py) | Python | 63 | 22 | 21 | 106 | +| [src/music_kraken/utils/string_processing.py](/src/music_kraken/utils/string_processing.py) | Python | 16 | 5 | 11 | 32 | +| [src/music_kraken/utils/support_classes/__init__.py](/src/music_kraken/utils/support_classes/__init__.py) | Python | 3 | 0 | 1 | 4 | +| [src/music_kraken/utils/support_classes/default_target.py](/src/music_kraken/utils/support_classes/default_target.py) | Python | 56 | 0 | 15 | 71 | +| [src/music_kraken/utils/support_classes/download_result.py](/src/music_kraken/utils/support_classes/download_result.py) | Python | 69 | 0 | 21 | 90 | +| [src/music_kraken/utils/support_classes/query.py](/src/music_kraken/utils/support_classes/query.py) | Python | 24 | 0 | 9 | 33 | +| [src/music_kraken_cli.py](/src/music_kraken_cli.py) | Python | 3 | 0 | 3 | 6 | +| [src/music_kraken_gtk.py](/src/music_kraken_gtk.py) | Python | 3 | 0 | 2 | 5 | +| [src/musify_search.py](/src/musify_search.py) | Python | 38 | 0 | 14 | 52 | +| [src/tests/__init__.py](/src/tests/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/tests/conftest.py](/src/tests/conftest.py) | Python | 3 | 1 | 2 | 6 | +| [src/tests/test_building_objects.py](/src/tests/test_building_objects.py) | Python | 81 | 1 | 13 | 95 | +| [src/tests/test_download.py](/src/tests/test_download.py) | Python | 30 | 1 | 12 | 43 | +| [src/tests/test_objects.py](/src/tests/test_objects.py) | Python | 173 | 15 | 51 | 239 | + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/diff-details.md b/.VSCodeCounter/2023-05-24_11-17-57/diff-details.md new file mode 100644 index 0000000..279a11c --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/diff-details.md @@ -0,0 +1,76 @@ +# Diff Details + +Date : 2023-05-24 11:17:57 + +Directory /home/lars/Projects/music-downloader/src + +Total : 61 files, 1280 codes, 157 comments, 437 blanks, all 1874 lines + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [src/actual_donwload.py](/src/actual_donwload.py) | Python | 6 | 2 | 1 | 9 | +| [src/music_kraken/__init__.py](/src/music_kraken/__init__.py) | Python | 103 | 9 | 32 | 144 | +| [src/music_kraken/__main__.py](/src/music_kraken/__main__.py) | Python | 85 | 3 | 18 | 106 | +| [src/music_kraken/audio/__init__.py](/src/music_kraken/audio/__init__.py) | Python | 7 | 0 | 3 | 10 | +| [src/music_kraken/audio/codec.py](/src/music_kraken/audio/codec.py) | Python | 25 | 0 | 8 | 33 | +| [src/music_kraken/audio/metadata.py](/src/music_kraken/audio/metadata.py) | Python | 60 | 4 | 24 | 88 | +| [src/music_kraken/connection/__init__.py](/src/music_kraken/connection/__init__.py) | Python | 1 | 0 | 1 | 2 | +| [src/music_kraken/connection/connection.py](/src/music_kraken/connection/connection.py) | Python | 162 | 1 | 30 | 193 | +| [src/music_kraken/connection/rotating.py](/src/music_kraken/connection/rotating.py) | Python | 27 | 3 | 14 | 44 | +| [src/music_kraken/download/__init__.py](/src/music_kraken/download/__init__.py) | Python | 2 | 0 | 1 | 3 | +| [src/music_kraken/download/download.py](/src/music_kraken/download/download.py) | Python | 35 | 0 | 14 | 49 | +| [src/music_kraken/download/multiple_options.py](/src/music_kraken/download/multiple_options.py) | Python | 69 | 0 | 31 | 100 | +| [src/music_kraken/download/page_attributes.py](/src/music_kraken/download/page_attributes.py) | Python | 21 | 1 | 10 | 32 | +| [src/music_kraken/download/search.py](/src/music_kraken/download/search.py) | Python | 130 | 24 | 56 | 210 | +| [src/music_kraken/objects/__init__.py](/src/music_kraken/objects/__init__.py) | Python | -15 | 0 | -3 | -18 | +| [src/music_kraken/objects/album.py](/src/music_kraken/objects/album.py) | Python | -16 | -6 | -5 | -27 | +| [src/music_kraken/objects/option.py](/src/music_kraken/objects/option.py) | Python | 5 | 0 | 2 | 7 | +| [src/music_kraken/objects/parents.py](/src/music_kraken/objects/parents.py) | Python | 3 | 2 | 2 | 7 | +| [src/music_kraken/objects/song.py](/src/music_kraken/objects/song.py) | Python | 37 | 20 | 16 | 73 | +| [src/music_kraken/objects/source.py](/src/music_kraken/objects/source.py) | Python | -30 | -1 | -9 | -40 | +| [src/music_kraken/objects/target.py](/src/music_kraken/objects/target.py) | Python | 5 | 4 | 2 | 11 | +| [src/music_kraken/pages/__init__.py](/src/music_kraken/pages/__init__.py) | Python | -3 | 0 | -4 | -7 | +| [src/music_kraken/pages/abstract.py](/src/music_kraken/pages/abstract.py) | Python | -71 | -10 | 0 | -81 | +| [src/music_kraken/pages/download_center/__init__.py](/src/music_kraken/pages/download_center/__init__.py) | Python | -4 | 0 | -2 | -6 | +| [src/music_kraken/pages/download_center/download.py](/src/music_kraken/pages/download_center/download.py) | Python | -33 | 0 | -13 | -46 | +| [src/music_kraken/pages/download_center/multiple_options.py](/src/music_kraken/pages/download_center/multiple_options.py) | Python | -69 | 0 | -31 | -100 | +| [src/music_kraken/pages/download_center/page_attributes.py](/src/music_kraken/pages/download_center/page_attributes.py) | Python | -24 | -1 | -9 | -34 | +| [src/music_kraken/pages/download_center/search.py](/src/music_kraken/pages/download_center/search.py) | Python | -85 | -23 | -38 | -146 | +| [src/music_kraken/pages/encyclopaedia_metallum.py](/src/music_kraken/pages/encyclopaedia_metallum.py) | Python | -19 | 7 | 10 | -2 | +| [src/music_kraken/pages/musify.py](/src/music_kraken/pages/musify.py) | Python | 65 | 30 | 32 | 127 | +| [src/music_kraken/pages/preset.py](/src/music_kraken/pages/preset.py) | Python | 43 | 1 | 16 | 60 | +| [src/music_kraken/pages/support_classes/__init__.py](/src/music_kraken/pages/support_classes/__init__.py) | Python | 0 | 0 | -1 | -1 | +| [src/music_kraken/pages/support_classes/default_target.py](/src/music_kraken/pages/support_classes/default_target.py) | Python | -55 | 0 | -15 | -70 | +| [src/music_kraken/pages/support_classes/download_result.py](/src/music_kraken/pages/support_classes/download_result.py) | Python | -51 | 0 | -15 | -66 | +| [src/music_kraken/tagging/__init__.py](/src/music_kraken/tagging/__init__.py) | Python | -5 | 0 | -2 | -7 | +| [src/music_kraken/tagging/id3.py](/src/music_kraken/tagging/id3.py) | Python | -60 | -4 | -24 | -88 | +| [src/music_kraken/utils/__init__.py](/src/music_kraken/utils/__init__.py) | Python | 1 | 0 | 1 | 2 | +| [src/music_kraken/utils/config/__init__.py](/src/music_kraken/utils/config/__init__.py) | Python | 7 | 0 | 4 | 11 | +| [src/music_kraken/utils/config/audio.py](/src/music_kraken/utils/config/audio.py) | Python | 152 | 15 | 28 | 195 | +| [src/music_kraken/utils/config/base_classes.py](/src/music_kraken/utils/config/base_classes.py) | Python | 136 | 35 | 61 | 232 | +| [src/music_kraken/utils/config/config.py](/src/music_kraken/utils/config/config.py) | Python | 92 | 16 | 30 | 138 | +| [src/music_kraken/utils/config/connection.py](/src/music_kraken/utils/config/connection.py) | Python | 81 | 2 | 15 | 98 | +| [src/music_kraken/utils/config/logging.py](/src/music_kraken/utils/config/logging.py) | Python | 104 | 4 | 17 | 125 | +| [src/music_kraken/utils/config/misc.py](/src/music_kraken/utils/config/misc.py) | Python | 40 | 0 | 9 | 49 | +| [src/music_kraken/utils/config/paths.py](/src/music_kraken/utils/config/paths.py) | Python | 40 | 0 | 13 | 53 | +| [src/music_kraken/utils/enums/__init__.py](/src/music_kraken/utils/enums/__init__.py) | Python | 0 | 0 | 1 | 1 | +| [src/music_kraken/utils/enums/album.py](/src/music_kraken/utils/enums/album.py) | Python | 16 | 6 | 5 | 27 | +| [src/music_kraken/utils/enums/source.py](/src/music_kraken/utils/enums/source.py) | Python | 40 | 1 | 8 | 49 | +| [src/music_kraken/utils/exception/__init__.py](/src/music_kraken/utils/exception/__init__.py) | Python | 1 | 0 | 1 | 2 | +| [src/music_kraken/utils/exception/config.py](/src/music_kraken/utils/exception/config.py) | Python | 14 | 8 | 7 | 29 | +| [src/music_kraken/utils/path_manager/__init__.py](/src/music_kraken/utils/path_manager/__init__.py) | Python | 2 | 0 | 2 | 4 | +| [src/music_kraken/utils/path_manager/config_directory.py](/src/music_kraken/utils/path_manager/config_directory.py) | Python | 4 | 0 | 4 | 8 | +| [src/music_kraken/utils/path_manager/locations.py](/src/music_kraken/utils/path_manager/locations.py) | Python | 16 | 0 | 9 | 25 | +| [src/music_kraken/utils/path_manager/music_directory.py](/src/music_kraken/utils/path_manager/music_directory.py) | Python | 36 | 9 | 14 | 59 | +| [src/music_kraken/utils/regex.py](/src/music_kraken/utils/regex.py) | Python | 1 | 0 | 2 | 3 | +| [src/music_kraken/utils/shared.py](/src/music_kraken/utils/shared.py) | Python | -12 | -5 | 4 | -13 | +| [src/music_kraken/utils/string_processing.py](/src/music_kraken/utils/string_processing.py) | Python | 6 | 0 | 4 | 10 | +| [src/music_kraken/utils/support_classes/__init__.py](/src/music_kraken/utils/support_classes/__init__.py) | Python | 3 | 0 | 1 | 4 | +| [src/music_kraken/utils/support_classes/default_target.py](/src/music_kraken/utils/support_classes/default_target.py) | Python | 56 | 0 | 15 | 71 | +| [src/music_kraken/utils/support_classes/download_result.py](/src/music_kraken/utils/support_classes/download_result.py) | Python | 69 | 0 | 21 | 90 | +| [src/music_kraken/utils/support_classes/query.py](/src/music_kraken/utils/support_classes/query.py) | Python | 24 | 0 | 9 | 33 | + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/diff.csv b/.VSCodeCounter/2023-05-24_11-17-57/diff.csv new file mode 100644 index 0000000..34a7e92 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/diff.csv @@ -0,0 +1,63 @@ +"filename", "language", "Python", "comment", "blank", "total" +"/home/lars/Projects/music-downloader/src/actual_donwload.py", "Python", 6, 2, 1, 9 +"/home/lars/Projects/music-downloader/src/music_kraken/__init__.py", "Python", 103, 9, 32, 144 +"/home/lars/Projects/music-downloader/src/music_kraken/__main__.py", "Python", 85, 3, 18, 106 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/__init__.py", "Python", 7, 0, 3, 10 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/codec.py", "Python", 25, 0, 8, 33 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/metadata.py", "Python", 60, 4, 24, 88 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/__init__.py", "Python", 1, 0, 1, 2 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/connection.py", "Python", 162, 1, 30, 193 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/rotating.py", "Python", 27, 3, 14, 44 +"/home/lars/Projects/music-downloader/src/music_kraken/download/__init__.py", "Python", 2, 0, 1, 3 +"/home/lars/Projects/music-downloader/src/music_kraken/download/download.py", "Python", 35, 0, 14, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/download/multiple_options.py", "Python", 69, 0, 31, 100 +"/home/lars/Projects/music-downloader/src/music_kraken/download/page_attributes.py", "Python", 21, 1, 10, 32 +"/home/lars/Projects/music-downloader/src/music_kraken/download/search.py", "Python", 130, 24, 56, 210 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py", "Python", -15, 0, -3, -18 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/album.py", "Python", -16, -6, -5, -27 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/option.py", "Python", 5, 0, 2, 7 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py", "Python", 3, 2, 2, 7 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/song.py", "Python", 37, 20, 16, 73 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/source.py", "Python", -30, -1, -9, -40 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/target.py", "Python", 5, 4, 2, 11 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py", "Python", -3, 0, -4, -7 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py", "Python", -71, -10, 0, -81 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/__init__.py", "Python", -4, 0, -2, -6 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/download.py", "Python", -33, 0, -13, -46 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/multiple_options.py", "Python", -69, 0, -31, -100 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/page_attributes.py", "Python", -24, -1, -9, -34 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/search.py", "Python", -85, -23, -38, -146 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py", "Python", -19, 7, 10, -2 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/musify.py", "Python", 65, 30, 32, 127 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/preset.py", "Python", 43, 1, 16, 60 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/__init__.py", "Python", 0, 0, -1, -1 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/default_target.py", "Python", -55, 0, -15, -70 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/download_result.py", "Python", -51, 0, -15, -66 +"/home/lars/Projects/music-downloader/src/music_kraken/tagging/__init__.py", "Python", -5, 0, -2, -7 +"/home/lars/Projects/music-downloader/src/music_kraken/tagging/id3.py", "Python", -60, -4, -24, -88 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py", "Python", 1, 0, 1, 2 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/__init__.py", "Python", 7, 0, 4, 11 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/audio.py", "Python", 152, 15, 28, 195 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/base_classes.py", "Python", 136, 35, 61, 232 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/config.py", "Python", 92, 16, 30, 138 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/connection.py", "Python", 81, 2, 15, 98 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/logging.py", "Python", 104, 4, 17, 125 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/misc.py", "Python", 40, 0, 9, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/paths.py", "Python", 40, 0, 13, 53 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/__init__.py", "Python", 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/album.py", "Python", 16, 6, 5, 27 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/source.py", "Python", 40, 1, 8, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/exception/__init__.py", "Python", 1, 0, 1, 2 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/exception/config.py", "Python", 14, 8, 7, 29 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/__init__.py", "Python", 2, 0, 2, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/config_directory.py", "Python", 4, 0, 4, 8 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/locations.py", "Python", 16, 0, 9, 25 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/music_directory.py", "Python", 36, 9, 14, 59 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/regex.py", "Python", 1, 0, 2, 3 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py", "Python", -12, -5, 4, -13 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py", "Python", 6, 0, 4, 10 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/__init__.py", "Python", 3, 0, 1, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/default_target.py", "Python", 56, 0, 15, 71 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/download_result.py", "Python", 69, 0, 21, 90 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/query.py", "Python", 24, 0, 9, 33 +"Total", "-", 1280, 157, 437, 1874 \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/diff.md b/.VSCodeCounter/2023-05-24_11-17-57/diff.md new file mode 100644 index 0000000..64d4b4d --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/diff.md @@ -0,0 +1,40 @@ +# Diff Summary + +Date : 2023-05-24 11:17:57 + +Directory /home/lars/Projects/music-downloader/src + +Total : 61 files, 1280 codes, 157 comments, 437 blanks, all 1874 lines + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| Python | 61 | 1,280 | 157 | 437 | 1,874 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 61 | 1,280 | 157 | 437 | 1,874 | +| . (Files) | 1 | 6 | 2 | 1 | 9 | +| music_kraken | 60 | 1,274 | 155 | 436 | 1,865 | +| music_kraken (Files) | 2 | 188 | 12 | 50 | 250 | +| music_kraken/audio | 3 | 92 | 4 | 35 | 131 | +| music_kraken/connection | 3 | 190 | 4 | 45 | 239 | +| music_kraken/download | 5 | 257 | 25 | 112 | 394 | +| music_kraken/objects | 7 | -11 | 19 | 5 | 13 | +| music_kraken/pages | 13 | -306 | 4 | -70 | -372 | +| music_kraken/pages (Files) | 5 | 15 | 28 | 54 | 97 | +| music_kraken/pages/download_center | 5 | -215 | -24 | -93 | -332 | +| music_kraken/pages/support_classes | 3 | -106 | 0 | -31 | -137 | +| music_kraken/tagging | 2 | -65 | -4 | -26 | -95 | +| music_kraken/utils | 25 | 929 | 91 | 285 | 1,305 | +| music_kraken/utils (Files) | 4 | -4 | -5 | 11 | 2 | +| music_kraken/utils/config | 8 | 652 | 72 | 177 | 901 | +| music_kraken/utils/enums | 3 | 56 | 7 | 14 | 77 | +| music_kraken/utils/exception | 2 | 15 | 8 | 8 | 31 | +| music_kraken/utils/path_manager | 4 | 58 | 9 | 29 | 96 | +| music_kraken/utils/support_classes | 4 | 152 | 0 | 46 | 198 | + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/diff.txt b/.VSCodeCounter/2023-05-24_11-17-57/diff.txt new file mode 100644 index 0000000..cb7308f --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/diff.txt @@ -0,0 +1,104 @@ +Date : 2023-05-24 11:17:57 +Directory : /home/lars/Projects/music-downloader/src +Total : 61 files, 1280 codes, 157 comments, 437 blanks, all 1874 lines + +Languages ++----------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++----------+------------+------------+------------+------------+------------+ +| Python | 61 | 1,280 | 157 | 437 | 1,874 | ++----------+------------+------------+------------+------------+------------+ + +Directories ++-------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++-------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 61 | 1,280 | 157 | 437 | 1,874 | +| . (Files) | 1 | 6 | 2 | 1 | 9 | +| music_kraken | 60 | 1,274 | 155 | 436 | 1,865 | +| music_kraken (Files) | 2 | 188 | 12 | 50 | 250 | +| music_kraken/audio | 3 | 92 | 4 | 35 | 131 | +| music_kraken/connection | 3 | 190 | 4 | 45 | 239 | +| music_kraken/download | 5 | 257 | 25 | 112 | 394 | +| music_kraken/objects | 7 | -11 | 19 | 5 | 13 | +| music_kraken/pages | 13 | -306 | 4 | -70 | -372 | +| music_kraken/pages (Files) | 5 | 15 | 28 | 54 | 97 | +| music_kraken/pages/download_center | 5 | -215 | -24 | -93 | -332 | +| music_kraken/pages/support_classes | 3 | -106 | 0 | -31 | -137 | +| music_kraken/tagging | 2 | -65 | -4 | -26 | -95 | +| music_kraken/utils | 25 | 929 | 91 | 285 | 1,305 | +| music_kraken/utils (Files) | 4 | -4 | -5 | 11 | 2 | +| music_kraken/utils/config | 8 | 652 | 72 | 177 | 901 | +| music_kraken/utils/enums | 3 | 56 | 7 | 14 | 77 | +| music_kraken/utils/exception | 2 | 15 | 8 | 8 | 31 | +| music_kraken/utils/path_manager | 4 | 58 | 9 | 29 | 96 | +| music_kraken/utils/support_classes | 4 | 152 | 0 | 46 | 198 | ++-------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++-------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++-------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ +| /home/lars/Projects/music-downloader/src/actual_donwload.py | Python | 6 | 2 | 1 | 9 | +| /home/lars/Projects/music-downloader/src/music_kraken/__init__.py | Python | 103 | 9 | 32 | 144 | +| /home/lars/Projects/music-downloader/src/music_kraken/__main__.py | Python | 85 | 3 | 18 | 106 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/__init__.py | Python | 7 | 0 | 3 | 10 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/codec.py | Python | 25 | 0 | 8 | 33 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/metadata.py | Python | 60 | 4 | 24 | 88 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/__init__.py | Python | 1 | 0 | 1 | 2 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/connection.py | Python | 162 | 1 | 30 | 193 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/rotating.py | Python | 27 | 3 | 14 | 44 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/__init__.py | Python | 2 | 0 | 1 | 3 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/download.py | Python | 35 | 0 | 14 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/multiple_options.py | Python | 69 | 0 | 31 | 100 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/page_attributes.py | Python | 21 | 1 | 10 | 32 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/search.py | Python | 130 | 24 | 56 | 210 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py | Python | -15 | 0 | -3 | -18 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/album.py | Python | -16 | -6 | -5 | -27 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/option.py | Python | 5 | 0 | 2 | 7 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py | Python | 3 | 2 | 2 | 7 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/song.py | Python | 37 | 20 | 16 | 73 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/source.py | Python | -30 | -1 | -9 | -40 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/target.py | Python | 5 | 4 | 2 | 11 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py | Python | -3 | 0 | -4 | -7 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py | Python | -71 | -10 | 0 | -81 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/__init__.py | Python | -4 | 0 | -2 | -6 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/download.py | Python | -33 | 0 | -13 | -46 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/multiple_options.py | Python | -69 | 0 | -31 | -100 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/page_attributes.py | Python | -24 | -1 | -9 | -34 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/download_center/search.py | Python | -85 | -23 | -38 | -146 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py | Python | -19 | 7 | 10 | -2 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/musify.py | Python | 65 | 30 | 32 | 127 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/preset.py | Python | 43 | 1 | 16 | 60 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/__init__.py | Python | 0 | 0 | -1 | -1 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/default_target.py | Python | -55 | 0 | -15 | -70 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/support_classes/download_result.py | Python | -51 | 0 | -15 | -66 | +| /home/lars/Projects/music-downloader/src/music_kraken/tagging/__init__.py | Python | -5 | 0 | -2 | -7 | +| /home/lars/Projects/music-downloader/src/music_kraken/tagging/id3.py | Python | -60 | -4 | -24 | -88 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py | Python | 1 | 0 | 1 | 2 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/__init__.py | Python | 7 | 0 | 4 | 11 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/audio.py | Python | 152 | 15 | 28 | 195 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/base_classes.py | Python | 136 | 35 | 61 | 232 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/config.py | Python | 92 | 16 | 30 | 138 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/connection.py | Python | 81 | 2 | 15 | 98 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/logging.py | Python | 104 | 4 | 17 | 125 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/misc.py | Python | 40 | 0 | 9 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/paths.py | Python | 40 | 0 | 13 | 53 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/album.py | Python | 16 | 6 | 5 | 27 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/source.py | Python | 40 | 1 | 8 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/exception/__init__.py | Python | 1 | 0 | 1 | 2 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/exception/config.py | Python | 14 | 8 | 7 | 29 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/__init__.py | Python | 2 | 0 | 2 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/config_directory.py | Python | 4 | 0 | 4 | 8 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/locations.py | Python | 16 | 0 | 9 | 25 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/music_directory.py | Python | 36 | 9 | 14 | 59 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/regex.py | Python | 1 | 0 | 2 | 3 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py | Python | -12 | -5 | 4 | -13 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py | Python | 6 | 0 | 4 | 10 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/__init__.py | Python | 3 | 0 | 1 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/default_target.py | Python | 56 | 0 | 15 | 71 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/download_result.py | Python | 69 | 0 | 21 | 90 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/query.py | Python | 24 | 0 | 9 | 33 | +| Total | | 1,280 | 157 | 437 | 1,874 | ++-------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/results.csv b/.VSCodeCounter/2023-05-24_11-17-57/results.csv new file mode 100644 index 0000000..2bbbd07 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/results.csv @@ -0,0 +1,91 @@ +"filename", "language", "Python", "SQLite", "comment", "blank", "total" +"/home/lars/Projects/music-downloader/src/__init__.py", "Python", 0, 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/actual_donwload.py", "Python", 43, 0, 2, 18, 63 +"/home/lars/Projects/music-downloader/src/create_custom_objects.py", "Python", 58, 0, 0, 6, 64 +"/home/lars/Projects/music-downloader/src/metal_archives.py", "Python", 30, 0, 0, 12, 42 +"/home/lars/Projects/music-downloader/src/music_kraken/__init__.py", "Python", 189, 0, 21, 60, 270 +"/home/lars/Projects/music-downloader/src/music_kraken/__main__.py", "Python", 88, 0, 3, 21, 112 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/__init__.py", "Python", 7, 0, 0, 3, 10 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/codec.py", "Python", 25, 0, 0, 8, 33 +"/home/lars/Projects/music-downloader/src/music_kraken/audio/metadata.py", "Python", 60, 0, 4, 24, 88 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/__init__.py", "Python", 1, 0, 0, 1, 2 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/connection.py", "Python", 162, 0, 1, 30, 193 +"/home/lars/Projects/music-downloader/src/music_kraken/connection/rotating.py", "Python", 27, 0, 3, 14, 44 +"/home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py", "Python", 0, 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py", "Python", 122, 0, 24, 52, 198 +"/home/lars/Projects/music-downloader/src/music_kraken/database/database.py", "Python", 104, 0, 47, 38, 189 +"/home/lars/Projects/music-downloader/src/music_kraken/download/__init__.py", "Python", 2, 0, 0, 1, 3 +"/home/lars/Projects/music-downloader/src/music_kraken/download/download.py", "Python", 35, 0, 0, 14, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/download/multiple_options.py", "Python", 69, 0, 0, 31, 100 +"/home/lars/Projects/music-downloader/src/music_kraken/download/page_attributes.py", "Python", 21, 0, 1, 10, 32 +"/home/lars/Projects/music-downloader/src/music_kraken/download/search.py", "Python", 130, 0, 24, 56, 210 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py", "Python", 0, 0, 0, 3, 3 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py", "Python", 75, 0, 12, 20, 107 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py", "Python", 54, 0, 1, 16, 71 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py", "Python", 6, 0, 0, 2, 8 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py", "Python", 257, 0, 24, 65, 346 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py", "Python", 253, 0, 40, 72, 365 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py", "Python", 3, 0, 0, 2, 5 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py", "Python", 42, 0, 6, 12, 60 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py", "Python", 0, 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py", "Python", 115, 0, 16, 42, 173 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py", "Python", 40, 0, 0, 18, 58 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py", "Python", 136, 0, 9, 37, 182 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py", "Python", 11, 0, 5, 8, 24 +"/home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py", "Python", 71, 0, 4, 24, 99 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py", "Python", 14, 0, 0, 5, 19 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/cache.py", "Python", 37, 0, 56, 18, 111 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py", "Python", 91, 0, 31, 39, 161 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py", "Python", 50, 0, 10, 19, 79 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py", "Python", 25, 0, 0, 7, 32 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py", "Python", 261, 0, 62, 61, 384 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/option.py", "Python", 28, 0, 0, 13, 41 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py", "Python", 65, 0, 33, 33, 131 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/song.py", "Python", 473, 0, 113, 115, 701 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/source.py", "Python", 90, 0, 16, 32, 138 +"/home/lars/Projects/music-downloader/src/music_kraken/objects/target.py", "Python", 63, 0, 15, 23, 101 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py", "Python", 3, 0, 0, 1, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py", "Python", 357, 0, 34, 103, 494 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py", "Python", 432, 0, 90, 127, 649 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/musify.py", "Python", 629, 0, 289, 187, 1105 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/preset.py", "Python", 43, 0, 1, 16, 60 +"/home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py", "Python", 25, 0, 16, 6, 47 +"/home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql", "SQLite", 0, 72, 0, 10, 82 +"/home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql", "SQLite", 0, 135, 0, 10, 145 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py", "Python", 2, 0, 1, 2, 5 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/__init__.py", "Python", 7, 0, 0, 4, 11 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/audio.py", "Python", 152, 0, 15, 28, 195 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/base_classes.py", "Python", 136, 0, 35, 61, 232 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/config.py", "Python", 92, 0, 16, 30, 138 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/connection.py", "Python", 81, 0, 2, 15, 98 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/logging.py", "Python", 104, 0, 4, 17, 125 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/misc.py", "Python", 40, 0, 0, 9, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/config/paths.py", "Python", 40, 0, 0, 13, 53 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/__init__.py", "Python", 0, 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/album.py", "Python", 16, 0, 6, 5, 27 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/enums/source.py", "Python", 40, 0, 1, 8, 49 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/exception/__init__.py", "Python", 1, 0, 0, 1, 2 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/exception/config.py", "Python", 14, 0, 8, 7, 29 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py", "Python", 3, 0, 0, 1, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py", "Python", 19, 0, 0, 6, 25 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/__init__.py", "Python", 2, 0, 0, 2, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/config_directory.py", "Python", 4, 0, 0, 4, 8 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/locations.py", "Python", 16, 0, 0, 9, 25 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/music_directory.py", "Python", 36, 0, 9, 14, 59 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py", "Python", 39, 0, 2, 17, 58 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/regex.py", "Python", 1, 0, 0, 2, 3 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py", "Python", 63, 0, 22, 21, 106 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py", "Python", 16, 0, 5, 11, 32 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/__init__.py", "Python", 3, 0, 0, 1, 4 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/default_target.py", "Python", 56, 0, 0, 15, 71 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/download_result.py", "Python", 69, 0, 0, 21, 90 +"/home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/query.py", "Python", 24, 0, 0, 9, 33 +"/home/lars/Projects/music-downloader/src/music_kraken_cli.py", "Python", 3, 0, 0, 3, 6 +"/home/lars/Projects/music-downloader/src/music_kraken_gtk.py", "Python", 3, 0, 0, 2, 5 +"/home/lars/Projects/music-downloader/src/musify_search.py", "Python", 38, 0, 0, 14, 52 +"/home/lars/Projects/music-downloader/src/tests/__init__.py", "Python", 0, 0, 0, 1, 1 +"/home/lars/Projects/music-downloader/src/tests/conftest.py", "Python", 3, 0, 1, 2, 6 +"/home/lars/Projects/music-downloader/src/tests/test_building_objects.py", "Python", 81, 0, 1, 13, 95 +"/home/lars/Projects/music-downloader/src/tests/test_download.py", "Python", 30, 0, 1, 12, 43 +"/home/lars/Projects/music-downloader/src/tests/test_objects.py", "Python", 173, 0, 15, 51, 239 +"Total", "-", 6329, 207, 1157, 1980, 9673 \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/results.json b/.VSCodeCounter/2023-05-24_11-17-57/results.json new file mode 100644 index 0000000..5668823 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/results.json @@ -0,0 +1 @@ +{"file:///home/lars/Projects/music-downloader/src/musify_search.py":{"language":"Python","code":38,"comment":0,"blank":14},"file:///home/lars/Projects/music-downloader/src/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/__init__.py":{"language":"Python","code":189,"comment":21,"blank":60},"file:///home/lars/Projects/music-downloader/src/music_kraken/audio/__init__.py":{"language":"Python","code":7,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/music_kraken/audio/codec.py":{"language":"Python","code":25,"comment":0,"blank":8},"file:///home/lars/Projects/music-downloader/src/music_kraken/audio/metadata.py":{"language":"Python","code":60,"comment":4,"blank":24},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/database.py":{"language":"Python","code":104,"comment":47,"blank":38},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py":{"language":"Python","code":122,"comment":24,"blank":52},"file:///home/lars/Projects/music-downloader/src/music_kraken/download/multiple_options.py":{"language":"Python","code":69,"comment":0,"blank":31},"file:///home/lars/Projects/music-downloader/src/music_kraken/download/search.py":{"language":"Python","code":130,"comment":24,"blank":56},"file:///home/lars/Projects/music-downloader/src/music_kraken/download/download.py":{"language":"Python","code":35,"comment":0,"blank":14},"file:///home/lars/Projects/music-downloader/src/music_kraken/download/__init__.py":{"language":"Python","code":2,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py":{"language":"Python","code":2,"comment":1,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/download/page_attributes.py":{"language":"Python","code":21,"comment":1,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/exception/__init__.py":{"language":"Python","code":1,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/exception/config.py":{"language":"Python","code":14,"comment":8,"blank":7},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py":{"language":"Python","code":16,"comment":5,"blank":11},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/regex.py":{"language":"Python","code":1,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py":{"language":"Python","code":19,"comment":0,"blank":6},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/enums/album.py":{"language":"Python","code":16,"comment":6,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/enums/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/enums/source.py":{"language":"Python","code":40,"comment":1,"blank":8},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py":{"language":"Python","code":39,"comment":2,"blank":17},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/query.py":{"language":"Python","code":24,"comment":0,"blank":9},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/__init__.py":{"language":"Python","code":3,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/download_result.py":{"language":"Python","code":69,"comment":0,"blank":21},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/config.py":{"language":"Python","code":92,"comment":16,"blank":30},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/default_target.py":{"language":"Python","code":56,"comment":0,"blank":15},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/paths.py":{"language":"Python","code":40,"comment":0,"blank":13},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/__init__.py":{"language":"Python","code":7,"comment":0,"blank":4},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/logging.py":{"language":"Python","code":104,"comment":4,"blank":17},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/connection.py":{"language":"Python","code":81,"comment":2,"blank":15},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py":{"language":"Python","code":63,"comment":22,"blank":21},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/misc.py":{"language":"Python","code":40,"comment":0,"blank":9},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/base_classes.py":{"language":"Python","code":136,"comment":35,"blank":61},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/config/audio.py":{"language":"Python","code":152,"comment":15,"blank":28},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py":{"language":"Python","code":3,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/config_directory.py":{"language":"Python","code":4,"comment":0,"blank":4},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py":{"language":"Python","code":3,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/__init__.py":{"language":"Python","code":2,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/music_directory.py":{"language":"Python","code":36,"comment":9,"blank":14},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py":{"language":"Python","code":357,"comment":34,"blank":103},"file:///home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/locations.py":{"language":"Python","code":16,"comment":0,"blank":9},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/preset.py":{"language":"Python","code":43,"comment":1,"blank":16},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/musify.py":{"language":"Python","code":629,"comment":289,"blank":187},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py":{"language":"Python","code":25,"comment":16,"blank":6},"file:///home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py":{"language":"Python","code":432,"comment":90,"blank":127},"file:///home/lars/Projects/music-downloader/src/music_kraken/connection/rotating.py":{"language":"Python","code":27,"comment":3,"blank":14},"file:///home/lars/Projects/music-downloader/src/music_kraken/connection/__init__.py":{"language":"Python","code":1,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py":{"language":"Python","code":14,"comment":0,"blank":5},"file:///home/lars/Projects/music-downloader/src/music_kraken/connection/connection.py":{"language":"Python","code":162,"comment":1,"blank":30},"file:///home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql":{"language":"SQLite","code":72,"comment":0,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql":{"language":"SQLite","code":135,"comment":0,"blank":10},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py":{"language":"Python","code":261,"comment":62,"blank":61},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/cache.py":{"language":"Python","code":37,"comment":56,"blank":18},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/source.py":{"language":"Python","code":90,"comment":16,"blank":32},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py":{"language":"Python","code":65,"comment":33,"blank":33},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/target.py":{"language":"Python","code":63,"comment":15,"blank":23},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py":{"language":"Python","code":25,"comment":0,"blank":7},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/option.py":{"language":"Python","code":28,"comment":0,"blank":13},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/song.py":{"language":"Python","code":473,"comment":113,"blank":115},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py":{"language":"Python","code":91,"comment":31,"blank":39},"file:///home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py":{"language":"Python","code":50,"comment":10,"blank":19},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py":{"language":"Python","code":0,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/music_kraken/__main__.py":{"language":"Python","code":88,"comment":3,"blank":21},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py":{"language":"Python","code":75,"comment":12,"blank":20},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py":{"language":"Python","code":11,"comment":5,"blank":8},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py":{"language":"Python","code":71,"comment":4,"blank":24},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py":{"language":"Python","code":115,"comment":16,"blank":42},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py":{"language":"Python","code":136,"comment":9,"blank":37},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py":{"language":"Python","code":6,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py":{"language":"Python","code":253,"comment":40,"blank":72},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py":{"language":"Python","code":54,"comment":1,"blank":16},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py":{"language":"Python","code":40,"comment":0,"blank":18},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py":{"language":"Python","code":3,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py":{"language":"Python","code":257,"comment":24,"blank":65},"file:///home/lars/Projects/music-downloader/src/tests/__init__.py":{"language":"Python","code":0,"comment":0,"blank":1},"file:///home/lars/Projects/music-downloader/src/tests/test_objects.py":{"language":"Python","code":173,"comment":15,"blank":51},"file:///home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py":{"language":"Python","code":42,"comment":6,"blank":12},"file:///home/lars/Projects/music-downloader/src/tests/test_building_objects.py":{"language":"Python","code":81,"comment":1,"blank":13},"file:///home/lars/Projects/music-downloader/src/tests/test_download.py":{"language":"Python","code":30,"comment":1,"blank":12},"file:///home/lars/Projects/music-downloader/src/metal_archives.py":{"language":"Python","code":30,"comment":0,"blank":12},"file:///home/lars/Projects/music-downloader/src/tests/conftest.py":{"language":"Python","code":3,"comment":1,"blank":2},"file:///home/lars/Projects/music-downloader/src/create_custom_objects.py":{"language":"Python","code":58,"comment":0,"blank":6},"file:///home/lars/Projects/music-downloader/src/music_kraken_gtk.py":{"language":"Python","code":3,"comment":0,"blank":2},"file:///home/lars/Projects/music-downloader/src/music_kraken_cli.py":{"language":"Python","code":3,"comment":0,"blank":3},"file:///home/lars/Projects/music-downloader/src/actual_donwload.py":{"language":"Python","code":43,"comment":2,"blank":18}} \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/results.md b/.VSCodeCounter/2023-05-24_11-17-57/results.md new file mode 100644 index 0000000..ceeb9f0 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/results.md @@ -0,0 +1,46 @@ +# Summary + +Date : 2023-05-24 11:17:57 + +Directory /home/lars/Projects/music-downloader/src + +Total : 89 files, 6536 codes, 1157 comments, 1980 blanks, all 9673 lines + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| Python | 87 | 6,329 | 1,157 | 1,960 | 9,446 | +| SQLite | 2 | 207 | 0 | 20 | 227 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 89 | 6,536 | 1,157 | 1,980 | 9,673 | +| . (Files) | 7 | 175 | 2 | 56 | 233 | +| music_kraken | 77 | 6,074 | 1,137 | 1,845 | 9,056 | +| music_kraken (Files) | 2 | 277 | 24 | 81 | 382 | +| music_kraken/audio | 3 | 92 | 4 | 35 | 131 | +| music_kraken/connection | 3 | 190 | 4 | 45 | 239 | +| music_kraken/database | 3 | 226 | 71 | 91 | 388 | +| music_kraken/download | 5 | 257 | 25 | 112 | 394 | +| music_kraken/not_used_anymore | 14 | 1,063 | 117 | 322 | 1,502 | +| music_kraken/not_used_anymore (Files) | 3 | 129 | 13 | 39 | 181 | +| music_kraken/not_used_anymore/metadata | 5 | 561 | 70 | 153 | 784 | +| music_kraken/not_used_anymore/metadata (Files) | 3 | 516 | 64 | 139 | 719 | +| music_kraken/not_used_anymore/metadata/sources | 2 | 45 | 6 | 14 | 65 | +| music_kraken/not_used_anymore/sources | 6 | 373 | 34 | 130 | 537 | +| music_kraken/objects | 11 | 1,197 | 336 | 365 | 1,898 | +| music_kraken/pages | 6 | 1,489 | 430 | 440 | 2,359 | +| music_kraken/static_files | 2 | 207 | 0 | 20 | 227 | +| music_kraken/utils | 28 | 1,076 | 126 | 334 | 1,536 | +| music_kraken/utils (Files) | 7 | 143 | 30 | 60 | 233 | +| music_kraken/utils/config | 8 | 652 | 72 | 177 | 901 | +| music_kraken/utils/enums | 3 | 56 | 7 | 14 | 77 | +| music_kraken/utils/exception | 2 | 15 | 8 | 8 | 31 | +| music_kraken/utils/path_manager | 4 | 58 | 9 | 29 | 96 | +| music_kraken/utils/support_classes | 4 | 152 | 0 | 46 | 198 | +| tests | 5 | 287 | 18 | 79 | 384 | + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-24_11-17-57/results.txt b/.VSCodeCounter/2023-05-24_11-17-57/results.txt new file mode 100644 index 0000000..3dfdbb8 --- /dev/null +++ b/.VSCodeCounter/2023-05-24_11-17-57/results.txt @@ -0,0 +1,138 @@ +Date : 2023-05-24 11:17:57 +Directory : /home/lars/Projects/music-downloader/src +Total : 89 files, 6536 codes, 1157 comments, 1980 blanks, all 9673 lines + +Languages ++----------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++----------+------------+------------+------------+------------+------------+ +| Python | 87 | 6,329 | 1,157 | 1,960 | 9,446 | +| SQLite | 2 | 207 | 0 | 20 | 227 | ++----------+------------+------------+------------+------------+------------+ + +Directories ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 89 | 6,536 | 1,157 | 1,980 | 9,673 | +| . (Files) | 7 | 175 | 2 | 56 | 233 | +| music_kraken | 77 | 6,074 | 1,137 | 1,845 | 9,056 | +| music_kraken (Files) | 2 | 277 | 24 | 81 | 382 | +| music_kraken/audio | 3 | 92 | 4 | 35 | 131 | +| music_kraken/connection | 3 | 190 | 4 | 45 | 239 | +| music_kraken/database | 3 | 226 | 71 | 91 | 388 | +| music_kraken/download | 5 | 257 | 25 | 112 | 394 | +| music_kraken/not_used_anymore | 14 | 1,063 | 117 | 322 | 1,502 | +| music_kraken/not_used_anymore (Files) | 3 | 129 | 13 | 39 | 181 | +| music_kraken/not_used_anymore/metadata | 5 | 561 | 70 | 153 | 784 | +| music_kraken/not_used_anymore/metadata (Files) | 3 | 516 | 64 | 139 | 719 | +| music_kraken/not_used_anymore/metadata/sources | 2 | 45 | 6 | 14 | 65 | +| music_kraken/not_used_anymore/sources | 6 | 373 | 34 | 130 | 537 | +| music_kraken/objects | 11 | 1,197 | 336 | 365 | 1,898 | +| music_kraken/pages | 6 | 1,489 | 430 | 440 | 2,359 | +| music_kraken/static_files | 2 | 207 | 0 | 20 | 227 | +| music_kraken/utils | 28 | 1,076 | 126 | 334 | 1,536 | +| music_kraken/utils (Files) | 7 | 143 | 30 | 60 | 233 | +| music_kraken/utils/config | 8 | 652 | 72 | 177 | 901 | +| music_kraken/utils/enums | 3 | 56 | 7 | 14 | 77 | +| music_kraken/utils/exception | 2 | 15 | 8 | 8 | 31 | +| music_kraken/utils/path_manager | 4 | 58 | 9 | 29 | 96 | +| music_kraken/utils/support_classes | 4 | 152 | 0 | 46 | 198 | +| tests | 5 | 287 | 18 | 79 | 384 | ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ +| /home/lars/Projects/music-downloader/src/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/actual_donwload.py | Python | 43 | 2 | 18 | 63 | +| /home/lars/Projects/music-downloader/src/create_custom_objects.py | Python | 58 | 0 | 6 | 64 | +| /home/lars/Projects/music-downloader/src/metal_archives.py | Python | 30 | 0 | 12 | 42 | +| /home/lars/Projects/music-downloader/src/music_kraken/__init__.py | Python | 189 | 21 | 60 | 270 | +| /home/lars/Projects/music-downloader/src/music_kraken/__main__.py | Python | 88 | 3 | 21 | 112 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/__init__.py | Python | 7 | 0 | 3 | 10 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/codec.py | Python | 25 | 0 | 8 | 33 | +| /home/lars/Projects/music-downloader/src/music_kraken/audio/metadata.py | Python | 60 | 4 | 24 | 88 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/__init__.py | Python | 1 | 0 | 1 | 2 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/connection.py | Python | 162 | 1 | 30 | 193 | +| /home/lars/Projects/music-downloader/src/music_kraken/connection/rotating.py | Python | 27 | 3 | 14 | 44 | +| /home/lars/Projects/music-downloader/src/music_kraken/database/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/music_kraken/database/data_models.py | Python | 122 | 24 | 52 | 198 | +| /home/lars/Projects/music-downloader/src/music_kraken/database/database.py | Python | 104 | 47 | 38 | 189 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/__init__.py | Python | 2 | 0 | 1 | 3 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/download.py | Python | 35 | 0 | 14 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/multiple_options.py | Python | 69 | 0 | 31 | 100 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/page_attributes.py | Python | 21 | 1 | 10 | 32 | +| /home/lars/Projects/music-downloader/src/music_kraken/download/search.py | Python | 130 | 24 | 56 | 210 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/__init__.py | Python | 0 | 0 | 3 | 3 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_audio.py | Python | 75 | 12 | 20 | 107 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/fetch_source.py | Python | 54 | 1 | 16 | 71 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/__init__.py | Python | 6 | 0 | 2 | 8 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_fetch.py | Python | 257 | 24 | 65 | 346 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/metadata_search.py | Python | 253 | 40 | 72 | 365 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/__init__.py | Python | 3 | 0 | 2 | 5 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/metadata/sources/musicbrainz.py | Python | 42 | 6 | 12 | 60 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/genius.py | Python | 115 | 16 | 42 | 173 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/local_files.py | Python | 40 | 0 | 18 | 58 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/musify.py | Python | 136 | 9 | 37 | 182 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/source.py | Python | 11 | 5 | 8 | 24 | +| /home/lars/Projects/music-downloader/src/music_kraken/not_used_anymore/sources/youtube.py | Python | 71 | 4 | 24 | 99 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/__init__.py | Python | 14 | 0 | 5 | 19 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/cache.py | Python | 37 | 56 | 18 | 111 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/collection.py | Python | 91 | 31 | 39 | 161 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/formatted_text.py | Python | 50 | 10 | 19 | 79 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/lyrics.py | Python | 25 | 0 | 7 | 32 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/metadata.py | Python | 261 | 62 | 61 | 384 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/option.py | Python | 28 | 0 | 13 | 41 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/parents.py | Python | 65 | 33 | 33 | 131 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/song.py | Python | 473 | 113 | 115 | 701 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/source.py | Python | 90 | 16 | 32 | 138 | +| /home/lars/Projects/music-downloader/src/music_kraken/objects/target.py | Python | 63 | 15 | 23 | 101 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/__init__.py | Python | 3 | 0 | 1 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/abstract.py | Python | 357 | 34 | 103 | 494 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/encyclopaedia_metallum.py | Python | 432 | 90 | 127 | 649 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/musify.py | Python | 629 | 289 | 187 | 1,105 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/preset.py | Python | 43 | 1 | 16 | 60 | +| /home/lars/Projects/music-downloader/src/music_kraken/pages/youtube.py | Python | 25 | 16 | 6 | 47 | +| /home/lars/Projects/music-downloader/src/music_kraken/static_files/new_db.sql | SQLite | 72 | 0 | 10 | 82 | +| /home/lars/Projects/music-downloader/src/music_kraken/static_files/temp_database_structure.sql | SQLite | 135 | 0 | 10 | 145 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/__init__.py | Python | 2 | 1 | 2 | 5 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/__init__.py | Python | 7 | 0 | 4 | 11 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/audio.py | Python | 152 | 15 | 28 | 195 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/base_classes.py | Python | 136 | 35 | 61 | 232 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/config.py | Python | 92 | 16 | 30 | 138 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/connection.py | Python | 81 | 2 | 15 | 98 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/logging.py | Python | 104 | 4 | 17 | 125 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/misc.py | Python | 40 | 0 | 9 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/config/paths.py | Python | 40 | 0 | 13 | 53 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/album.py | Python | 16 | 6 | 5 | 27 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/enums/source.py | Python | 40 | 1 | 8 | 49 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/exception/__init__.py | Python | 1 | 0 | 1 | 2 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/exception/config.py | Python | 14 | 8 | 7 | 29 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/functions.py | Python | 3 | 0 | 1 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/object_handeling.py | Python | 19 | 0 | 6 | 25 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/__init__.py | Python | 2 | 0 | 2 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/config_directory.py | Python | 4 | 0 | 4 | 8 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/locations.py | Python | 16 | 0 | 9 | 25 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/path_manager/music_directory.py | Python | 36 | 9 | 14 | 59 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/phonetic_compares.py | Python | 39 | 2 | 17 | 58 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/regex.py | Python | 1 | 0 | 2 | 3 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/shared.py | Python | 63 | 22 | 21 | 106 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/string_processing.py | Python | 16 | 5 | 11 | 32 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/__init__.py | Python | 3 | 0 | 1 | 4 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/default_target.py | Python | 56 | 0 | 15 | 71 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/download_result.py | Python | 69 | 0 | 21 | 90 | +| /home/lars/Projects/music-downloader/src/music_kraken/utils/support_classes/query.py | Python | 24 | 0 | 9 | 33 | +| /home/lars/Projects/music-downloader/src/music_kraken_cli.py | Python | 3 | 0 | 3 | 6 | +| /home/lars/Projects/music-downloader/src/music_kraken_gtk.py | Python | 3 | 0 | 2 | 5 | +| /home/lars/Projects/music-downloader/src/musify_search.py | Python | 38 | 0 | 14 | 52 | +| /home/lars/Projects/music-downloader/src/tests/__init__.py | Python | 0 | 0 | 1 | 1 | +| /home/lars/Projects/music-downloader/src/tests/conftest.py | Python | 3 | 1 | 2 | 6 | +| /home/lars/Projects/music-downloader/src/tests/test_building_objects.py | Python | 81 | 1 | 13 | 95 | +| /home/lars/Projects/music-downloader/src/tests/test_download.py | Python | 30 | 1 | 12 | 43 | +| /home/lars/Projects/music-downloader/src/tests/test_objects.py | Python | 173 | 15 | 51 | 239 | +| Total | | 6,536 | 1,157 | 1,980 | 9,673 | ++--------------------------------------------------------------------------------------------------------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/src/music_kraken/pages/musify.py b/src/music_kraken/pages/musify.py index 90a6976..7123bb6 100644 --- a/src/music_kraken/pages/musify.py +++ b/src/music_kraken/pages/musify.py @@ -21,7 +21,8 @@ from ..objects import ( FormattedText, Label, Options, - Target + Target, + DatabaseObject ) from ..utils.shared import MUSIFY_LOGGER from ..utils import string_processing, shared @@ -63,70 +64,81 @@ class MusifyUrl: name_with_id: str musify_id: str url: str + +ALBUM_TYPE_MAP = defaultdict(lambda: AlbumType.OTHER, { + 1: AlbumType.OTHER, # literally other xD + 2: AlbumType.STUDIO_ALBUM, + 3: AlbumType.EP, + 4: AlbumType.SINGLE, + 5: AlbumType.OTHER, # BOOTLEG + 6: AlbumType.LIVE_ALBUM, + 7: AlbumType.COMPILATION_ALBUM, # compilation of different artists + 8: AlbumType.MIXTAPE, + 9: AlbumType.DEMO, + 10: AlbumType.MIXTAPE, # DJ Mixes + 11: AlbumType.COMPILATION_ALBUM, # compilation of only this artist + 12: AlbumType.STUDIO_ALBUM, # split + 13: AlbumType.COMPILATION_ALBUM, # unofficial + 14: AlbumType.MIXTAPE # "Soundtracks" +}) -class Musify(Page): - API_SESSION: requests.Session = requests.Session() - API_SESSION.headers = { - "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0", - "Connection": "keep-alive", - "Referer": "https://musify.club/" - } - API_SESSION.proxies = shared.proxies - TIMEOUT = 7 - POST_TIMEOUT = 15 - TRIES = 5 - HOST = "https://musify.club" + +def parse_url(url: str) -> MusifyUrl: + parsed = urlparse(url) - CONNECTION = Connection( - host="https://musify.club/", - logger=MUSIFY_LOGGER + path = parsed.path.split("/") + + split_name = path[2].split("-") + url_id = split_name[-1] + name_for_url = "-".join(split_name[:-1]) + + try: + type_enum = MusifyTypes(path[1]) + except ValueError as e: + MUSIFY_LOGGER.warning(f"{path[1]} is not yet implemented, add it to MusifyTypes") + raise e + + return MusifyUrl( + source_type=type_enum, + name_without_id=name_for_url, + name_with_id=path[2], + musify_id=url_id, + url=url ) + +class Preset(Page): + # CHANGE SOURCE_TYPE = SourcePages.MUSIFY + LOGGER = MUSIFY_LOGGER - LOGGER = shared.MUSIFY_LOGGER - - @classmethod - def parse_url(cls, url: str) -> MusifyUrl: - parsed = urlparse(url) - - path = parsed.path.split("/") - - split_name = path[2].split("-") - url_id = split_name[-1] - name_for_url = "-".join(split_name[:-1]) - - try: - type_enum = MusifyTypes(path[1]) - except ValueError as e: - cls.LOGGER.warning(f"{path[1]} is not yet implemented, add it to MusifyTypes") - raise e - - return MusifyUrl( - source_type=type_enum, - name_without_id=name_for_url, - name_with_id=path[2], - musify_id=url_id, - url=url + HOST = "https://musify.club" + + def __init__(self): + self.connection: Connection = Connection( + host="https://musify.club/", + logger=self.LOGGER ) + + super().__init__() - @classmethod - def _raw_search(cls, query: str) -> Options: - query_obj = cls.Query(query) - - if query_obj.is_raw: - return cls.plaintext_search(query_obj.query) - return cls.plaintext_search(cls.get_plaintext_query(query_obj)) - - @classmethod - def get_plaintext_query(cls, query: Query) -> str: - if query.album is None: - return f"{query.artist or '*'} - {query.song or '*'}" - return f"{query.artist or '*'} - {query.album or '*'} - {query.song or '*'}" - - @classmethod - def parse_artist_contact(cls, contact: BeautifulSoup) -> Artist: + def get_source_type(self, source: Source) -> Optional[Type[DatabaseObject]]: + if source.url is None: + return None + + musify_url = parse_url(source.url) + + # Has no labels, because afaiak musify has no Labels + musify_type_to_database_type = { + MusifyTypes.SONG: Song, + MusifyTypes.RELEASE: Album, + MusifyTypes.ARTIST: Artist + } + + return musify_type_to_database_type.get(musify_url.source_type) + + def _parse_artist_contact(self, contact: BeautifulSoup) -> Artist: source_list: List[Source] = [] name = None _id = None @@ -140,7 +152,7 @@ class Musify(Page): if "-" in href: _id = href.split("-")[-1] - source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + href)) + source_list.append(Source(self.SOURCE_TYPE, self.HOST + href)) # artist image image_soup = contact.find("img") @@ -156,9 +168,8 @@ class Musify(Page): name=name, source_list=source_list ) - - @classmethod - def parse_album_contact(cls, contact: BeautifulSoup) -> Album: + + def _parse_album_contact(self, contact: BeautifulSoup) -> Album: """
@@ -213,7 +224,7 @@ class Musify(Page): if "-" in href: _id = href.split("-")[-1] - source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + href)) + source_list.append(Source(self.SOURCE_TYPE, self.HOST + href)) # cover art image_soup = contact.find("img") @@ -255,7 +266,7 @@ class Musify(Page): track_count_soup: BeautifulSoup = small_list[1] rating_soup: BeautifulSoup = small_list[2] else: - cls.LOGGER.warning("got an unequal ammount than 3 small elements") + self.LOGGER.warning("got an unequal ammount than 3 small elements") return Album( _id=_id, @@ -264,9 +275,8 @@ class Musify(Page): date=ID3Timestamp(year=year), artist_list=artist_list ) - - @classmethod - def parse_contact_container(cls, contact_container_soup: BeautifulSoup) -> List[Union[Artist, Album]]: + + def _parse_contact_container(self, contact_container_soup: BeautifulSoup) -> List[Union[Artist, Album]]: contacts = [] contact: BeautifulSoup @@ -279,13 +289,12 @@ class Musify(Page): if url is not None: if "artist" in url: - contacts.append(cls.parse_artist_contact(contact)) + contacts.append(self._parse_artist_contact(contact)) elif "release" in url: - contacts.append(cls.parse_album_contact(contact)) + contacts.append(self._parse_album_contact(contact)) return contacts - @classmethod - def parse_playlist_item(cls, playlist_item_soup: BeautifulSoup) -> Song: + def _parse_playlist_item(self, playlist_item_soup: BeautifulSoup) -> Song: _id = None song_title = playlist_item_soup.get("data-name") artist_list: List[Artist] = [] @@ -302,7 +311,7 @@ class Musify(Page): for artist_anchor in anchor_list[:-1]: _id = None href = artist_anchor.get("href") - artist_source: Source = Source(cls.SOURCE_TYPE, cls.HOST + href) + artist_source: Source = Source(self.SOURCE_TYPE, self.HOST + href) if "-" in href: _id = href.split("-")[-1] @@ -325,11 +334,11 @@ class Musify(Page): raw_id: str = href.split("-")[-1] if raw_id.isdigit(): _id = raw_id - source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + href)) + source_list.append(Source(self.SOURCE_TYPE, self.HOST + href)) else: - cls.LOGGER.debug("there are not enough anchors (2) for artist and track") - cls.LOGGER.debug(str(artist_list)) + self.LOGGER.debug("there are not enough anchors (2) for artist and track") + self.LOGGER.debug(str(artist_list)) """ artist_name = playlist_item_soup.get("data-artist") @@ -349,390 +358,38 @@ class Musify(Page): source_list=source_list ) - @classmethod - def parse_playlist_soup(cls, playlist_soup: BeautifulSoup) -> List[Song]: + def _parse_playlist_soup(self, playlist_soup: BeautifulSoup) -> List[Song]: song_list = [] for playlist_item_soup in playlist_soup.find_all("div", {"class": "playlist__item"}): - song_list.append(cls.parse_playlist_item(playlist_item_soup)) + song_list.append(self._parse_playlist_item(playlist_item_soup)) return song_list - - @classmethod - def plaintext_search(cls, query: str) -> Options: + + def general_search(self, search_query: str) -> List[DatabaseObject]: search_results = [] - r = cls.CONNECTION.get(f"https://musify.club/search?searchText={query}") + r = self.connection.get(f"https://musify.club/search?searchText={search_query}") if r is None: - return Options() - search_soup: BeautifulSoup = BeautifulSoup(r.content, features="html.parser") + return [] + search_soup: BeautifulSoup = self.get_soup_from_response(r) # album and songs # child of div class: contacts row for contact_container_soup in search_soup.find_all("div", {"class": "contacts"}): - search_results.extend(cls.parse_contact_container(contact_container_soup)) + search_results.extend(self._parse_contact_container(contact_container_soup)) # song # div class: playlist__item for playlist_soup in search_soup.find_all("div", {"class": "playlist"}): - search_results.extend(cls.parse_playlist_soup(playlist_soup)) + search_results.extend(self._parse_playlist_soup(playlist_soup)) - return Options(search_results) + return search_results + + def fetch_song(self, source: Source, stop_at_level: int = 1) -> Song: + return Song() - @classmethod - def parse_album_card(cls, album_card: BeautifulSoup, artist_name: str = None) -> Album: - """ -
- - Self Loather - - -
-

- Self Loather -

-
- - - -
- """ - - album_type_map = defaultdict(lambda: AlbumType.OTHER, { - 1: AlbumType.OTHER, # literally other xD - 2: AlbumType.STUDIO_ALBUM, - 3: AlbumType.EP, - 4: AlbumType.SINGLE, - 5: AlbumType.OTHER, # BOOTLEG - 6: AlbumType.LIVE_ALBUM, - 7: AlbumType.COMPILATION_ALBUM, # compilation of different artists - 8: AlbumType.MIXTAPE, - 9: AlbumType.DEMO, - 10: AlbumType.MIXTAPE, # DJ Mixes - 11: AlbumType.COMPILATION_ALBUM, # compilation of only this artist - 12: AlbumType.STUDIO_ALBUM, # split - 13: AlbumType.COMPILATION_ALBUM, # unofficial - 14: AlbumType.MIXTAPE # "Soundtracks" - }) - - _id: Optional[str] = None - name: str = None - source_list: List[Source] = [] - timestamp: Optional[ID3Timestamp] = None - album_status = None - - def set_name(new_name: str): - nonlocal name - nonlocal artist_name - - # example of just setting not working: - # https://musify.club/release/unjoy-eurythmie-psychonaut-4-tired-numb-still-alive-2012-324067 - if new_name.count(" - ") != 1: - name = new_name - return - - potential_artist_list, potential_name = new_name.split(" - ") - unified_artist_list = string_processing.unify(potential_artist_list) - if artist_name is not None: - if string_processing.unify(artist_name) not in unified_artist_list: - name = new_name - return - - name = potential_name - return - - name = new_name - - album_status_id = album_card.get("data-type") - if album_status_id.isdigit(): - album_status_id = int(album_status_id) - album_type = album_type_map[album_status_id] - - if album_status_id == 5: - album_status = AlbumStatus.BOOTLEG - - def parse_release_anchor(_anchor: BeautifulSoup, text_is_name=False): - nonlocal _id - nonlocal name - nonlocal source_list - - if _anchor is None: - return - - href = _anchor.get("href") - if href is not None: - # add url to sources - source_list.append(Source( - cls.SOURCE_TYPE, - cls.HOST + href - )) - - # split id from url - split_href = href.split("-") - if len(split_href) > 1: - _id = split_href[-1] - - if not text_is_name: - return - - set_name(_anchor.text) - - anchor_list = album_card.find_all("a", recursive=False) - if len(anchor_list) > 0: - anchor = anchor_list[0] - parse_release_anchor(anchor) - - thumbnail: BeautifulSoup = anchor.find("img") - if thumbnail is not None: - alt = thumbnail.get("alt") - if alt is not None: - set_name(alt) - - image_url = thumbnail.get("src") - else: - cls.LOGGER.debug("the card has no thumbnail or url") - - card_body = album_card.find("div", {"class": "card-body"}) - if card_body is not None: - parse_release_anchor(card_body.find("a"), text_is_name=True) - - def parse_small_date(small_soup: BeautifulSoup): - """ - - - 13.11.2021 - - """ - nonlocal timestamp - - italic_tagging_soup: BeautifulSoup = small_soup.find("i") - if italic_tagging_soup is None: - return - if italic_tagging_soup.get("title") != "Добавлено": - # "Добавлено" can be translated to "Added (at)" - return - - raw_time = small_soup.text.strip() - timestamp = ID3Timestamp.strptime(raw_time, "%d.%m.%Y") - - # parse small date - card_footer_list = album_card.find_all("div", {"class": "card-footer"}) - if len(card_footer_list) != 3: - cls.LOGGER.debug("there are not exactly 3 card footers in a card") - - if len(card_footer_list) > 0: - for any_small_soup in card_footer_list[-1].find_all("small"): - parse_small_date(any_small_soup) - else: - cls.LOGGER.debug("there is not even 1 footer in the album card") - - return Album( - _id=_id, - title=name, - source_list=source_list, - date=timestamp, - album_type=album_type, - album_status=album_status - ) - - @classmethod - def get_discography(cls, url: MusifyUrl, artist_name: str = None, stop_at_level: int = 1) -> List[Album]: - """ - POST https://musify.club/artist/filteralbums - ArtistID: 280348 - SortOrder.Property: dateCreated - SortOrder.IsAscending: false - X-Requested-With: XMLHttpRequest - """ - - endpoint = cls.HOST + "/" + url.source_type.value + "/filteralbums" - - r = cls.post_request(url=endpoint, json={ - "ArtistID": str(url.musify_id), - "SortOrder.Property": "dateCreated", - "SortOrder.IsAscending": False, - "X-Requested-With": "XMLHttpRequest" - }) - if r is None: - return [] - soup: BeautifulSoup = BeautifulSoup(r.content, features="html.parser") - - discography: List[Album] = [] - for card_soup in soup.find_all("div", {"class": "card"}): - new_album: Album = cls.parse_album_card(card_soup, artist_name) - album_source: Source - - if stop_at_level > 1: - for album_source in new_album.source_collection.get_sources_from_page(cls.SOURCE_TYPE): - new_album.merge(cls._fetch_album_from_source(album_source, stop_at_level=stop_at_level-1)) - - discography.append(new_album) - - return discography - - @classmethod - def get_artist_attributes(cls, url: MusifyUrl) -> Artist: - """ - fetches the main Artist attributes from this endpoint - https://musify.club/artist/ghost-bath-280348?_pjax=#bodyContent - it needs to parse html - - :param url: - :return: - """ - - r = cls.CONNECTION.get(f"https://musify.club/{url.source_type.value}/{url.name_with_id}?_pjax=#bodyContent") - if r is None: - return Artist(_id=url.musify_id) - - soup = BeautifulSoup(r.content, "html.parser") - - """ - - - - -
-

Ghost Bath

-
- ... -
-
- - - """ - name = None - source_list: List[Source] = [] - country = None - notes: FormattedText = FormattedText() - - breadcrumbs: BeautifulSoup = soup.find("ol", {"class": "breadcrumb"}) - if breadcrumbs is not None: - breadcrumb_list: List[BeautifulSoup] = breadcrumbs.find_all("li", {"class": "breadcrumb-item"}, recursive=False) - if len(breadcrumb_list) == 3: - name = breadcrumb_list[-1].get_text(strip=True) - else: - cls.LOGGER.debug("breadcrumb layout on artist page changed") - - nav_tabs: BeautifulSoup = soup.find("ul", {"class": "nav-tabs"}) - if nav_tabs is not None: - list_item: BeautifulSoup - for list_item in nav_tabs.find_all("li", {"class": "nav-item"}, recursive=False): - if not list_item.get_text(strip=True).startswith("песни"): - # "песни" translates to "songs" - continue - - anchor: BeautifulSoup = list_item.find("a") - if anchor is None: - continue - href = anchor.get("href") - if href is None: - continue - - source_list.append(Source( - cls.SOURCE_TYPE, - cls.HOST + href - )) - - content_title: BeautifulSoup = soup.find("header", {"class": "content__title"}) - if content_title is not None: - h1_name: BeautifulSoup = content_title.find("h1", recursive=False) - if h1_name is not None: - name = h1_name.get_text(strip=True) - - # country and sources - icon_list: BeautifulSoup = soup.find("ul", {"class": "icon-list"}) - if icon_list is not None: - country_italic: BeautifulSoup = icon_list.find("i", {"class", "flag-icon"}) - if country_italic is not None: - style_classes: set = {'flag-icon', 'shadow'} - classes: set = set(country_italic.get("class")) - - country_set: set = classes.difference(style_classes) - if len(country_set) != 1: - cls.LOGGER.debug("the country set contains multiple values") - if len(country_set) != 0: - """ - This is the css file, where all flags that can be used on musify - are laid out and styled. - Every flag has two upper case letters, thus I assume they follow the alpha_2 - https://musify.club/content/flags.min.css - """ - - country = pycountry.countries.get(alpha_2=list(country_set)[0]) - - # get all additional sources - additional_source: BeautifulSoup - for additional_source in icon_list.find_all("a", {"class", "link"}): - href = additional_source.get("href") - if href is None: - continue - new_src = Source.match_url(href, referer_page=cls.SOURCE_TYPE) - if new_src is None: - continue - source_list.append(new_src) - - note_soup: BeautifulSoup = soup.find(id="text-main") - if note_soup is not None: - notes.html = note_soup.decode_contents() - - return Artist( - _id=url.musify_id, - name=name, - country=country, - source_list=source_list, - notes=notes - ) - - @classmethod - def _fetch_artist_from_source(cls, source: Source, stop_at_level: int = 1) -> Artist: - """ - fetches artist from source - - [x] discography - [x] attributes - [] picture gallery - - Args: - source (Source): the source to fetch - stop_at_level: int = 1: if it is false, every album from discograohy will be fetched. Defaults to False. - - Returns: - Artist: the artist fetched - """ - - url = cls.parse_url(source.url) - - artist = cls.get_artist_attributes(url) - - discography: List[Album] = cls.get_discography(url, artist.name) - artist.main_album_collection.extend(discography) - - return artist - - @classmethod - def parse_song_card(cls, song_card: BeautifulSoup) -> Song: + def _parse_song_card(self, song_card: BeautifulSoup) -> Song: """
@@ -821,8 +478,8 @@ class Musify(Page): track_anchor: BeautifulSoup = anchor_list[-1] href: str = track_anchor.get("href") if href is not None: - current_url = cls.HOST + href - source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + href)) + current_url = self.HOST + href + source_list.append(Source(self.SOURCE_TYPE, self.HOST + href)) song_name = parse_title(track_anchor.get_text(strip=True)) # artist @@ -834,7 +491,7 @@ class Musify(Page): if meta_artist_src is not None: meta_artist_url = meta_artist_src.get("content") if meta_artist_url is not None: - _artist_src = [Source(cls.SOURCE_TYPE, cls.HOST + meta_artist_url)] + _artist_src = [Source(self.SOURCE_TYPE, self.HOST + meta_artist_url)] meta_artist_name = artist_span.find("meta", {"itemprop": "name"}) if meta_artist_name is not None: @@ -861,9 +518,9 @@ class Musify(Page): download_href = download_anchor.get("href") if download_href is not None and current_url is not None: source_list.append(Source( - cls.SOURCE_TYPE, + self.SOURCE_TYPE, url=current_url, - adio_url=cls.HOST + download_href + adio_url=self.HOST + download_href )) return Song( @@ -873,8 +530,323 @@ class Musify(Page): source_list=source_list ) - @classmethod - def _parse_album(cls, soup: BeautifulSoup) -> Album: + def fetch_album(self, source: Source, stop_at_level: int = 1) -> Album: + """ + fetches album from source: + eg. 'https://musify.club/release/linkin-park-hybrid-theory-2000-188' + + /html/musify/album_overview.html + - [x] tracklist + - [x] attributes + - [ ] ratings + + :param stop_at_level: + :param source: + :return: + """ + + url = parse_url(source.url) + + endpoint = self.HOST + "/release/" + url.name_with_id + r = self.connection.get(endpoint) + if r is None: + return Album() + + soup = BeautifulSoup(r.content, "html.parser") + + album = self._parse_album(soup) + + #
...
+ cards_soup: BeautifulSoup = soup.find("div", {"class": "card-body"}) + if cards_soup is not None: + card_soup: BeautifulSoup + for card_soup in cards_soup.find_all("div", {"class": "playlist__item"}): + new_song = self._parse_song_card(card_soup) + album.song_collection.append(new_song) + + if stop_at_level > 1: + song: Song + for song in album.song_collection: + sources = song.source_collection.get_sources_from_page(cls.SOURCE_TYPE) + for source in sources: + song.merge(self.fetch_song(source=source)) + + album.update_tracksort() + + return album + + def _get_artist_attributes(self, url: MusifyUrl) -> Artist: + """ + fetches the main Artist attributes from this endpoint + https://musify.club/artist/ghost-bath-280348?_pjax=#bodyContent + it needs to parse html + + :param url: + :return: + """ + + r = self.connection.get(f"https://musify.club/{url.source_type.value}/{url.name_with_id}?_pjax=#bodyContent") + if r is None: + return Artist() + + soup = self.get_soup_from_response(r) + + """ + + + + +
+

Ghost Bath

+
+ ... +
+
+ +
    +
  • + + + Соединенные Штаты +
  • +
+ """ + name = None + source_list: List[Source] = [] + country = None + notes: FormattedText = FormattedText() + + breadcrumbs: BeautifulSoup = soup.find("ol", {"class": "breadcrumb"}) + if breadcrumbs is not None: + breadcrumb_list: List[BeautifulSoup] = breadcrumbs.find_all("li", {"class": "breadcrumb-item"}, recursive=False) + if len(breadcrumb_list) == 3: + name = breadcrumb_list[-1].get_text(strip=True) + else: + self.LOGGER.debug("breadcrumb layout on artist page changed") + + nav_tabs: BeautifulSoup = soup.find("ul", {"class": "nav-tabs"}) + if nav_tabs is not None: + list_item: BeautifulSoup + for list_item in nav_tabs.find_all("li", {"class": "nav-item"}, recursive=False): + if not list_item.get_text(strip=True).startswith("песни"): + # "песни" translates to "songs" + continue + + anchor: BeautifulSoup = list_item.find("a") + if anchor is None: + continue + href = anchor.get("href") + if href is None: + continue + + source_list.append(Source( + self.SOURCE_TYPE, + self.HOST + href + )) + + content_title: BeautifulSoup = soup.find("header", {"class": "content__title"}) + if content_title is not None: + h1_name: BeautifulSoup = content_title.find("h1", recursive=False) + if h1_name is not None: + name = h1_name.get_text(strip=True) + + # country and sources + icon_list: BeautifulSoup = soup.find("ul", {"class": "icon-list"}) + if icon_list is not None: + country_italic: BeautifulSoup = icon_list.find("i", {"class", "flag-icon"}) + if country_italic is not None: + style_classes: set = {'flag-icon', 'shadow'} + classes: set = set(country_italic.get("class")) + + country_set: set = classes.difference(style_classes) + if len(country_set) != 1: + self.LOGGER.debug("the country set contains multiple values") + if len(country_set) != 0: + """ + This is the css file, where all flags that can be used on musify + are laid out and styled. + Every flag has two upper case letters, thus I assume they follow the alpha_2 + https://musify.club/content/flags.min.css + """ + + country = pycountry.countries.get(alpha_2=list(country_set)[0]) + + # get all additional sources + additional_source: BeautifulSoup + for additional_source in icon_list.find_all("a", {"class", "link"}): + href = additional_source.get("href") + if href is None: + continue + new_src = Source.match_url(href, referer_page=self.SOURCE_TYPE) + if new_src is None: + continue + source_list.append(new_src) + + note_soup: BeautifulSoup = soup.find(id="text-main") + if note_soup is not None: + notes.html = note_soup.decode_contents() + + return Artist( + name=name, + country=country, + source_list=source_list, + notes=notes + ) + + def _parse_album_card(self, album_card: BeautifulSoup, artist_name: str = None) -> Album: + """ +
+ + Self Loather + + +
+

+ Self Loather +

+
+ + + +
+ """ + + _id: Optional[str] = None + name: str = None + source_list: List[Source] = [] + timestamp: Optional[ID3Timestamp] = None + album_status = None + + def set_name(new_name: str): + nonlocal name + nonlocal artist_name + + # example of just setting not working: + # https://musify.club/release/unjoy-eurythmie-psychonaut-4-tired-numb-still-alive-2012-324067 + if new_name.count(" - ") != 1: + name = new_name + return + + potential_artist_list, potential_name = new_name.split(" - ") + unified_artist_list = string_processing.unify(potential_artist_list) + if artist_name is not None: + if string_processing.unify(artist_name) not in unified_artist_list: + name = new_name + return + + name = potential_name + return + + name = new_name + + album_status_id = album_card.get("data-type") + if album_status_id.isdigit(): + album_status_id = int(album_status_id) + album_type = ALBUM_TYPE_MAP[album_status_id] + + if album_status_id == 5: + album_status = AlbumStatus.BOOTLEG + + def parse_release_anchor(_anchor: BeautifulSoup, text_is_name=False): + nonlocal _id + nonlocal name + nonlocal source_list + + if _anchor is None: + return + + href = _anchor.get("href") + if href is not None: + # add url to sources + source_list.append(Source( + self.SOURCE_TYPE, + self.HOST + href + )) + + # split id from url + split_href = href.split("-") + if len(split_href) > 1: + _id = split_href[-1] + + if not text_is_name: + return + + set_name(_anchor.text) + + anchor_list = album_card.find_all("a", recursive=False) + if len(anchor_list) > 0: + anchor = anchor_list[0] + parse_release_anchor(anchor) + + thumbnail: BeautifulSoup = anchor.find("img") + if thumbnail is not None: + alt = thumbnail.get("alt") + if alt is not None: + set_name(alt) + + image_url = thumbnail.get("src") + else: + self.LOGGER.debug("the card has no thumbnail or url") + + card_body = album_card.find("div", {"class": "card-body"}) + if card_body is not None: + parse_release_anchor(card_body.find("a"), text_is_name=True) + + def parse_small_date(small_soup: BeautifulSoup): + """ + + + 13.11.2021 + + """ + nonlocal timestamp + + italic_tagging_soup: BeautifulSoup = small_soup.find("i") + if italic_tagging_soup is None: + return + if italic_tagging_soup.get("title") != "Добавлено": + # "Добавлено" can be translated to "Added (at)" + return + + raw_time = small_soup.text.strip() + timestamp = ID3Timestamp.strptime(raw_time, "%d.%m.%Y") + + # parse small date + card_footer_list = album_card.find_all("div", {"class": "card-footer"}) + if len(card_footer_list) != 3: + self.LOGGER.debug("there are not exactly 3 card footers in a card") + + if len(card_footer_list) > 0: + for any_small_soup in card_footer_list[-1].find_all("small"): + parse_small_date(any_small_soup) + else: + self.LOGGER.debug("there is not even 1 footer in the album card") + + return Album( + _id=_id, + title=name, + source_list=source_list, + date=timestamp, + album_type=album_type, + album_status=album_status + ) + + def _parse_album(self, soup: BeautifulSoup) -> Album: name: str = None source_list: List[Source] = [] artist_list: List[Artist] = [] @@ -901,7 +873,7 @@ class Musify(Page): artist_source_list: List[Source] = [] if href is not None: - artist_source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + href.strip())) + artist_source_list.append(Source(self.SOURCE_TYPE, self.HOST + href.strip())) span: BeautifulSoup = anchor.find("span") if span is not None: @@ -910,14 +882,14 @@ class Musify(Page): source_list=artist_source_list )) else: - cls.LOGGER.debug("there are not 4 breadcrumb items, which shouldn't be the case") + self.LOGGER.debug("there are not 4 breadcrumb items, which shouldn't be the case") # meta meta_url: BeautifulSoup = soup.find("meta", {"itemprop": "url"}) if meta_url is not None: url = meta_url.get("content") if url is not None: - source_list.append(Source(cls.SOURCE_TYPE, cls.HOST + url)) + source_list.append(Source(self.SOURCE_TYPE, self.HOST + url)) meta_name: BeautifulSoup = soup.find("meta", {"itemprop": "name"}) if meta_name is not None: @@ -937,7 +909,7 @@ class Musify(Page): if artist_url_meta is not None: artist_href = artist_url_meta.get("content") if artist_href is not None: - artist_source_list.append(Source(cls.SOURCE_TYPE, url=cls.HOST + artist_href)) + artist_source_list.append(Source(self.SOURCE_TYPE, url=self.HOST + artist_href)) artist_meta_name = artist_anchor.find("meta", {"itemprop": "name"}) if artist_meta_name is not None: @@ -955,7 +927,7 @@ class Musify(Page): try: date = ID3Timestamp.strptime(raw_datetime, "%Y-%m-%d") except ValueError: - cls.LOGGER.debug(f"Raw datetime doesn't match time format %Y-%m-%d: {raw_datetime}") + self.LOGGER.debug(f"Raw datetime doesn't match time format %Y-%m-%d: {raw_datetime}") return Album( title=name, @@ -964,51 +936,107 @@ class Musify(Page): date=date ) - @classmethod - def _fetch_album_from_source(cls, source: Source, stop_at_level: int = 1) -> Album: + def _get_discography(self, url: MusifyUrl, artist_name: str = None, stop_at_level: int = 1) -> List[Album]: """ - fetches album from source: - eg. 'https://musify.club/release/linkin-park-hybrid-theory-2000-188' - - /html/musify/album_overview.html - - [x] tracklist - - [x] attributes - - [ ] ratings - - :param stop_at_level: - :param source: - :return: + POST https://musify.club/artist/filteralbums + ArtistID: 280348 + SortOrder.Property: dateCreated + SortOrder.IsAscending: false + X-Requested-With: XMLHttpRequest """ - url = cls.parse_url(source.url) + endpoint = self.HOST + "/" + url.source_type.value + "/filteralbums" - endpoint = cls.HOST + "/release/" + url.name_with_id - r = cls.CONNECTION.get(endpoint) + r = self.connection.post(url=endpoint, json={ + "ArtistID": str(url.musify_id), + "SortOrder.Property": "dateCreated", + "SortOrder.IsAscending": False, + "X-Requested-With": "XMLHttpRequest" + }) if r is None: - return Album() + return [] + soup: BeautifulSoup = BeautifulSoup(r.content, features="html.parser") - soup = BeautifulSoup(r.content, "html.parser") + discography: List[Album] = [] + for card_soup in soup.find_all("div", {"class": "card"}): + new_album: Album = self._parse_album_card(card_soup, artist_name) + album_source: Source + + if stop_at_level > 1: + for album_source in new_album.source_collection.get_sources_from_page(self.SOURCE_TYPE): + new_album.merge(self.fetch_album(album_source, stop_at_level=stop_at_level-1)) + + discography.append(new_album) - album = cls._parse_album(soup) + return discography - #
...
- cards_soup: BeautifulSoup = soup.find("div", {"class": "card-body"}) - if cards_soup is not None: - card_soup: BeautifulSoup - for card_soup in cards_soup.find_all("div", {"class": "playlist__item"}): - new_song = cls.parse_song_card(card_soup) - album.song_collection.append(new_song) + def fetch_artist(self, source: Source, stop_at_level: int = 1) -> Artist: + """ + fetches artist from source + + [x] discography + [x] attributes + [] picture gallery + + Args: + source (Source): the source to fetch + stop_at_level: int = 1: if it is false, every album from discograohy will be fetched. Defaults to False. + + Returns: + Artist: the artist fetched + """ + + url = parse_url(source.url) + + artist = self._get_artist_attributes(url) + + discography: List[Album] = self._get_discography(url, artist.name) + artist.main_album_collection.extend(discography) - if stop_at_level > 1: - song: Song - for song in album.song_collection: - sources = song.source_collection.get_sources_from_page(cls.SOURCE_TYPE) - for source in sources: - song.merge(cls._fetch_song_from_source(source=source)) - - album.update_tracksort() + return artist - return album + def fetch_label(self, source: Source, stop_at_level: int = 1) -> Label: + return Label() + + +class Musify(Page): + API_SESSION: requests.Session = requests.Session() + API_SESSION.headers = { + "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0", + "Connection": "keep-alive", + "Referer": "https://musify.club/" + } + API_SESSION.proxies = shared.proxies + TIMEOUT = 7 + POST_TIMEOUT = 15 + TRIES = 5 + HOST = "https://musify.club" + + CONNECTION = Connection( + host="https://musify.club/", + logger=MUSIFY_LOGGER + ) + + SOURCE_TYPE = SourcePages.MUSIFY + + LOGGER = shared.MUSIFY_LOGGER + + + + + + @classmethod + def get_plaintext_query(cls, query: Query) -> str: + if query.album is None: + return f"{query.artist or '*'} - {query.song or '*'}" + return f"{query.artist or '*'} - {query.album or '*'} - {query.song or '*'}" + + + + + + + @classmethod def _get_type_of_url(cls, url: str) -> Optional[Union[Type[Song], Type[Album], Type[Artist], Type[Label]]]: