Vuelta a corregir las urls, ahora también funciona en ipfs

This commit is contained in:
Ales (Shagi) Zabala Alava 2019-09-12 20:02:58 +02:00
parent 1a74816115
commit e740c01e41
7 changed files with 42 additions and 34 deletions

View File

@ -4,15 +4,8 @@ from pathlib import Path, PurePath
from negromateweb.builder import Builder
if len(sys.argv) == 2:
root_path = sys.argv[1]
else:
# root_path = '/nm/'
root_path = '/'
builder = Builder(
Path('../bideoak'),
Path('../libreto/libreto.pdf'),
root_path=PurePath(root_path)
)
builder.build()

5
web/ipfs.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
cd ..
last_hash=$(ipfs add -r bideoak|awk '$3 == "bideoak" {print $2}')
cd -
echo "$last_hash" > ipfs.txt

1
web/ipfs.txt Normal file
View File

@ -0,0 +1 @@
QmVm7kQ3p4Sg7rT41XJEC6KbnAhhBjBCBAcbsUpZAtq5Fb

View File

@ -13,11 +13,12 @@ import webvtt
class SongPage:
THUMBNAIL_GEOMETRY = '200x200'
def __init__(self, path):
def __init__(self, path, root):
self.name = path.name
self.original = None
self.author = None
self.path = path
self.root = root
self.video = None
self.video_type = None
self.vtt = None
@ -112,9 +113,11 @@ class SongPage:
parsed_srt = list(srt.parse(srt_str))
except Exception as e:
print("{}: srt parse error: {}".format(self.path.name, e))
root_path = os.path.relpath(self.root, self.path)
return {
'song': self,
'parsed_srt': parsed_srt,
'root_path': root_path,
}
def render(self, builder, context):
@ -124,10 +127,9 @@ class SongPage:
class Builder:
def __init__(self, root_folder, libreto, root_path=PurePath('/')):
def __init__(self, root_folder, libreto):
self.root_folder = root_folder
self.libreto = libreto
self.root_path = root_path
self.static_dir = Path(__file__).parent / 'static'
self.env = Environment(
@ -135,13 +137,16 @@ class Builder:
autoescape=select_autoescape(['html']),
)
self.env.filters['url'] = self.url
self.current_path = self.root_folder
def url(self, path):
return self.root_path / path.relative_to(self.root_folder)
return os.path.relpath(path, self.current_path)
def render(self, template, target, context):
html_file = target / 'index.html'
page_template = self.env.get_template(template)
root_path = os.path.relpath(self.root_folder, target)
context['root_path'] = root_path
with html_file.open('w') as page:
page.write(page_template.render(context))
@ -154,7 +159,7 @@ class Builder:
if entry.is_dir():
print("building {}".format(entry.name))
try:
songpage = SongPage(entry)
songpage = SongPage(entry, self.root_folder)
except Exception as e:
raise e
print("Error: {}".format(e))
@ -164,20 +169,23 @@ class Builder:
songs.sort(key=lambda a: a.name)
global_context = {
'songs': songs,
'root_path': self.root_path,
'root_folder': self.root_folder,
}
for song in songs:
self.current_path = song.path
song.render(self, global_context)
self.render('index.html', self.root_folder, global_context)
home = self.root_folder / 'home'
self.current_path = home
if not home.exists():
home.mkdir()
self.render('home.html', home, global_context)
playlist = self.root_folder / 'playlist'
self.current_path = playlist
if not playlist.exists():
playlist.mkdir()

View File

@ -1,8 +1,3 @@
@font-face {
font-family: "CyrBit";
src: url("/static/css/CyrBit.ttf");
}
body {
display: flex;
flex-wrap: wrap;

View File

@ -4,23 +4,29 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Negro Mate</title>
<link rel="shortcut icon" href="{{ root_path }}static/css/nm_icon.png">
<link href="{{ root_path }}static/js/videojs/video-js.css" rel="stylesheet">
<link href="{{ root_path }}static/js/libjass/lib/libjass.css" rel="stylesheet">
<link href="{{ root_path }}static/js/videojs-playlist-ui/dist/videojs-playlist-ui.vertical.css" rel="stylesheet">
<link href="{{ root_path }}static/css/main.css" rel="stylesheet">
<link rel="shortcut icon" href="{{ root_path }}/static/css/nm_icon.png">
<link href="{{ root_path }}/static/js/videojs/video-js.css" rel="stylesheet">
<link href="{{ root_path }}/static/js/libjass/lib/libjass.css" rel="stylesheet">
<link href="{{ root_path }}/static/js/videojs-playlist-ui/dist/videojs-playlist-ui.vertical.css" rel="stylesheet">
<link href="{{ root_path }}/static/css/main.css" rel="stylesheet">
<style>
@font-face {
font-family: "CyrBit";
src: url("{{ root_path }}/static/css/CyrBit.ttf");
}
</style>
<script>
window.HELP_IMPROVE_VIDEOJS = false;
</script>
<script src="{{ root_path}}static/js/videojs/video.js"></script>
<script src="{{ root_path}}static/js/libjass/lib/libjass.js"></script>
<script src="{{ root_path}}static/js/videojs-playlist/dist/videojs-playlist.js"></script>
<script src="{{ root_path}}static/js/videojs-playlist-ui/dist/videojs-playlist-ui.js"></script>
<script src="{{ root_path}}static/js/videojs-ass/src/videojs.ass.js"></script>
<script src="{{ root_path }}/static/js/videojs/video.js"></script>
<script src="{{ root_path }}/static/js/libjass/lib/libjass.js"></script>
<script src="{{ root_path }}/static/js/videojs-playlist/dist/videojs-playlist.js"></script>
<script src="{{ root_path }}/static/js/videojs-playlist-ui/dist/videojs-playlist-ui.js"></script>
<script src="{{ root_path }}/static/js/videojs-ass/src/videojs.ass.js"></script>
</head>
<body>
<header id="header">
<h1><a href="{{ root_path }}home/">Negro Mate</a></h1>
<h1><a href="{{ root_path }}/home/">Negro Mate</a></h1>
</header>
<div id="content">
{% block content %}{% endblock %}
@ -32,15 +38,15 @@
<li><a href="{{ item.path|url }}/">{{ item.name }}</a></li>
{% endfor %}
</ul>
<p id="playlist"><a href="{{ root_path }}playlist/">Playlist</a></p>
<p id="libreto"><a href="{{ root_path }}static/libreto/libreto.pdf"><img src="{{ root_path }}static/libreto/libreto.png" alt="libreto negro mate">Libreto</a></p>
<p id="playlist"><a href="{{ root_path }}/playlist/">Playlist</a></p>
<p id="libreto"><a href="{{ root_path }}/static/libreto/libreto.pdf"><img src="{{ root_path }}/static/libreto/libreto.png" alt="libreto negro mate">Libreto</a></p>
<p id="onion"><a href="http://fyqxyftczmxv3nmb.onion/">http://fyqxyftczmxv3nmb.onion/</a></p>
</nav>
{% endblock %}
<footer>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">
<img alt="Licencia Creative Commons" style="border-width:0" src="{{ root_path }}static/css/cc-by-sa.png" />
<img alt="Licencia Creative Commons" style="border-width:0" src="{{ root_path }}/static/css/cc-by-sa.png" />
</a>&nbsp;
Letras adaptadas con
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Negro Mate</title>
<link rel="shortcut icon" href="{{ root_path }}static/css/nm_icon.png" type="image/png">
<link rel="shortcut icon" href="{{ root_path }}/static/css/nm_icon.png" type="image/png">
<style>
body {
background-color: #232323;
@ -36,6 +36,6 @@ a {
</head>
<body>
<h1>Negro mate</h1>
<a href="{{ root_path }}home/">#</a>
<a href="{{ root_path }}/home/">#</a>
</body>
</html>