Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d79c23cde4 | ||
| 5427501364 | |||
|
eef6ac4ee0
|
|||
|
c2fc3fd316
|
|||
|
|
265c493349 | ||
| 63adf36866 | |||
|
89ba33378f
|
@@ -2,7 +2,14 @@
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["add","Add", "Kind/Feature"]
|
||||
"labels": [
|
||||
"add",
|
||||
"Add",
|
||||
"Kind/Feature",
|
||||
"feat",
|
||||
"Feature",
|
||||
"Feat"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
@@ -18,16 +25,50 @@
|
||||
"labels": ["docs","Docs", "Kind/Documentation"]
|
||||
},
|
||||
{
|
||||
"title": "## 🧹 Chore",
|
||||
"labels": ["chore","Chore", "Kind/Chore"]
|
||||
"title": "## 🛠️ Maintenance",
|
||||
"labels": [
|
||||
"maintenance",
|
||||
"Maintenance",
|
||||
"Kind/Maintenance",
|
||||
"chore",
|
||||
"Chore",
|
||||
"Kind/Chore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "## 🛠️ Maintenance",
|
||||
"labels": ["maintenance","Maintenance", "Kind/Maintenance"]
|
||||
"title": "## ⏪ Reverts",
|
||||
"labels": [
|
||||
"revert",
|
||||
"Revert",
|
||||
"Kind/Revert",
|
||||
"Kind/Reverts",
|
||||
"reverts",
|
||||
"Reverts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "## 🗑️ Deprecation",
|
||||
"labels": ["deprecation","Deprecation", "Kind/Deprecation"]
|
||||
},
|
||||
{
|
||||
"title": "## ⚡️ Performance Improvements",
|
||||
"labels": [
|
||||
"perf",
|
||||
"Perf",
|
||||
"Kind/Performance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "## 🎨 Styling",
|
||||
"labels": [
|
||||
"style",
|
||||
"Style",
|
||||
"Kind/Style"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "## 🎯 Other Changes",
|
||||
"labels": []
|
||||
}
|
||||
],
|
||||
"label_extractor": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "kompage"
|
||||
version = "0.1.1"
|
||||
version = "0.1.3"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
@@ -28,7 +28,7 @@ url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/"
|
||||
|
||||
|
||||
[tool.bumpversion]
|
||||
current_version = "0.1.1"
|
||||
current_version = "0.1.3"
|
||||
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
||||
serialize = ["{major}.{minor}.{patch}"]
|
||||
search = "{current_version}"
|
||||
|
||||
30
src/app.py
30
src/app.py
@@ -301,18 +301,19 @@ async def log_request():
|
||||
log.debug(f"Received request data: {data}")
|
||||
item = data.get("item")
|
||||
if item:
|
||||
data = await fetch_requested_data([item])
|
||||
# data = await fetch_requested_data([item])
|
||||
if not data:
|
||||
return jsonify({"status": "failed", "message": "Item not found"}), 404
|
||||
data = data[0]
|
||||
title = data.get("title")
|
||||
image_url = data.get("image")
|
||||
# data = data[0]
|
||||
manga_id = item.get("id")
|
||||
title = item.get("title")
|
||||
image_url = item.get("image")
|
||||
log.debug(
|
||||
f"Logging request for item: {item}, title: {title}, image_url: {image_url}"
|
||||
f"Logging request for item: {item}, title: {title}, image_url: {image_url}, manga_id: {manga_id}"
|
||||
)
|
||||
asynccache = KomCache()
|
||||
asynccache.insert(
|
||||
f"INSERT INTO manga_requests (manga_id, title, image) VALUES ({item}, '{title}', :image)",
|
||||
f"INSERT INTO manga_requests (manga_id, title, image) VALUES ({manga_id}, '{title}', :image)",
|
||||
args={"image": image_url},
|
||||
)
|
||||
return jsonify({"status": "success"})
|
||||
@@ -324,7 +325,7 @@ async def requests_page():
|
||||
cache = KomCache()
|
||||
requests = (
|
||||
cache.fetch_all(
|
||||
query="SELECT manga_id, title, image grabbed FROM manga_requests"
|
||||
query="SELECT manga_id, title, image, grabbed FROM manga_requests"
|
||||
)
|
||||
or []
|
||||
)
|
||||
@@ -332,23 +333,26 @@ async def requests_page():
|
||||
req_ids = [req[0] for req in requests]
|
||||
if req_ids:
|
||||
entries = [
|
||||
{"manga_id": req[0], "title": req[1], "image": req[2]} for req in requests
|
||||
{"manga_id": req[0], "title": req[1], "image": req[2], "grabbed": req[3]}
|
||||
for req in requests
|
||||
]
|
||||
else:
|
||||
entries = []
|
||||
|
||||
log.debug(f"Fetched {len(entries)} requests from the database")
|
||||
log.debug(f"Requests entries: {entries}")
|
||||
return await render_template("requests.html", requests=entries)
|
||||
|
||||
@app.route("/delete", methods=["POST"])
|
||||
async def delete_request():
|
||||
# Delete a request from the database. ID is sent after the /delete endpoint, so: /delete/<id>
|
||||
data = await request.get_json()
|
||||
item_id = data.get("item")
|
||||
log.debug(f"Received delete request data: {data}")
|
||||
|
||||
if item_id:
|
||||
if data:
|
||||
title = data.get("title")
|
||||
asynccache = KomCache()
|
||||
asynccache.query(
|
||||
"DELETE FROM manga_requests WHERE manga_id = :id", args={"id": item_id}
|
||||
asynccache.delete(
|
||||
"DELETE FROM manga_requests WHERE title = :title", args={"title": title}
|
||||
)
|
||||
return jsonify({"status": "success"})
|
||||
return jsonify({"status": "failed"}), 400
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{% if results %}
|
||||
{% for result in results %}
|
||||
|
||||
<div class="card {{ result.type | lower }} {% if result.in_komga %}komga{% else %}requested{% endif %}">
|
||||
<div class="card {{ result.type | lower }} {% if result.grabbed %}komga{% else %}requested{% endif %}">
|
||||
|
||||
<div class="image-container {{ 'nsfw' if result.isAdult else '' }}">
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
{% if requests %}
|
||||
<div class="results">
|
||||
{% for request in requests %}
|
||||
<div class="card {{ request.type | lower }} {% if request.in_komga %}komga{% else %}requested{% endif %}">
|
||||
<div class="card {{ request.type | lower }} {% if request.grabbed %}komga{% else %}requested{% endif %}">
|
||||
<div class="image-container {{ 'nsfw' if request.isAdult else '' }}">
|
||||
|
||||
<img src="{{ request.image }}" alt="Cover">
|
||||
@@ -56,7 +56,7 @@
|
||||
<p>{{ request.title }}</p>
|
||||
<div class="actions">
|
||||
<button onclick="showInfo({{ request | tojson | safe }})" class="info">Info</button>
|
||||
<button onclick="deleteEntry({{ request.id }})" class="delete-button">Delete</button>
|
||||
<button onclick="deleteEntry('{{ request.title | escape }}')" class="delete-button">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
@@ -111,10 +111,11 @@
|
||||
closeModal();
|
||||
}
|
||||
}
|
||||
function deleteEntry(entryId) {
|
||||
function deleteEntry(title) {
|
||||
console.log("Deleting entry with title:", title);
|
||||
fetch(`/delete`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ item: entryId }),
|
||||
body: JSON.stringify({ title: title }), // Send title as part of a JSON object
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user