5 Commits

Author SHA1 Message Date
Aron BenDaniel 0e106e6da6 Update copyright year to 2026 2026-01-08 01:12:06 +05:30
Aron BenDaniel 68eb4a22b7 fix(api): Restructure archive parsing to iterate through archive items 2026-01-07 00:48:15 +05:30
Aron BenDaniel 6c1a145577 docker: Fix .dockerignore uv.lock entry 2025-10-31 05:49:08 +05:30
Dhanush R cc9ac6093f feat(api): Remove dependency on exiftool (#82) 2025-10-30 16:11:16 +05:30
Aaron BenDaniel fa60de79fd Update README.md copyright year
The future is now.
2025-10-29 01:44:54 +05:30
4 changed files with 22 additions and 8 deletions
+1 -1
View File
@@ -53,5 +53,5 @@ My thanks to [aerkalov/ebooklib](https://github.com/aerkalov/ebooklib) for a fas
---
<div align="center">
<p>TheOnlyWayUp © 2024</p>
<p>TheOnlyWayUp © 2026</p>
</div>
+18 -4
View File
@@ -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] = [
# 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["title"], part["id"], archive.read(str(part["id"])).decode("utf-8")
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]
+1 -1
View File
@@ -19,7 +19,7 @@
href="https://github.com/TheOnlyWayUp"
class="underline"
target="_blank">TheOnlyWayUp</a
> © 2025
> © 2026
</p>
</aside>
</footer>
+1 -1
View File
@@ -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"