Post pages
This commit is contained in:
parent
21f34d19d8
commit
01cc17e408
16
html/post-div.html
Normal file
16
html/post-div.html
Normal file
@ -0,0 +1,16 @@
|
||||
<div class="post" id="<!--id-->">
|
||||
<h2><!--title--></h2>
|
||||
<time title="<!--timestamp-->"><!--date--></time>
|
||||
<a href="<!--link-->">Link</a>
|
||||
<a href="<!--reddit-link-->">reddit Link</a>
|
||||
<a href="<!--content-link-->">Content Link</a>
|
||||
<div class="subreddit"><!--subreddit--></div>
|
||||
<div class="user"><!--user--></div>
|
||||
<div class="body">
|
||||
<!--body-->
|
||||
</div>
|
||||
<div class="preview">
|
||||
<!--preview-->
|
||||
</div>
|
||||
|
||||
<!--postend--></div>
|
@ -1,15 +1,13 @@
|
||||
<div class="post" id="<!--id-->">
|
||||
<h2><!--title--></h2>
|
||||
<time title="<!--timestamp-->"><!--date--></time>
|
||||
<a href="<!--link-->">Link</a>
|
||||
<a href="<!--content-link-->">Content Link</a>
|
||||
<div class="subreddit"><!--subreddit--></div>
|
||||
<div class="user"><!--user--></div>
|
||||
<div class="body">
|
||||
<!--body-->
|
||||
</div>
|
||||
<div class="preview">
|
||||
<!--preview-->
|
||||
</div>
|
||||
<html>
|
||||
<head>
|
||||
<title><!--title--></title>
|
||||
<style></style>
|
||||
</head>
|
||||
|
||||
<!--postend--></div>
|
||||
<body>
|
||||
<!--post-->
|
||||
<div class="comments">
|
||||
<h2>Comments</h2>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
8
save.py
8
save.py
@ -29,9 +29,11 @@ else:
|
||||
html_file = "upvoted.html"
|
||||
get_posts = get_upvoted_posts
|
||||
|
||||
# Make directory for media
|
||||
# Make directory for media and posts
|
||||
if not os.path.exists(os.path.join(location, "media")):
|
||||
os.mkdir(os.path.join(location, "media"))
|
||||
if not os.path.exists(os.path.join(location, "posts")):
|
||||
os.mkdir(os.path.join(location, "posts"))
|
||||
|
||||
# Are there any posts already?
|
||||
post_ids, posts_html = [], []
|
||||
@ -55,6 +57,9 @@ else:
|
||||
if media:
|
||||
post_html = add_media_preview_to_html(post_html, media)
|
||||
posts_html.append(post_html)
|
||||
page_html = create_post_page_html(post, post_html)
|
||||
with open(os.path.join(location, "posts", f"{post.id}.html"), "w") as f:
|
||||
f.write(page_html)
|
||||
|
||||
# Save HTML
|
||||
with open(os.path.join("html", html_file)) as f:
|
||||
@ -65,3 +70,4 @@ html = html.replace("<!--posts-->", "\n".join(posts_html))
|
||||
with open(os.path.join(location, html_file), "w") as f:
|
||||
f.write(html)
|
||||
|
||||
|
||||
|
17
utilities.py
17
utilities.py
@ -46,13 +46,14 @@ def get_post_html(post):
|
||||
"""Takes a post object and creates a HTML for it - but not including the
|
||||
preview HTML."""
|
||||
|
||||
with open(os.path.join("html", "post.html")) as f:
|
||||
with open(os.path.join("html", "post-div.html")) as f:
|
||||
html = f.read()
|
||||
dt = datetime.utcfromtimestamp(post.created_utc)
|
||||
html = html.replace("<!--title-->", post.title)
|
||||
html = html.replace("<!--subreddit-->", f"/r/{str(post.subreddit)}")
|
||||
html = html.replace("<!--user-->", f"/u/{post.author.name}" if post.author else "[deleted]")
|
||||
html = html.replace("<!--link-->", f"https://reddit.com{post.permalink}")
|
||||
html = html.replace("<!--link-->", f"posts/{post.id}.html")
|
||||
html = html.replace("<!--reddit-link-->", f"https://reddit.com{post.permalink}")
|
||||
html = html.replace("<!--content-link-->", post.url)
|
||||
html = html.replace("<!--id-->", post.id)
|
||||
html = html.replace("<!--body-->", post.selftext_html or "")
|
||||
@ -155,3 +156,15 @@ def add_media_preview_to_html(post_html, media):
|
||||
f'<video controls><source src="{location}"></video>'
|
||||
)
|
||||
return post_html
|
||||
|
||||
|
||||
def create_post_page_html(post, post_html):
|
||||
with open(os.path.join("html", "post.html")) as f:
|
||||
html = f.read()
|
||||
html = html.replace("<!--title-->", post.title)
|
||||
html = html.replace("<!--post-->", post_html.replace("h2>", "h1>").replace(
|
||||
'<img src="media/', '<img src="../media/'
|
||||
))
|
||||
with open(os.path.join("html", "style.css")) as f:
|
||||
html = html.replace("<style></style>", f"<style>\n{f.read()}\n</style>")
|
||||
return html
|
Loading…
Reference in New Issue
Block a user