mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Some brushing up
This commit is contained in:
parent
2c723e2586
commit
4b3cd8cce3
24
README.md
24
README.md
@ -22,20 +22,22 @@ You can check [my own Maloja page](https://maloja.krateng.ch) to see what it cur
|
|||||||
|
|
||||||
The software works fairly well and has a few web views, but there is only one scrobbler (a Chrome extension for Plex).
|
The software works fairly well and has a few web views, but there is only one scrobbler (a Chrome extension for Plex).
|
||||||
|
|
||||||
## How to install
|
## Requirements
|
||||||
|
|
||||||
Installing Maloja is fairly easy on a Linux machine. Don't ask me how to do it on Windows, I have no clue. Don't ask me to add any lines to make it work on Windows either, the code is already shitty enough.
|
|
||||||
|
|
||||||
1) Install the requirements:
|
|
||||||
|
|
||||||
* [bottle.py](https://github.com/bottlepy/bottle)
|
* [bottle.py](https://github.com/bottlepy/bottle)
|
||||||
* [waitress](https://github.com/Pylons/waitress)
|
* [waitress](https://github.com/Pylons/waitress)
|
||||||
|
|
||||||
2) Put the Maloja folder anywhere and make sure the file "maloja" is executable. Start the server with
|
## How to install
|
||||||
|
|
||||||
|
Installing Maloja is fairly easy on a Linux machine. Don't ask me how to do it on Windows, I have no clue. Don't ask me to add any lines to make it work on Windows either, the code is already shitty enough.
|
||||||
|
|
||||||
|
1) Put the Maloja folder anywhere and make sure the file "maloja" is executable. Start the server with
|
||||||
|
|
||||||
./maloja start
|
./maloja start
|
||||||
|
|
||||||
|
If you're missing packages, the console output will tell you so. Install them.
|
||||||
|
|
||||||
3) (Recommended) Put your server behind a reverse proxy for SSL encryption. Configure that proxy to rewrite /db/ requests to the database port. In nginx this would look as follows:
|
2) (Recommended) Put your server behind a reverse proxy for SSL encryption. Configure that proxy to rewrite /db/ requests to the database port. In nginx this would look as follows:
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://yoururl:42010;
|
proxy_pass http://yoururl:42010;
|
||||||
@ -46,11 +48,13 @@ Installing Maloja is fairly easy on a Linux machine. Don't ask me how to do it o
|
|||||||
proxy_pass http://yoururl:42011;
|
proxy_pass http://yoururl:42011;
|
||||||
}
|
}
|
||||||
|
|
||||||
4) In order to scrobble your music from Plex Web, install the included Chrome extension. Make sure to generate a random key and enter that key in the extension as well as the file autenticated_machines.tsv in the clients folder.
|
## How to use
|
||||||
|
|
||||||
5) If you would like to import all your previous last.fm scrobbles, use [benfoxall's website](https://benjaminbenben.com/lastfm-to-csv/) ([GitHub page](https://github.com/benfoxall/lastfm-to-csv)). Use the python script lastfmconverter.py with two arguments - the downloaded csv file and your new tsv file - to convert your data. Place the tsv file in scrobbles/ and the server will recognize it on startup.
|
1) In order to scrobble your music from Plex Web, install the included Chrome extension. Make sure to generate a random key and enter that key in the extension as well as the file autenticated_machines.tsv in the clients folder.
|
||||||
|
|
||||||
6) You can interact with the server at any time with the commands
|
2) If you would like to import all your previous last.fm scrobbles, use [benfoxall's website](https://benjaminbenben.com/lastfm-to-csv/) ([GitHub page](https://github.com/benfoxall/lastfm-to-csv)). Use the python script lastfmconverter.py with two arguments - the downloaded csv file and your new tsv file - to convert your data. Place the tsv file in scrobbles/ and the server will recognize it on startup.
|
||||||
|
|
||||||
|
3) You can interact with the server at any time with the commands
|
||||||
|
|
||||||
./maloja stop
|
./maloja stop
|
||||||
./maloja restart
|
./maloja restart
|
||||||
|
@ -16,6 +16,29 @@ a:hover {
|
|||||||
text-decoration:underline;
|
text-decoration:underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Github link
|
||||||
|
**/
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
position:fixed;
|
||||||
|
height:20px;
|
||||||
|
width:100%;
|
||||||
|
background-color:rgba(0.5,0.5,0.5,0.3);
|
||||||
|
bottom:0px;
|
||||||
|
left:0px;
|
||||||
|
padding:10px;
|
||||||
|
opacity:0.8;
|
||||||
|
}
|
||||||
|
div.footer span a {
|
||||||
|
padding-left:20px;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-size:contain;
|
||||||
|
background-position:left;
|
||||||
|
background-image:url("https://github.com/favicon.ico");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
|
@ -269,6 +269,11 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<span>Get your own Maloja scrobble server on <a href="https://github.com/krateng/maloja">GitHub</a></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import urllib
|
import urllib
|
||||||
import json
|
import json
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
#import database
|
||||||
|
|
||||||
|
|
||||||
def getpictures(ls,result,tracks=False):
|
def getpictures(ls,result,tracks=False):
|
||||||
@ -20,7 +21,6 @@ def instructions(keys,dbport):
|
|||||||
posrange = ["#" + str(i) for i in range(1,max_show)]
|
posrange = ["#" + str(i) for i in range(1,max_show)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#clean(keys)
|
#clean(keys)
|
||||||
#timekeys = pickKeys(keys,"since","to","in")
|
#timekeys = pickKeys(keys,"since","to","in")
|
||||||
#limitkeys = pickKeys(keys)
|
#limitkeys = pickKeys(keys)
|
||||||
@ -31,6 +31,7 @@ def instructions(keys,dbport):
|
|||||||
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/charts/artists")
|
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/charts/artists")
|
||||||
db_data = json.loads(response.read())
|
db_data = json.loads(response.read())
|
||||||
charts = db_data["list"][:max_show]
|
charts = db_data["list"][:max_show]
|
||||||
|
#charts = database.get_charts_artists()[:max_show]
|
||||||
topartist = charts[0]["artist"]
|
topartist = charts[0]["artist"]
|
||||||
|
|
||||||
artisttitles = [c["artist"] for c in charts]
|
artisttitles = [c["artist"] for c in charts]
|
||||||
@ -45,6 +46,7 @@ def instructions(keys,dbport):
|
|||||||
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/charts/tracks")
|
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/charts/tracks")
|
||||||
db_data = json.loads(response.read())
|
db_data = json.loads(response.read())
|
||||||
charts = db_data["list"][:max_show]
|
charts = db_data["list"][:max_show]
|
||||||
|
#charts = database.get_charts_trackss()[:max_show]
|
||||||
|
|
||||||
trackobjects = [t["track"] for t in charts]
|
trackobjects = [t["track"] for t in charts]
|
||||||
tracktitles = [t["title"] for t in trackobjects]
|
tracktitles = [t["title"] for t in trackobjects]
|
||||||
@ -60,6 +62,7 @@ def instructions(keys,dbport):
|
|||||||
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/scrobbles?max=50")
|
response = urllib.request.urlopen("http://[::1]:" + str(dbport) + "/scrobbles?max=50")
|
||||||
db_data = json.loads(response.read())
|
db_data = json.loads(response.read())
|
||||||
scrobblelist = db_data["list"]
|
scrobblelist = db_data["list"]
|
||||||
|
#scrobblelist = database.get_scrobbles(max=50)
|
||||||
scrobbletrackobjects = scrobblelist #ignore the extra time attribute, the format should still work
|
scrobbletrackobjects = scrobblelist #ignore the extra time attribute, the format should still work
|
||||||
scrobbleartists = [", ".join([artistLink(a) for a in s["artists"]]) for s in scrobblelist]
|
scrobbleartists = [", ".join([artistLink(a) for a in s["artists"]]) for s in scrobblelist]
|
||||||
scrobbletitles = [s["title"] for s in scrobblelist]
|
scrobbletitles = [s["title"] for s in scrobblelist]
|
||||||
|
Loading…
Reference in New Issue
Block a user