Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e106e6da6 | |||
| 68eb4a22b7 |
@@ -53,5 +53,5 @@ My thanks to [aerkalov/ebooklib](https://github.com/aerkalov/ebooklib) for a fas
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<p>TheOnlyWayUp © 2025</p>
|
||||
<p>TheOnlyWayUp © 2026</p>
|
||||
</div>
|
||||
|
||||
+19
-5
@@ -174,12 +174,26 @@ async def handle_download(
|
||||
story_zip = await fetch_story_content_zip(story_id, cookies)
|
||||
archive = ZipFile(story_zip, "r")
|
||||
|
||||
part_trees: list[BeautifulSoup] = [
|
||||
clean_tree(
|
||||
part["title"], part["id"], archive.read(str(part["id"])).decode("utf-8")
|
||||
# Transform part metadata into an easily-indexable dictionary
|
||||
part_id_title_dictionary = {
|
||||
str(part["id"]): part["title"] for part in metadata["parts"]
|
||||
}
|
||||
|
||||
part_trees: list[BeautifulSoup] = []
|
||||
|
||||
for id in archive.namelist():
|
||||
if (
|
||||
id not in part_id_title_dictionary
|
||||
): # If a part is deleted and the old story_zip is cached, this is needed to avoid a KeyError exception
|
||||
continue
|
||||
|
||||
part_trees.append(
|
||||
clean_tree(
|
||||
part_id_title_dictionary[id],
|
||||
id,
|
||||
archive.read(id).decode("utf-8"),
|
||||
)
|
||||
)
|
||||
for part in metadata["parts"]
|
||||
]
|
||||
|
||||
images = (
|
||||
[await fetch_tree_images(tree) for tree in part_trees]
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
href="https://github.com/TheOnlyWayUp"
|
||||
class="underline"
|
||||
target="_blank">TheOnlyWayUp</a
|
||||
> © 2025
|
||||
> © 2026
|
||||
</p>
|
||||
</aside>
|
||||
</footer>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
>
|
||||
</div>
|
||||
<p>
|
||||
Copyright © 2025 - All rights reserved by <a
|
||||
Copyright © 2026 - All rights reserved by <a
|
||||
href="https://rambhat.la"
|
||||
class="link"
|
||||
target="_blank"
|
||||
|
||||
Reference in New Issue
Block a user