Vuelta a corregir las urls, ahora también funciona en ipfs
This commit is contained in:
parent
1a74816115
commit
e740c01e41
|
@ -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()
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
cd ..
|
||||
last_hash=$(ipfs add -r bideoak|awk '$3 == "bideoak" {print $2}')
|
||||
cd -
|
||||
echo "$last_hash" > ipfs.txt
|
|
@ -0,0 +1 @@
|
|||
QmVm7kQ3p4Sg7rT41XJEC6KbnAhhBjBCBAcbsUpZAtq5Fb
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
@font-face {
|
||||
font-family: "CyrBit";
|
||||
src: url("/static/css/CyrBit.ttf");
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
|
@ -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>
|
||||
Letras adaptadas con
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
|
|
|
@ -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>
|
||||
|
|
Reference in New Issue