started album squared thing

This commit is contained in:
0x01fe 2024-04-03 16:32:27 -05:00
parent 3fefdcc7d8
commit 75260fac0e
9 changed files with 169 additions and 1 deletions

View File

@ -2,6 +2,7 @@ import glob
import configparser
import random
import requests
import flask
import waitress
import markdown
@ -19,6 +20,9 @@ STATUS_FILE = config['STATUS']['STATUS_FILE']
PORT = int(config['NETWORK']['PORT'])
DEV = int(config['NETWORK']['DEV'])
MUSIC_API_TOKEN = config['AUTH']['MUSIC_API_TOKEN']
MUSIC_API_URL = config['NETWORK']['MUSIC_API_URL']
def get_posts(category_filter : str | None = None) -> list[Post]:
post_files = glob.glob(f'{POSTS_FOLDER}/*')
try:
@ -105,7 +109,25 @@ def music():
# Get status
status = get_status()
return flask.render_template('music.html', posts=post_bodies, status=status)
# Get top albums
r = requests.get(
MUSIC_API_URL +'/top/albums',
headers={
'token' : MUSIC_API_TOKEN,
'user' : '1',
'limit' : '9'
})
top_albums = r.json()['top']
for album_index in range(0, len(top_albums)):
album = top_albums[album_index]
time = int(album['listen_time'])
hours = round(time/1000/60/60, 1)
top_albums[album_index]['listen_time'] = hours
return flask.render_template('music.html', posts=post_bodies, status=status, top_albums=top_albums)
# Motion Pictures Page
@app.route('/motion-pictures/')
@ -148,6 +170,38 @@ def about():
return flask.render_template('about.html', status=status)
# MISC
@app.route('/albumsquare/<user_id>/<int:rows>')
def album_square(user_id, rows : int):
limit = rows ** 2
res = 100/(rows+2)
# Get top albums
r = requests.get(
MUSIC_API_URL +'/top/albums',
headers={
'token' : MUSIC_API_TOKEN,
'user' : user_id,
'limit' : str(limit)
})
top_albums = r.json()['top']
for album_index in range(0, len(top_albums)):
album = top_albums[album_index]
time = int(album['listen_time'])
hours = round(time/1000/60/60, 1)
top_albums[album_index]['listen_time'] = hours
return flask.render_template('album_square.html', top_albums=top_albums, limit=rows, res=res)
if __name__ == "__main__":
if DEV:
app.run(port=PORT)

8
app/data/comments.json Normal file
View File

@ -0,0 +1,8 @@
{
"2" : [
{
"username" : "0x01FE",
"content" : "Hello, this is an example comment!"
}
]
}

5
app/data/users.json Normal file
View File

@ -0,0 +1,5 @@
{
"users" : {
"0x01FE" : "cGFzc3dvcmQ="
}
}

View File

@ -0,0 +1,31 @@
.albums {
height: 100%;
height: fit-content;
align-self: flex-start;
border-style: var(--borders-style);
border-radius: var(--border-radius);
border-color: #1E2022;
background-color: var(--main-background);
/* Text Settings
font-weight: bold;
line-height: 30pt; */
line-height: 0;
font-size: 0;
}
.albums img {
height: 100px;
width: 100px;
padding: 0 0;
margin: 0 0;
border: 0 0;
}
.body {
height: 100%;
padding: 0 0;
margin: 0 0;
}

View File

@ -172,3 +172,41 @@ a:hover {
line-height: 2.25;
text-indent: 3em;
}
/* MUSIC */
.albums {
height: fit-content;
align-self: flex-start;
top: 10px;
padding: 20pt;
margin: 5em 0;
margin-right: 2em;
border-style: var(--borders-style);
border-radius: var(--border-radius);
border-color: #1E2022;
background-color: var(--main-background);
/* Text Settings
font-weight: bold;
line-height: 30pt; */
line-height: 0;
font-size: 0;
}
.albums img {
height: 100px;
width: 100px;
padding: 0 0;
margin: 0 0;
border: 0 0;
}
.albums h1 {
font-size: normal;
text-align: center;
padding: 0.5em 0;
}

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<header>
<link rel="shortcut icon" href="index_favicon.ico">
<link rel="stylesheet" href="{{ url_for('static', filename='albumsquare.css') }}">
<title>Album Square</title>
</header>
<body>
<div class="albums">
{% for album in top_albums %}
<a title="{{ album.album_name}} by {{ album.artist_name }} - {{ album.listen_time }} Hours">
<img src="{{ album.album_cover }}" style="width: {{ res }}%; height: {{ res }}%;">
</a>
{% if loop.index % limit == 0 %}
<br>
{% endif %}
{% endfor %}
</div>
</body>
</html>

View File

@ -28,6 +28,18 @@
<div class="post">{{ post|safe }}</div>
{% endfor %}
</div>
<div class="albums">
<h1>Top Albums</h1>
{% for album in top_albums %}
<a title="{{ album.album_name}} by {{ album.artist_name }} - {{ album.listen_time }} Hours">
<img src="{{ album.album_cover }}">
</a>
{% if loop.index % 3 == 0 %}
<br>
{% endif %}
{% endfor %}
</div>
</div>
</body>
</html>