1
0
mirror of https://github.com/krateng/maloja.git synced 2023-08-10 21:12:55 +03:00

Rudimentary start page

This commit is contained in:
Krateng 2019-02-02 16:54:01 +01:00
parent 4edc352bcc
commit 562c796a92
5 changed files with 182 additions and 7 deletions

View File

@ -410,8 +410,9 @@ def post_scrobble():
createScrobble(artists,title,time)
if (time - lastsync) > 3600:
sync()
#if (time - lastsync) > 3600:
# sync()
sync() #let's just always sync, not like one filesystem access every three minutes is a problem and it avoids lost tracks when we lose power
return ""

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
from bottle import Bottle, route, get, post, error, run, template, static_file, request, response, FormsDict
from bottle import Bottle, route, get, post, error, run, template, static_file, request, response, FormsDict, redirect, template
from importlib.machinery import SourceFileLoader
from htmlgenerators import removeIdentical
from utilities import *
@ -23,7 +23,7 @@ webserver = Bottle()
@webserver.route("")
@webserver.route("/")
def mainpage():
return static_file("main.html",root="")
return static_html("start")
# this is the fallback option. If you run this service behind a reverse proxy, it is recommended to rewrite /db/ requests to the port of the db server

View File

@ -16,6 +16,13 @@ a:hover {
text-decoration:underline;
}
/*
**
**
** TOP INFO TABLE
**
**
*/
table.top_info td.image {
padding:20px;
@ -48,11 +55,19 @@ p.desc a {
background-image:url("https://www.last.fm/static/images/lastfm_avatar_twitter.66cd2c48ce03.png");
}
/*
table.top_info td.text .stats {
color:grey;
}
**
**
** SPECIAL TEXT BITS
**
**
*/
.stats {
color:grey;
}
@ -69,6 +84,20 @@ a {
cursor:pointer;
}
/*
**
**
** LISTS
**
**
*/
table.list {
border-collapse:collapse;
}
@ -177,3 +206,62 @@ td.button.important div {
background-color:red;
color:white;
}
/*
**
**
** IMAGE TILES
**
**
*/
table.tiles_top td {
padding:0px;
border:0px;
}
table.tiles_top, table.tiles_sub {
border-collapse: collapse;
}
table.tiles_top>tbody>tr>td {
height:300px;
width:300px;
}
table.tiles_sub {
height:100%;
width:100%;
}
table.tiles_top td div {
background-size:cover;
background-position:center;
height:100%;
width:100%;
}
table.tiles_2x2 td {
height:50%;
width:50%;
font-size:90%
}
table.tiles_3x3 td {
height:33.333%;
width:33.333%;
font-size:70%
}

52
website/start.html Normal file
View File

@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Maloja</title>
<link rel="stylesheet" href="maloja.css" />
</head>
<body>
<h1>Top Artists</h1>
<table class="tiles_top">
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td>
<table class="tiles_2x2 tiles_sub">
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
</tr>
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
</tr>
</table>
</td>
<td>
<table class="tiles_3x3 tiles_sub">
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
</tr>
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
</tr>
<tr>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
<td><div style="background-image:url('KEY_ARTISTIMAGE')"><span class="stats">KEY_POSITION</span> KEY_ARTISTLINK</div></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

34
website/start.py Normal file
View File

@ -0,0 +1,34 @@
import urllib
import json
def replacedict(keys,dbport):
from utilities import getArtistInfo, getArtistsInfo
from htmlgenerators import artistLink, artistLinks, trackLink, scrobblesArtistLink, keysToUrl, pickKeys, clean
clean(keys)
timekeys = pickKeys(keys,"since","to","in")
limitkeys = pickKeys(keys)
# get chart data
response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/charts/artists?" + keysToUrl(timekeys,limitkeys))
db_data = json.loads(response.read())
charts = db_data["list"][:50]
topartist = charts[0]["artist"]
chartslist = [c["artist"] for c in charts]
#chartslistimg = [getArtistInfo(a).get("image") for a in chartslist]
chartslistimg = [info.get("image") for info in getArtistsInfo(chartslist)]
chartslistlink = [artistLink(a) for a in chartslist]
# get total amount of scrobbles
response = urllib.request.urlopen("http://localhost:" + str(dbport) + "/scrobbles?" + keysToUrl(timekeys,limitkeys))
db_data = json.loads(response.read())
scrobblelist = db_data["list"]
scrobbles = len(scrobblelist)
return {"KEY_ARTISTIMAGE":chartslistimg,"KEY_ARTISTNAME":chartslist,"KEY_ARTISTLINK":chartslistlink,"KEY_POSITION":["#" + str(i) for i in range(1,50)]}