31 Commits

Author SHA1 Message Date
Gitea CI
773106958c Bump version: 0.1.6 → 0.1.7 2025-07-04 14:28:22 +00:00
8b7f79e671 Merge pull request 'chore: update dependencies' (#33) from dev into main
Reviewed-on: #33
2025-07-04 15:27:36 +01:00
Gitea CI
dbf4676f1e Bump version: 0.1.5 → 0.1.6 2025-06-29 13:16:32 +00:00
245ae7ec6f Merge pull request 'test: add antlr4-python3-runtime to deps' (#32) from dev into main
Reviewed-on: #32
2025-06-29 14:15:14 +01:00
26150b1d5c Merge pull request 'Feat: add new function Check Availability' (#31) from dev into main
Reviewed-on: #31
2025-06-29 14:01:29 +01:00
583b04ffe9 Merge pull request 'chore: update release note template, remove workflow' (#30) from dev into main
Reviewed-on: #30
2025-06-17 20:32:21 +01:00
Gitea CI
fe53d2b3fd Bump version: 0.1.4 → 0.1.5 2025-06-17 19:23:27 +00:00
Gitea CI
b340e3f47c Bump version: 0.1.3 → 0.1.4 2025-06-17 19:15:50 +00:00
785b4fe9a4 Merge pull request 'fix: titles containing apostrophes now no longer break requests while still reporting back a success message' (#29) from dev into main
Reviewed-on: #29
2025-06-17 20:13:13 +01:00
b9386df233 Merge pull request 'chore: add secondary release workflow based on commit messages' (#28) from dev into main
Reviewed-on: #28
2025-06-07 18:07:25 +01:00
Gitea CI
d79c23cde4 Bump version: 0.1.2 → 0.1.3 2025-06-07 15:25:24 +00:00
5427501364 Merge pull request 'chore: Update changelog, fix bug' (#27) from dev into main
Reviewed-on: #27
2025-06-07 16:24:46 +01:00
Gitea CI
265c493349 Bump version: 0.1.1 → 0.1.2 2025-06-07 08:07:09 +00:00
63adf36866 Merge pull request 'chore: fix bug where entries were not saved, implemented deplete function' (#26) from dev into main
Reviewed-on: #26
2025-06-07 09:06:21 +01:00
Gitea CI
3c13aab5be Bump version: 0.1.0 → 0.1.1 2025-06-04 15:12:35 +00:00
066a680ad2 Merge pull request 'delete bumpversion file' (#25) from dev into main
Reviewed-on: #25
2025-06-04 16:12:00 +01:00
243b9bb7b8 Merge pull request 'Update .gitea/workflows/release.yml' (#24) from dev into main
Reviewed-on: #24
2025-06-04 16:09:38 +01:00
b8067bc3f3 Merge pull request 'Update .gitea/workflows/release.yml' (#23) from dev into main
Reviewed-on: #23
2025-06-04 15:55:02 +01:00
0b33fcddee Merge pull request 'add changelog template' (#22) from dev into main
Reviewed-on: #22
2025-06-04 15:52:03 +01:00
996c5d8b86 Merge pull request 'Rewrite functions, add delete function, etc' (#21) from dev into main
Reviewed-on: #21
2025-06-04 15:50:46 +01:00
51ec8bcad7 Merge pull request 'dev' (#20) from dev into main
Reviewed-on: #20
2025-05-23 16:58:14 +01:00
956a11ddad Merge pull request 'fix: allow dirty state for version bump and update release notes handling' (#19) from dev into main
Reviewed-on: #19
2025-05-23 16:55:06 +01:00
7dab65da58 Merge pull request 'dev' (#18) from dev into main
Reviewed-on: #18
2025-05-23 16:52:56 +01:00
f757e87d9a Merge pull request 'dev' (#17) from dev into main
Reviewed-on: #17
2025-05-23 14:47:44 +01:00
a763a3f761 Delete .gitea/ISSUE_TEMPLATE/bug.yml 2025-05-23 14:47:18 +01:00
3bc2b97228 Merge branch 'dev' 2025-05-05 08:59:42 +02:00
96147ef48d remove dropdown 2025-05-05 07:08:39 +01:00
3061ded715 Update .gitea/ISSUE_TEMPLATE/bug.yml 2025-05-05 07:07:41 +01:00
58276ac6fb Merge pull request 'dev' (#9) from dev into main
Reviewed-on: #9
2025-05-05 07:06:55 +01:00
889f98204c Merge pull request 'add triage label' (#3) from dev into main
Reviewed-on: #3
2025-05-04 16:17:03 +01:00
b2480f749f Merge pull request 'dev to main' (#2) from dev into main
Reviewed-on: #2
2025-05-04 16:13:43 +01:00
5 changed files with 166 additions and 177 deletions

View File

@@ -50,8 +50,8 @@ jobs:
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v5
- name: "Set up Python" - name: Set up Python
uses: actions/setup-python@v6 run: uv python install
with: with:
python-version-file: "pyproject.toml" python-version-file: "pyproject.toml"
@@ -74,7 +74,7 @@ jobs:
uses: https://github.com/mikepenz/release-changelog-builder-action@v5 uses: https://github.com/mikepenz/release-changelog-builder-action@v5
with: with:
platform: "gitea" platform: "gitea"
baseURL: "http://192.168.178.110:3000" baseURL: "http://gitea:3000"
configuration: ".gitea/changelog-config.json" configuration: ".gitea/changelog-config.json"
env: env:
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}

57
bug.yml Normal file
View File

@@ -0,0 +1,57 @@
name: Bug Report
description: Report a bug in this project
title: "[Bug]: "
labels:
- kind/bug
- triage/needs triage
body:
- type: textarea
id: bug
attributes:
label: Describe the bug
description: |
A clear and concise description of what the bug is.
What did you expect to happen? What happened instead?
Include screenshots if applicable.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: |
A clear and concise description of how to reproduce the bug.
Include steps, code snippets, or screenshots if applicable.
validations:
required: true
- type: textarea
id: additional-info
attributes:
label: Additional information
description: |
Add any other context or screenshots about the bug here.
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: dropdown
id: operating-systems
attributes:
label: What operating systems are you seeing the problem on?
multiple: true
options:
- Windows
- macOS
- Linux
- iOS
- Android

View File

@@ -1,24 +1,35 @@
[project] [project]
name = "kompage" name = "kompage"
version = "0.1.0" version = "0.1.7"
description = "Add your description here" description = "Add your description here"
readme = "README.md" readme = "README.md"
requires-python = ">=3.13" requires-python = ">=3.13"
dependencies = [ dependencies = [
"anilistapi>=0.1.1", "anilistapi>=0.1.1",
"komcache>=0.1.3", "antlr4-python3-runtime>=4.9.3",
"flask>=3.1.1",
"httpx>=0.28.1",
"httpx-retries>=0.3.2",
"hypercorn>=0.17.3",
"jinja2>=3.1.6",
"komcache>=0.1.0",
"komconfig>=0.2.0",
"komgapi>=0.1.1", "komgapi>=0.1.1",
"komsuite-nyaapy>=0.1.3", "komsuite-nyaapy>=0.1.0",
"limit>=0.2.3",
"quart>=0.20.0", "quart>=0.20.0",
"uvicorn>=0.38.0", "uvicorn>=0.34.2",
] ]
[[tool.uv.index]] [[tool.uv.index]]
name = "gitea" name = "gitea"
url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/"
[tool.bumpversion] [tool.bumpversion]
current_version = "0.1.0" current_version = "0.1.7"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)" parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
serialize = ["{major}.{minor}.{patch}"] serialize = ["{major}.{minor}.{patch}"]
search = "{current_version}" search = "{current_version}"

View File

@@ -1,135 +1,96 @@
/* Modern UI refresh */ /* other styles are in magic.css */
/* ========== GRID LAYOUT ========== */
:root {
--bg: #0b1020;
--bg-soft: #0f172a;
--surface: #111827;
--surface-2: #0f172a;
--text: #e5e7eb;
--muted: #9ca3af;
--ring: #60a5fa;
--primary: #6366f1;
--primary-600: #4f46e5;
--success: #10b981;
--danger: #ef4444;
--warning: #f59e0b;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: linear-gradient(180deg, var(--bg), var(--bg-soft));
color: var(--text);
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}
body {
max-width: 1200px;
margin: 0 auto;
padding: 24px 16px 64px;
}
h1 {
font-size: 1.75rem;
line-height: 2rem;
margin: 0 0 16px 0;
font-weight: 700;
}
/* Layout */
.results { .results {
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 16px; gap: 1em;
margin-top: 16px; margin-top: 20px;
} }
@media (max-width: 768px) { /* Responsive: show 1 per row on small screens */
.results { grid-template-columns: 1fr; } @media screen and (max-width: 768px) {
.results {
grid-template-columns: 1fr;
}
} }
/* Cards */ /* ========== CARD STYLING ========== */
.card { .card {
position: relative; position: relative;
padding: 10px; padding: 10px;
border: 1px solid rgba(255,255,255,0.06); border: 1px solid #ccc;
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)); background: #fafafa;
backdrop-filter: blur(6px);
text-align: center; text-align: center;
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease; transition: box-shadow 0.2s transform 0.2s;
border-radius: 14px; border-radius: 10px;
box-shadow:
0 1px 1px rgba(0,0,0,0.08),
0 10px 20px rgba(0,0,0,0.15);
} }
.card:hover { .card:hover {
box-shadow: box-shadow: 0 0 10px #aaa;
0 1px 1px rgba(0,0,0,0.08), transform: scale(1.1);
0 16px 32px rgba(0,0,0,0.25); /* pop out by 10% */
transform: translateY(-2px) scale(1.02);
z-index: 2; z-index: 2;
/* ensure it appears above others */
} }
.card img { width: 100%; height: auto; border-radius: 8px; } .card img {
width: 100%;
height: auto;
}
/* ========== ACTION BUTTONS ========== */ /* ========== ACTION BUTTONS ========== */
.actions { .actions {
margin-top: 10px; margin-top: 10px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-around;
gap: 8px;
} }
button, .button { .actions .info {
appearance: none; background-color: #007bff;
border: 1px solid rgba(255,255,255,0.1); color: white;
background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.04)); border: none;
color: var(--text); padding: 0.5em 1em;
padding: 8px 12px;
border-radius: 10px;
cursor: pointer; cursor: pointer;
transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease; border-radius: 5px;
margin-right: 0.5em;
} }
button:hover, .button:hover {
transform: translateY(-1px); .actions .info:hover {
border-color: rgba(255,255,255,0.2); background-color: #0056b3;
box-shadow: 0 8px 16px rgba(0,0,0,0.25);
} }
.actions .info, .refresh, .index, .request-page { border-color: rgba(99,102,241,0.4); } .actions .request {
.actions .info { background: linear-gradient(180deg, rgba(99,102,241,0.35), rgba(99,102,241,0.2)); } background-color: #28a745;
.actions .request { border-color: rgba(16,185,129,0.4); background: linear-gradient(180deg, rgba(16,185,129,0.35), rgba(16,185,129,0.2)); } color: white;
.delete-button { border-color: rgba(239,68,68,0.4); background: linear-gradient(180deg, rgba(239,68,68,0.35), rgba(239,68,68,0.2)); } border: none;
.reset { border-color: rgba(239,68,68,0.4); background: linear-gradient(180deg, rgba(239,68,68,0.35), rgba(239,68,68,0.2)); color: #fff; } padding: 0.5em 1em;
cursor: pointer;
border-radius: 5px;
}
/* Page actions */ .actions .request:hover {
.refresh, .index, .request-page { padding: 10px 14px; } background-color: #1e7e34;
}
/* ========== MODAL ========== */ /* ========== MODAL ========== */
.modal { .modal {
position: fixed; position: fixed;
z-index: 50; z-index: 1;
inset: 0; left: 0;
display: none; top: 0;
background: rgba(2,6,23,0.7); width: 100%;
-webkit-backdrop-filter: blur(4px); height: 100%;
backdrop-filter: blur(4px); overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
} }
.modal[style*="display: block"] { display: block; }
.modal-content { .modal-content {
background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03)); background-color: #fefefe;
border: 1px solid rgba(255,255,255,0.1);
margin: 5% auto; margin: 5% auto;
padding: 20px; padding: 20px;
width: min(720px, 92%); border: 1px solid #888;
border-radius: 16px; width: 50%;
color: var(--text); border-radius: 10px;
box-shadow: 0 20px 40px rgba(0,0,0,0.4);
} }
.close { .close {
@@ -137,8 +98,6 @@ button:hover, .button:hover {
font-size: 28px; font-size: 28px;
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
padding: 2px 8px;
border-radius: 8px;
} }
/* ========== IMAGE CONTAINER ========== */ /* ========== IMAGE CONTAINER ========== */
@@ -185,72 +144,48 @@ body.nsfw-disabled .image-container.nsfw:hover img {
pointer-events: none; pointer-events: none;
} }
.download-badge {
position: absolute;
top: 8px;
right: 8px;
background-color: rgba(99,102,241,0.9);
color: white;
padding: 4px 8px;
font-size: 12px;
font-weight: 700;
border-radius: 6px;
z-index: 2;
}
.search-bar { .search-bar {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 12px; gap: 10px;
margin-bottom: 20px; margin-bottom: 20px;
padding: 16px;
border-radius: 16px;
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
border: 1px solid rgba(255,255,255,0.08);
box-shadow: 0 10px 20px rgba(0,0,0,0.25);
} }
.search-bar input[type="text"], .search-bar select { .search-bar select {
padding: 10px 12px; padding: 5px;
border-radius: 10px; border: 1px solid #ccc;
border: 1px solid rgba(255,255,255,0.15); border-radius: 4px;
background: rgba(255,255,255,0.04);
color: var(--text);
outline: none;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.search-bar input[type="text"]:focus, .search-bar select:focus {
border-color: var(--ring);
box-shadow: 0 0 0 3px rgba(96,165,250,0.2);
} }
.dropdown-content { .dropdown-content {
display: none; display: none;
position: absolute; position: absolute;
background-color: var(--surface); background-color: #f9f9f9;
color: var(--text); min-width: 160px;
min-width: 200px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0 12px 28px rgba(0,0,0,0.35); z-index: 1;
border: 1px solid rgba(255,255,255,0.08);
border-radius: 10px;
z-index: 5;
} }
.dropdown-content .dropdown-item { .dropdown-content .dropdown-item {
padding: 10px 14px; padding: 8px 16px;
cursor: pointer; cursor: pointer;
} }
.dropdown-content .dropdown-item:hover { .dropdown-content .dropdown-item:hover {
background-color: rgba(255,255,255,0.06); background-color: #f1f1f1;
} }
.dropdown-content.show { .dropdown-content.show {
display: block; display: block;
} }
.reset { border-radius: 10px; } .reset {
/* Implement design here */
background-color: #f44336;
/* round the edges of the button */
border-radius: 9px;
}
.selectors { .selectors {
display: flex; display: flex;
@@ -265,38 +200,23 @@ body.nsfw-disabled .image-container.nsfw:hover img {
/* ========== KOMGA SPECIFIC STYLES ========== */ /* ========== KOMGA SPECIFIC STYLES ========== */
.card.komga {
border: 3px solid green;
box-sizing: border-box;
/* disable the request button for entries in Komga */
/* only allow the info button to be clicked */
opacity: 0.3;
.card.komga::after {
content: 'In Komga';
position: absolute;
top: 10px;
left: 10px;
background: rgba(16,185,129,0.9);
color: white;
font-size: 12px;
font-weight: 700;
padding: 4px 8px;
border-radius: 6px;
z-index: 3;
} }
.card.requested::after { .card.requested {
content: 'Requested'; border: 3px solid orange;
position: absolute; box-sizing: border-box;
top: 10px; /* disable the request button for entries in Komga */
left: 10px; /* only allow the info button to be clicked */
background: rgba(245,158,11,0.9); opacity: 0.3;
color: #111827;
font-size: 12px;
font-weight: 700;
padding: 4px 8px;
border-radius: 6px;
z-index: 3;
} }
.card.komga { opacity: 0.6; }
.card.requested { opacity: 0.8; }
.card.manga.requested .request { .card.manga.requested .request {
pointer-events: none; pointer-events: none;
opacity: 0.5; opacity: 0.5;
@@ -316,8 +236,9 @@ body.nsfw-disabled .image-container.nsfw:hover img {
position: absolute; position: absolute;
top: 5px; top: 5px;
right: 5px; right: 5px;
background-color: #dc3545;
color: white; color: white;
border: 1px solid rgba(255,255,255,0.15); border: none;
padding: 0.5em; padding: 0.5em;
cursor: pointer; cursor: pointer;
border-radius: 50%; border-radius: 50%;

View File

@@ -330,7 +330,7 @@
} }
// Add download badge if applicable // Add download badge if applicable
if (document.getElementById("checkAvailability").checked) { if (result.downloads && document.getElementById("checkAvailability").checked) {
const downloadBadge = document.createElement('div'); const downloadBadge = document.createElement('div');
downloadBadge.className = 'download-badge'; downloadBadge.className = 'download-badge';
downloadBadge.textContent = `${result.downloads} Downloads`; downloadBadge.textContent = `${result.downloads} Downloads`;