parent
bbcee3ba06
commit
4ab79d3aab
@ -1,29 +1,16 @@
|
|||||||
# getDiscography
|
# getDiscography
|
||||||
|
[For Educational Purposes Only!]
|
||||||
|
|
||||||
Flask based utility that will allow a user to download an entire Discography for the provided artist.
|
#### Music Artist Discography Download Utility
|
||||||
|
|
||||||
## How to use:
|
This full-stack application will allow users to enter an artist, verify the target and queue up the albums to download.
|
||||||
|
|
||||||
Open the root directory of this project in a terminal.
|
Written in Laravel (Application) and Python (Task Runner).
|
||||||
|
|
||||||
Create a virtual environment with python.
|
To start:
|
||||||
```
|
|
||||||
python -m venv .
|
|
||||||
```
|
|
||||||
|
|
||||||
*For more about virtual environments, look here: https://docs.python.org/3/library/venv.html*
|
``docker compose up -d``
|
||||||
|
|
||||||
While in the virtual env (venv) install the requirements.txt file with:
|
To stop:
|
||||||
```
|
|
||||||
pip install -r ./requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
After all dependencies have been installed successfully, start the service with:
|
``docker compose down``
|
||||||
```
|
|
||||||
python app.py
|
|
||||||
```
|
|
||||||
|
|
||||||
The service will then be accessible at http://localhost for as long as the terminal stays open. To shutdown the service simply close the terminal or ctl + c
|
|
||||||
|
|
||||||
## Known issues
|
|
||||||
The latest versions of Ubuntu (22.04+ I believe) have swicted over to symlinking Firefox to the snap packages. Which causes an issue with the selenium driver. I suppose you could probably point to the executable file directly in the snap (not the symlink). I just use docker with a distro that doesn't have this problem, personally.
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
<div class="row">
|
||||||
|
<template x-for="album in $store.app.Queue" x-if="$store.app.Queue">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="queue_card">
|
||||||
|
<div class="card mb-3 p-0">
|
||||||
|
<div class="row g-0">
|
||||||
|
<div class="col-md-3">
|
||||||
|
|
||||||
|
<div class="dl_queue_img">
|
||||||
|
|
||||||
|
<!-- Downloading Spinner -->
|
||||||
|
<template x-if="album.state === 'progress'">
|
||||||
|
<div class="icn-downloading">
|
||||||
|
<i class="la la-6x la-compact-disc icn-spinner text-white"></i>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- Album Art -->
|
||||||
|
<img src="@{{ album.image }}" class="img-fluid rounded-start"
|
||||||
|
alt="@{{ album_id.name }}" style="width: 100%; height: 100%; min-height: 180px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9 vinyl-card">
|
||||||
|
<div class="card-body">
|
||||||
|
<a href="@{{ album.url_remote }}" target="_blank">
|
||||||
|
<h3 class="card-title">@{{ album.name }}</h3>
|
||||||
|
</a>
|
||||||
|
<h5 class="card-text"
|
||||||
|
style="font-weight: bold; font-family: serif;">@{{ album.artist_id.name }}</h5>
|
||||||
|
|
||||||
|
<template x-if="album.state === 'progress'">
|
||||||
|
<p>Downloading...</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template x-if="album.state === 'pending'">
|
||||||
|
<p class="text-muted">Waiting to Download</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template x-if="!$store.app.Queue">
|
||||||
|
<p>Queue is empty</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</div>
|
||||||
@ -1,41 +0,0 @@
|
|||||||
<div class="row">
|
|
||||||
{% for album_id in album_ids %}
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="queue_card">
|
|
||||||
<div class="card mb-3 p-0">
|
|
||||||
<div class="row g-0">
|
|
||||||
<div class="col-md-3">
|
|
||||||
|
|
||||||
<div class="dl_queue_img">
|
|
||||||
{% if album_id.downloading %}
|
|
||||||
<div class="icn-downloading">
|
|
||||||
<i class="la la-6x la-compact-disc icn-spinner text-white"></i>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<img src="{{ album_id.cover }}" class="img-fluid rounded-start"
|
|
||||||
alt="{{ album_id.album }}" style="width: 100%; height: 100%; min-height: 180px;">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-md-9 vinyl-card">
|
|
||||||
<div class="card-body">
|
|
||||||
<a href="https://youtube.com{{ album_id.link }}" target="_blank">
|
|
||||||
<h3 class="card-title">{{ album_id.album }}</h3>
|
|
||||||
</a>
|
|
||||||
<h5 class="card-text" style="font-weight: bold; font-family: serif;">{{ album_id.artist }}</h5>
|
|
||||||
{% if album_id.downloading %}
|
|
||||||
<p>Downloading...</p>
|
|
||||||
{% else %}
|
|
||||||
<p class="text-muted">Waiting to Download</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<p>Nothing waiting to download</p>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
Loading…
Reference in new issue