Compare commits

55 Commits

Author SHA1 Message Date
6bee507d93 Merge pull request #168 from C9Glax/cuttingedge
Last merge before v2 transition
2025-06-18 19:21:18 +02:00
7ec740da82 Merge branch 'master' into cuttingedge
# Conflicts:
#	.github/workflows/docker-image-vite-react-ts.yml
2025-06-18 19:20:20 +02:00
84e9d70d34 Merge pull request #167 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.11.1
Bump docker/setup-buildx-action from 3.11.0 to 3.11.1
2025-06-18 18:11:33 +02:00
95f4086c24 Bump docker/setup-buildx-action from 3.11.0 to 3.11.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.11.0 to 3.11.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.11.0...v3.11.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 16:05:48 +00:00
49fe38962d Merge pull request #166 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.11.0
Bump docker/setup-buildx-action from 3.10.0 to 3.11.0
2025-06-16 19:38:34 +02:00
2ef7ee6b39 Bump docker/setup-buildx-action from 3.10.0 to 3.11.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.10.0...v3.11.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 17:18:05 +00:00
46729bade3 Merge pull request #165 from C9Glax/dependabot/github_actions/docker/build-push-action-6.18.0
Bump docker/build-push-action from 6.17.0 to 6.18.0
2025-05-28 17:17:40 +02:00
fed7ff987e Bump docker/build-push-action from 6.17.0 to 6.18.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.17.0 to 6.18.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.17.0...v6.18.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 15:16:47 +00:00
594103689e Merge pull request #162 from C9Glax/dependabot/github_actions/docker/build-push-action-6.17.0
Bump docker/build-push-action from 6.16.0 to 6.17.0
2025-05-15 18:00:45 +02:00
6ab431fde0 Bump docker/build-push-action from 6.16.0 to 6.17.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.16.0...v6.17.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-15 15:15:48 +00:00
18257cd584 Update workflow-files 2025-05-08 00:45:32 +02:00
c6dc3cd107 Merge pull request #160 from C9Glax/dependabot/github_actions/docker/build-push-action-6.16.0
Bump docker/build-push-action from 6.15.0 to 6.16.0
2025-04-24 19:54:29 +02:00
94c47b904d Bump docker/build-push-action from 6.15.0 to 6.16.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.15.0...v6.16.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-24 15:53:47 +00:00
2a4316cf1d Update README.md 2025-03-29 21:17:46 +01:00
89586ef891 Merge pull request #158 from C9Glax/dependabot/github_actions/docker/setup-qemu-action-3.6.0
Bump docker/setup-qemu-action from 3.3.0 to 3.6.0
2025-03-13 14:57:25 +01:00
33514ee375 Merge pull request #156 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.10.0
Bump docker/setup-buildx-action from 3.8.0 to 3.10.0
2025-03-13 14:57:11 +01:00
526e129fb7 Merge pull request #155 from C9Glax/dependabot/github_actions/docker/build-push-action-6.15.0
Bump docker/build-push-action from 6.14.0 to 6.15.0
2025-03-13 14:56:56 +01:00
d1dae83387 Bump docker/setup-qemu-action from 3.3.0 to 3.6.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.3.0 to 3.6.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3.3.0...v3.6.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-28 15:50:31 +00:00
9199a7a0e4 Bump docker/setup-buildx-action from 3.8.0 to 3.10.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.8.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.8.0...v3.10.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 15:51:05 +00:00
d9fa4185e2 Bump docker/build-push-action from 6.14.0 to 6.15.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 15:51:03 +00:00
717c8cd33e Merge pull request #154 from C9Glax/dependabot/github_actions/docker/build-push-action-6.14.0
Bump docker/build-push-action from 6.13.0 to 6.14.0
2025-02-20 17:13:39 +01:00
483c2d564b Bump docker/build-push-action from 6.13.0 to 6.14.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.13.0...v6.14.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-20 15:59:01 +00:00
5807844281 Merge pull request #148 from C9Glax/dependabot/github_actions/docker/build-push-action-6.13.0
Bump docker/build-push-action from 6.12.0 to 6.13.0
2025-01-24 22:17:05 +01:00
77d9e6eee1 Bump docker/build-push-action from 6.12.0 to 6.13.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.12.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-24 15:42:12 +00:00
e45e7bd5f5 Merge pull request #147 from C9Glax/dependabot/github_actions/docker/build-push-action-6.12.0
Bump docker/build-push-action from 6.11.0 to 6.12.0
2025-01-15 17:44:02 +01:00
ccab3a8027 Bump docker/build-push-action from 6.11.0 to 6.12.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.11.0...v6.12.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 15:39:53 +00:00
5eca8dac5d Merge pull request #145 from C9Glax/dependabot/github_actions/docker/build-push-action-6.11.0
Bump docker/build-push-action from 6.9.0 to 6.11.0
2025-01-09 01:53:33 +01:00
0b34ca7723 Merge pull request #146 from C9Glax/dependabot/github_actions/docker/setup-qemu-action-3.3.0
Bump docker/setup-qemu-action from 3.2.0 to 3.3.0
2025-01-09 01:53:16 +01:00
eb943ccbed Merge pull request #143 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.8.0
Bump docker/setup-buildx-action from 3.7.1 to 3.8.0
2025-01-09 01:53:02 +01:00
514cd06d2b Bump docker/setup-qemu-action from 3.2.0 to 3.3.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 15:36:31 +00:00
2035bc8f4e Bump docker/build-push-action from 6.9.0 to 6.11.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.11.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.11.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 15:36:29 +00:00
ece175d1db Bump docker/setup-buildx-action from 3.7.1 to 3.8.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 16:17:56 +00:00
da3867962b Merge pull request #141 from C9Glax/dependabot/github_actions/docker/build-push-action-6.9.0
Bump docker/build-push-action from 6.7.0 to 6.9.0
2024-11-04 16:27:26 +01:00
ec15732e57 Merge pull request #140 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.7.1
Bump docker/setup-buildx-action from 3.6.1 to 3.7.1
2024-11-04 16:27:18 +01:00
6d10c81dff Bump docker/build-push-action from 6.7.0 to 6.9.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.7.0 to 6.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.7.0...v6.9.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 15:26:40 +00:00
a3842ba20f Bump docker/setup-buildx-action from 3.6.1 to 3.7.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.6.1 to 3.7.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 15:26:38 +00:00
74b71d57b7 Merge pull request #117 from vonProteus/defaultApiUrl
Ability to override defaultApiUrl
2024-11-03 02:59:35 +01:00
6a5e340882 Merge branch 'cuttingedge' into defaultApiUrl 2024-11-03 02:58:39 +01:00
95801828c6 Dont build on pull 2024-10-19 19:54:52 +02:00
b70dfbf482 Update docker-image-cuttingedge.yml 2024-09-11 14:50:44 +02:00
0bc93a7e5c Merge remote-tracking branch 'github/master' into cuttingedge 2024-09-11 14:43:18 +02:00
d4efb158ef Merge pull request #122 from C9Glax/dependabot/github_actions/docker/setup-buildx-action-3.6.1
Bump docker/setup-buildx-action from 3.3.0 to 3.6.1
2024-09-11 14:42:29 +02:00
fba5764328 Merge pull request #123 from C9Glax/dependabot/github_actions/docker/setup-qemu-action-3.2.0
Bump docker/setup-qemu-action from 2.2.0 to 3.2.0
2024-09-11 14:42:17 +02:00
101a269042 Merge pull request #124 from C9Glax/dependabot/github_actions/docker/build-push-action-6.7.0
Bump docker/build-push-action from 4.1.1 to 6.7.0
2024-09-11 14:38:50 +02:00
3c45813c61 Bump docker/build-push-action from 4.1.1 to 6.7.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.1...v6.7.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 12:18:30 +00:00
cb38939888 Bump docker/setup-qemu-action from 2.2.0 to 3.2.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.2.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 12:18:28 +00:00
eb48cf3733 Bump docker/setup-buildx-action from 3.3.0 to 3.6.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.3.0 to 3.6.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.3.0...v3.6.1)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 12:18:26 +00:00
ddd9512469 Merge pull request #119 from C9Glax/master
Merge Github workflows
2024-09-09 20:05:08 +02:00
c26e208822 Update docker-image-cuttingedge.yml 2024-09-09 20:04:16 +02:00
c656e5face Update docker-image-dev.yml 2024-09-09 20:03:57 +02:00
4addacb229 Update docker-image-master.yml 2024-09-09 20:03:08 +02:00
c1aece8200 Ability to override defaultApiUrl 2024-09-01 06:09:13 +02:00
6bd9a0b1db Decrease update frequency of website 2024-08-26 12:47:46 +02:00
c72e152a7e Merge branch 'master' of github.com:C9Glax/tranga-website into cuttingedge 2024-04-22 21:56:29 +02:00
38572a3a46 Fixes https://github.com/C9Glax/tranga/issues/171 Overwrites for settingsg that weren't changed on the frontend. 2024-04-22 21:53:12 +02:00
25 changed files with 3710 additions and 4304 deletions

View File

@ -1,25 +1,25 @@
**/.dockerignore **/.dockerignore
**/.env **/.env
**/.git **/.git
**/.gitignore **/.gitignore
**/.project **/.project
**/.settings **/.settings
**/.toolstarget **/.toolstarget
**/.vs **/.vs
**/.vscode **/.vscode
**/.idea **/.idea
**/*.*proj.user **/*.*proj.user
**/*.dbmdl **/*.dbmdl
**/*.jfm **/*.jfm
**/azds.yaml **/azds.yaml
**/bin **/bin
**/charts **/charts
**/docker-compose* **/docker-compose*
**/Dockerfile* **/Dockerfile*
**/node_modules **/node_modules
**/npm-debug.log **/npm-debug.log
**/obj **/obj
**/secrets.dev.yaml **/secrets.dev.yaml
**/values.dev.yaml **/values.dev.yaml
LICENSE LICENSE
README.md README.md

View File

@ -1,7 +1,7 @@
version: 2 version: 2
updates: updates:
# Maintain dependencies for GitHub Actions # Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions" - package-ecosystem: "github-actions"
directory: "/" directory: "/"
schedule: schedule:
interval: "daily" interval: "daily"

View File

@ -3,6 +3,8 @@ name: Docker Image CI
on: on:
push: push:
branches: [ "cuttingedge" ] branches: [ "cuttingedge" ]
pull_request:
branches: [ "cuttingedge" ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -17,28 +19,28 @@ jobs:
# https://github.com/docker/setup-qemu-action#usage # https://github.com/docker/setup-qemu-action#usage
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v2.2.0 uses: docker/setup-qemu-action@v3.6.0
# https://github.com/marketplace/actions/docker-setup-buildx # https://github.com/marketplace/actions/docker-setup-buildx
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3.3.0 uses: docker/setup-buildx-action@v3.11.1
# https://github.com/docker/login-action#docker-hub # https://github.com/docker/login-action#docker-hub
- name: Login to Docker Hub - name: Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
# https://github.com/docker/build-push-action#multi-platform-image # https://github.com/docker/build-push-action#multi-platform-image
- name: Build and push Website - name: Build and push Website
uses: docker/build-push-action@v4.1.1 uses: docker/build-push-action@v6.18.0
with: with:
context: ./Website context: .
file: ./Dockerfile file: ./Dockerfile
#platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
platforms: linux/amd64 platforms: linux/amd64,linux/arm64
pull: true pull: true
push: true push: true
tags: | tags: |

View File

@ -3,8 +3,6 @@ name: Docker Image CI
on: on:
push: push:
branches: [ "master" ] branches: [ "master" ]
pull_request:
branches: [ "master" ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -19,12 +17,12 @@ jobs:
# https://github.com/docker/setup-qemu-action#usage # https://github.com/docker/setup-qemu-action#usage
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v2.2.0 uses: docker/setup-qemu-action@v3.6.0
# https://github.com/marketplace/actions/docker-setup-buildx # https://github.com/marketplace/actions/docker-setup-buildx
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3.1.0 uses: docker/setup-buildx-action@v3.11.1
# https://github.com/docker/login-action#docker-hub # https://github.com/docker/login-action#docker-hub
- name: Login to Docker Hub - name: Login to Docker Hub
@ -35,12 +33,12 @@ jobs:
# https://github.com/docker/build-push-action#multi-platform-image # https://github.com/docker/build-push-action#multi-platform-image
- name: Build and push Website - name: Build and push Website
uses: docker/build-push-action@v4.1.1 uses: docker/build-push-action@v6.18.0
with: with:
context: ./ context: ./
file: ./Dockerfile file: ./Dockerfile
#platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
platforms: linux/amd64 platforms: linux/amd64,linux/arm64
pull: true pull: true
push: true push: true
tags: | tags: |

View File

@ -1,43 +1,45 @@
name: Docker Image CI name: Docker Image CI
on: on:
push: push:
branches: [ "cuttingedge" ] branches: [ "vite-react-ts" ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
# https://github.com/docker/setup-qemu-action#usage # https://github.com/docker/setup-qemu-action#usage
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v2.2.0 uses: docker/setup-qemu-action@v3.6.0
# https://github.com/marketplace/actions/docker-setup-buildx # https://github.com/marketplace/actions/docker-setup-buildx
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3.3.0 uses: docker/setup-buildx-action@v3.11.1
# https://github.com/docker/login-action#docker-hub # https://github.com/docker/login-action#docker-hub
- name: Login to Docker Hub - name: Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
# https://github.com/docker/build-push-action#multi-platform-image # https://github.com/docker/build-push-action#multi-platform-image
- name: Build and push Website - name: Build and push Website
uses: docker/build-push-action@v4.1.1 uses: docker/build-push-action@v6.18.0
with: with:
context: ./Website context: .
file: ./Dockerfile file: ./Dockerfile
#platforms: linux/amd63,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 #platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
platforms: linux/amd64 platforms: linux/amd64
pull: true pull: true
push: true push: true
tags: |
glax/tranga-website:Server-V2

52
.gitignore vendored
View File

@ -1,26 +1,26 @@
bin/ bin/
obj/ obj/
/packages/ /packages/
riderModule.iml riderModule.iml
/_ReSharper.Caches/ /_ReSharper.Caches/
# Default ignored files # Default ignored files
/shelf/ /shelf/
/workspace.xml /workspace.xml
# Rider ignored files # Rider ignored files
/projectSettingsUpdater.xml /projectSettingsUpdater.xml
/.idea.Tranga.iml /.idea.Tranga.iml
/contentModel.xml /contentModel.xml
/modules.xml /modules.xml
# Editor-based HTTP Client requests # Editor-based HTTP Client requests
/httpRequests/ /httpRequests/
# Datasource local storage ignored files # Datasource local storage ignored files
/dataSources/ /dataSources/
/dataSources.local.xml /dataSources.local.xml
/.idea /.idea
cover.jpg cover.jpg
cover.png cover.png
.vs/slnx.sqlite .vs/slnx.sqlite
.vs/tranga-website/config/applicationhost.config .vs/tranga-website/config/applicationhost.config
.vs/tranga-website/FileContentIndex/91a465d3-1190-42e0-95eb-fa3694744e58.vsidx .vs/tranga-website/FileContentIndex/91a465d3-1190-42e0-95eb-fa3694744e58.vsidx
.vs/tranga-website/v17/.wsuo .vs/tranga-website/v17/.wsuo
.vs/VSWorkspaceState.json .vs/VSWorkspaceState.json

View File

@ -3,4 +3,4 @@ COPY ./Website /usr/share/nginx/html
COPY ./nginx /etc/nginx COPY ./nginx /etc/nginx
EXPOSE 80 EXPOSE 80
ENV API_URL=http://tranga-api:6531 ENV API_URL=http://tranga-api:6531
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]

File diff suppressed because it is too large Load Diff

241
README.md
View File

@ -1,123 +1,118 @@
<!-- PROJECT SHIELDS --> # Testers for V2 wanted!
<!--
*** I'm using markdown "reference style" links for readability. [Details](https://github.com/C9Glax/tranga/pull/355#issuecomment-2764217944)
*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).
*** See the bottom of this document for the declaration of the reference variables <!-- PROJECT LOGO -->
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. <br />
*** https://www.markdownguide.org/basic-syntax/#reference-style-links <div align="center">
-->
<h3 align="center">Tranga-Website</h3>
<!-- PROJECT LOGO -->
<br /> <p align="center">
<div align="center"> Automatic Manga and Metadata downloader
</p>
<h3 align="center">Tranga-Website</h3> <p align="center">
This is the Website for <a href="https://github.com/C9Glax/tranga">Tranga</a> (API)
<p align="center"> </p>
Automatic Manga and Metadata downloader </div>
</p>
<p align="center">
This is the Website for <a href="https://github.com/C9Glax/tranga">Tranga</a> (API)
</p> <!-- TABLE OF CONTENTS -->
</div> <details>
<summary>Table of Contents</summary>
<ol>
<li>
<!-- TABLE OF CONTENTS --> <a href="#about-the-project">About The Project</a>
<details> <ul>
<summary>Table of Contents</summary> <li><a href="#built-with">Built With</a></li>
<ol> </ul>
<li> </li>
<a href="#about-the-project">About The Project</a> <li>
<ul> <a href="#getting-started">Getting Started</a>
<li><a href="#built-with">Built With</a></li> </li>
</ul> <li><a href="#roadmap">Roadmap</a></li>
</li> <li><a href="#contributing">Contributing</a></li>
<li> <li><a href="#license">License</a></li>
<a href="#getting-started">Getting Started</a> <li><a href="#acknowledgments">Acknowledgments</a></li>
</li> </ol>
<li><a href="#roadmap">Roadmap</a></li> </details>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#license">License</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ol> <!-- ABOUT THE PROJECT -->
</details> ## About The Project
Tranga-Website is the Web-frontend to [Tranga](https://github.com/C9Glax/tranga) (the API). It displays information aquired from Tranga and can create Jobs (Manga-Downloads).
<!-- ABOUT THE PROJECT --> ### What this does do (and nothing else)
## About The Project
This repo makes HTTP-requests to the [Tranga-API](https://github.com/C9Glax/tranga) to display it's present configuration.
Tranga-Website is the Web-frontend to [Tranga](https://github.com/C9Glax/tranga) (the API). It displays information aquired from Tranga and can create Jobs (Manga-Downloads).
### Built With
### What this does do (and nothing else)
- nginx
This repo makes HTTP-requests to the [Tranga-API](https://github.com/C9Glax/tranga) to display it's present configuration. - HTML, CSS, and barebones Javascript
- 💙 Blåhaj 🦈
### Built With
<p align="right">(<a href="#readme-top">back to top</a>)</p>
- nginx
- HTML, CSS, and barebones Javascript <!-- GETTING STARTED -->
- 💙 Blåhaj 🦈 ## Getting Started
<p align="right">(<a href="#readme-top">back to top</a>)</p> There is a single release:
<!-- GETTING STARTED -->
## Getting Started ### Docker
There is a single release: Download [docker-compose.yaml](https://github.com/C9Glax/tranga-website/blob/cuttingedge/docker-compose.yaml) and configure to your needs.
The `docker-compose` also includes [Tranga](https://github.com/C9Glax/tranga) as backend. For its configuration refer to the repo README.
### Docker <!-- ROADMAP -->
## Roadmap
Download [docker-compose.yaml](https://github.com/C9Glax/tranga-website/blob/cuttingedge/docker-compose.yaml) and configure to your needs.
The `docker-compose` also includes [Tranga](https://github.com/C9Glax/tranga) as backend. For its configuration refer to the repo README. - [ ]
<!-- ROADMAP --> See the [open issues](https://github.com/C9Glax/tranga-website/issues) for a full list of proposed features (and known issues).
## Roadmap
<p align="right">(<a href="#readme-top">back to top</a>)</p>
- [ ]
See the [open issues](https://github.com/C9Glax/tranga-website/issues) for a full list of proposed features (and known issues).
<!-- CONTRIBUTING -->
<p align="right">(<a href="#readme-top">back to top</a>)</p> ## Contributing
The following is copy & pasted:
<!-- CONTRIBUTING --> Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
## Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
The following is copy & pasted: Don't forget to give the project a star! Thanks again!
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. 1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
Don't forget to give the project a star! Thanks again! 4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) <p align="right">(<a href="#readme-top">back to top</a>)</p>
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
<!-- LICENSE -->
<p align="right">(<a href="#readme-top">back to top</a>)</p> ## License
Distributed under the GNU GPLv3 License. See `LICENSE.txt` for more information.
<!-- LICENSE --> <p align="right">(<a href="#readme-top">back to top</a>)</p>
## License
Distributed under the GNU GPLv3 License. See `LICENSE.txt` for more information.
<!-- ACKNOWLEDGMENTS -->
<p align="right">(<a href="#readme-top">back to top</a>)</p> ## Acknowledgments
* [Choose an Open Source License](https://choosealicense.com)
* [Font Awesome](https://fontawesome.com)
<!-- ACKNOWLEDGMENTS --> * [Best-README-Template](https://github.com/othneildrew/Best-README-Template/tree/master)
## Acknowledgments
<p align="right">(<a href="#readme-top">back to top</a>)</p>
* [Choose an Open Source License](https://choosealicense.com)
* [Font Awesome](https://fontawesome.com)
* [Best-README-Template](https://github.com/othneildrew/Best-README-Template/tree/master)
<p align="right">(<a href="#readme-top">back to top</a>)</p>

View File

@ -1,11 +1,7 @@
//let apiUri = `${window.location.protocol}//${window.location.host}/api` if(getCookie("apiUri") != ""){
apiUri = getCookie("apiUri");
let apiUri = `http://192.168.1.79:6531`; }
setCookie("apiUri", apiUri);
// if(getCookie("apiUri") != ""){
// apiUri = getCookie("apiUri");
// }
// setCookie("apiUri", apiUri);
function setCookie(cname, cvalue) { function setCookie(cname, cvalue) {
const d = new Date(); const d = new Date();
@ -41,13 +37,9 @@ async function GetData(uri){
return json; return json;
} }
async function PostData(uri, body){ async function PostData(uri){
let request = await fetch(uri, { let request = await fetch(uri, {
method: 'POST', method: 'POST'
headers: {
'Accept': 'application/json'
},
body: body
}); });
//console.log(request); //console.log(request);
} }
@ -59,132 +51,130 @@ function DeleteData(uri){
} }
async function Ping(){ async function Ping(){
let ret = await GetData(`${apiUri}/v2/Ping`); let ret = await GetData(`${apiUri}/Ping`);
return ret; return ret;
} }
async function GetAvailableControllers(){ async function GetAvailableControllers(){
var uri = `${apiUri}/v2/Connector/Types`; var uri = apiUri + "/Connectors";
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetPublicationFromConnector(connector, title){ async function GetPublicationFromConnector(connector, title){
var uri = `${apiUri}/v2/Connector/${connector}/GetManga`; var uri;
if(title.startsWith("http")){ if(title.includes("http")){
uri += `?url=${title}` uri = `${apiUri}/Manga/FromConnector?connector=${connector}&url=${title}`;
}else{ }else{
uri += `?title=${title}` uri = `${apiUri}/Manga/FromConnector?connector=${connector}&title=${title}`;
} }
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetCoverUrl(internalId){ async function GetChapters(connector, internalId, language){
return `${apiUri}/v2/Manga/${internalId}/Cover`; var uri = `${apiUri}/Manga/Chapters?connector=${connector}&internalId=${internalId}&translatedLanguage=${language}`;
let json = await GetData(uri);
return json;
}
function GetCoverUrl(internalId){
return `${apiUri}/Manga/Cover?internalId=${internalId}`;
} }
async function GetAllJobs(){ async function GetAllJobs(){
var uri = `${apiUri}/v2/Jobs`; var uri = `${apiUri}/Jobs`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetRunningJobs(){ async function GetRunningJobs(){
var uri = `${apiUri}/v2/Jobs/Running`; var uri = `${apiUri}/Jobs/Running`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetWaitingJobs(){ async function GetWaitingJobs(){
var uri = `${apiUri}/v2/Jobs/Waiting`; var uri = `${apiUri}/Jobs/Waiting`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetMonitorJobs(){ async function GetMonitorJobs(){
var uri = `${apiUri}/v2/Jobs/Monitoring`; var uri = `${apiUri}/Jobs/MonitorJobs`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetJob(jobId){ async function GetProgress(jobId){
var uri = `${apiUri}/v2/Job/${jobId}`; var uri = `${apiUri}/Jobs/Progress?jobId=${jobId}`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetSettings(){ async function GetSettings(){
var uri = `${apiUri}/v2/Settings`; var uri = `${apiUri}/Settings`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetAvailableNotificationConnectors(){ async function GetAvailableNotificationConnectors(){
var uri = `${apiUri}/v2/NotificationConnector/Types`; var uri = `${apiUri}/NotificationConnectors/Types`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetNotificationConnectors(){ async function GetNotificationConnectors(){
var uri = `${apiUri}/v2/NotificationConnector`; var uri = `${apiUri}/NotificationConnectors`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetAvailableLibraryConnectors(){ async function GetAvailableLibraryConnectors(){
var uri = `${apiUri}/v2/LibraryConnector/Types`; var uri = `${apiUri}/LibraryConnectors/Types`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetLibraryConnectors(){ async function GetLibraryConnectors(){
var uri = `${apiUri}/v2/LibraryConnector`; var uri = `${apiUri}/LibraryConnectors`;
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetRateLimits() { async function GetRateLimits() {
var uri = `${apiUri}/v2/Settings/RateLimit` var uri = `${apiUri}/Settings/customRequestLimit`
let json = await GetData(uri); let json = await GetData(uri);
return json; return json;
} }
async function GetMangaChapters(connector, internalId) { function CreateMonitorJob(connector, internalId, language){
var uri = `${apiUri}/v2/Manga/${internalId}` var uri = `${apiUri}/Jobs/MonitorManga?connector=${connector}&internalId=${internalId}&interval=03:00:00&translatedLanguage=${language}`;
let json = await GetData(uri); PostData(uri);
return json;
} }
function CreateMonitorJob(internalId, language, interval, folder = null, chapterNo){ function CreateDownloadNewChaptersJob(connector, internalId, language){
var uri = `${apiUri}/v2/Job/Create/MonitorManga`; var uri = `${apiUri}/Jobs/DownloadNewChapters?connector=${connector}&internalId=${internalId}&translatedLanguage=${language}`;
let data = `{ "internalId": ${internalId}, "language": ${language}, "interval": ${interval}, "startChapter": ${chapterNo}, "customFolder": ${folder} }` PostData(uri);
PostData(uri, data);
}
function CreateDownloadNewChaptersJob(internalId, language){
var uri = `${apiUri}/v2/Job/Create/DownloadNewChaptersJob`;
let data = `{ "internalId": ${internalId}, "language": ${language} }`
PostData(uri, data);
} }
function StartJob(jobId){ function StartJob(jobId){
var uri = `${apiUri}/v2/Job/${jobId}/StartNow`; var uri = `${apiUri}/Jobs/StartNow?jobId=${jobId}`;
PostData(uri); PostData(uri);
} }
function UpdateDownloadLocation(downloadLocation){ function UpdateDownloadLocation(downloadLocation){
var uri = `${apiUri}/v2/Settings/DownloadLocation`; var uri = `${apiUri}/Settings/UpdateDownloadLocation?downloadLocation=${downloadLocation}`;
PostData(uri, `{ "location": ${location} }`); PostData(uri);
} }
function RefreshMangaMetadata(internalId) { function RefreshLibraryMetadata() {
var uri = `${apiUri}/v2/Job/Create/UpdateMetaDataJob`; var uri = `${apiUri}/Jobs/UpdateMetadata`;
PostData(uri, `{ "internalId": ${internalId} }`); PostData(uri);
} }
async function DownloadLogs() { async function DownloadLogs() {
var uri = `${apiUri}/v2/LogFile`; var uri = `${apiUri}/LogFile`;
//Below taken from https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream //Below taken from https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
fetch(uri) fetch(uri)
@ -245,121 +235,110 @@ Date.prototype.timeNow = function () {
return ((this.getHours() < 10)?"0":"") + this.getHours() +"_"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +"_"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds(); return ((this.getHours() < 10)?"0":"") + this.getHours() +"_"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +"_"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds();
} }
function UpdateAprilFoolsMode() {
checkBox = document.getElementById("aprilFoolsMode");
var uri = `${apiUri}/v2/Settings/AprilFoolsMode`;
PostData(uri, `{ "value": ${checkBox.checked} }` );
}
function ResetRateLimits() {
var uri = `${apiUri}/v2/Settings/RateLimit`;
PostData(uri);
OpenSettings();
}
function ResetUserAgent() {
var uri = `${apiUri}/v2/Settings/UserAgent`;
PostData(uri);
OpenSettings();
}
//Komga //Komga
function UpdateKomga(komgaUrl, komgaAuth){ function UpdateKomga(komgaUrl, komgaAuth){
var uri = `${apiUri}/v2/LibraryConnector/Komga`; var uri = `${apiUri}/LibraryConnectors/Update?libraryConnector=Komga&komgaUrl=${komgaUrl}&komgaAuth=${komgaAuth}`;
PostData(uri, `{ "url": ${komgaUrl}, "auth": ${komgaAuth} }`); PostData(uri);
} }
function ResetKomga(){ function ResetKomga(){
var uri = `${apiUri}/v2/LibraryConnector/Komga`; var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Komga`;
DeleteData(uri); PostData(uri);
} }
function TestKomga(komgaUrl, komgaAuth){ function TestKomga(komgaUrl, komgaAuth){
var uri = `${apiUri}/v2/LibraryConnector/Komga/Test`; var uri = `${apiUri}/LibraryConnectors/Test?libraryConnector=Komga&komgaUrl=${komgaUrl}&komgaAuth=${komgaAuth}`;
PostData(uri, `{ "url": ${komgaUrl}, "auth": ${komgaAuth} }`); PostData(uri);
} }
//Kavita //Kavita
function UpdateKavita(kavitaUrl, kavitaUsername, kavitaPassword){ function UpdateKavita(kavitaUrl, kavitaUsername, kavitaPassword){
var uri = `${apiUri}/v2/LibraryConnector/Kavita`; var uri = `${apiUri}/LibraryConnectors/Update?libraryConnector=Kavita&kavitaUrl=${kavitaUrl}&kavitaUsername=${kavitaUsername}&kavitaPassword=${kavitaPassword}`;
PostData(uri, `{ "url": ${kavitaUrl}, "uasername": ${kavitaUsername}, "password": ${kavitaPassword} }`); PostData(uri);
} }
function ResetKavita(){ function ResetKavita(){
var uri = `${apiUri}/v2/LibraryConnector/Kavita`; var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Kavita`;
DeleteData(uri); PostData(uri);
} }
function TestKavita(kavitaUrl, kavitaUsername, kavitaPassword){ function TestKavita(kavitaUrl, kavitaUsername, kavitaPassword){
var uri = `${apiUri}/v2/LibraryConnector/Kavita/Test`; var uri = `${apiUri}/LibraryConnectors/Test?libraryConnector=Kavita&kavitaUrl=${kavitaUrl}&kavitaUsername=${kavitaUsername}&kavitaPassword=${kavitaPassword}`;
PostData(uri, `{ "url": ${kavitaUrl}, "uasername": ${kavitaUsername}, "password": ${kavitaPassword} }`); PostData(uri);
} }
//Gotify //Gotify
function UpdateGotify(gotifyUrl, gotifyAppToken){ function UpdateGotify(gotifyUrl, gotifyAppToken){
var uri = `${apiUri}/v2/NotificationConnector/Gotify`; var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=Gotify&gotifyUrl=${gotifyUrl}&gotifyAppToken=${gotifyAppToken}`;
PostData(uri, `{ "url": ${gotifyUrl}, "appToken": ${gotifyAppToken} }`); PostData(uri);
} }
function ResetGotify(){ function ResetGotify(){
var uri = `${apiUri}/v2/NotificationConnector/Gotify`; var uri = `${apiUri}/NotificationConnectors/Reset?notificationConnector=Gotify`;
DeleteData(uri); PostData(uri);
} }
function TestGotify(gotifyUrl, gotifyAppToken){ function TestGotify(gotifyUrl, gotifyAppToken){
var uri = `${apiUri}/v2/NotificationConnector/Gotify/Test`; var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=Gotify&gotifyUrl=${gotifyUrl}&gotifyAppToken=${gotifyAppToken}`;
PostData(uri, `{ "url": ${gotifyUrl}, "appToken": ${gotifyAppToken} }`); PostData(uri);
} }
//LunaSea //LunaSea
function UpdateLunaSea(lunaseaWebhook){ function UpdateLunaSea(lunaseaWebhook){
var uri = `${apiUri}/v2/NotificationConnector/LunaSea`; var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=LunaSea&lunaseaWebhook=${lunaseaWebhook}`;
PostData(uri, `{ "webhook": ${lunaseaWebhook} }`); PostData(uri);
} }
function ResetLunaSea(){ function ResetLunaSea(){
var uri = `${apiUri}/v2/NotificationConnector/LunaSea`; var uri = `${apiUri}/NotificationConnectors/Reset?notificationConnector=LunaSea`;
DeleteData(uri); PostData(uri);
} }
function TestLunaSea(lunaseaWebhook){ function TestLunaSea(lunaseaWebhook){
var uri = `${apiUri}/v2/NotificationConnector/LunaSea/Test`; var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=LunaSea&lunaseaWebhook=${lunaseaWebhook}`;
PostData(uri, `{ "webhook": ${lunaseaWebhook} }`); PostData(uri);
} }
//Ntfy //Ntfy
function UpdateNtfy(ntfyEndpoint, ntfyUser, ntfyPass){ function UpdateNtfy(ntfyEndpoint, ntfyAuth){
var uri = `${apiUri}/v2/NotificationConnector/Ntfy`; var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=Ntfy&ntfyUrl=${ntfyEndpoint}&ntfyAuth=${ntfyAuth}`;
PostData(uri, `{ "url": ${ntfyEndpoint}, "username": ${ntfyUser}, "password": ${ntfyPass} }`); PostData(uri);
} }
function ResetNtfy(){ function ResetNtfy(){
var uri = `${apiUri}/v2/NotificationConnector/Ntfy`; var uri = `${apiUri}/NotificationConnectors/Reset?notificationConnector=Ntfy`;
DeleteData(uri); PostData(uri);
} }
function TestNtfy(ntfyEndpoint, ntfyUser, ntfyPass){ function TestNtfy(ntfyEndpoint, ntfyAuth){
var uri = `${apiUri}/v2/NotificationConnector/Ntfy/Test`; var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=Ntfy&ntfyUrl=${ntfyEndpoint}&ntfyAuth=${ntfyAuth}`;
PostData(uri, `{ "url": ${ntfyEndpoint}, "username": ${ntfyUser}, "password": ${ntfyPass} }`); PostData(uri);
} }
function UpdateUserAgent(userAgent){ function UpdateUserAgent(userAgent){
var uri = `${apiUri}/v2/Settings/UserAgent`; var uri = `${apiUri}/Settings/userAgent?userAgent=${userAgent}`;
PostData(uri, `{ "value": ${userAgent} }`); PostData(uri);
} }
function UpdateRateLimit(rateLimitType, rateLimitValue) { function UpdateRateLimit(byteValue, rateLimit) {
var uri = `${apiUri}/v2/Settings/RateLimit/${rateLimitType}`; var uri = `${apiUri}/Settings/customRequestLimit?requestType=${byteValue}&requestsPerMinute=${rateLimit}`;
PostData(uri, `{ "value": ${rateLimitValue} }`); PostData(uri);
} }
function RemoveJob(jobId){ function RemoveJob(jobId){
var uri = `${apiUri}/v2/Job/${jobId}`; var uri = `${apiUri}/Jobs?jobId=${jobId}`;
DeleteData(uri); DeleteData(uri);
} }
function CancelJob(jobId){ function CancelJob(jobId){
var uri = `${apiUri}/v2/Job/${jobId}/Cancel`; var uri = `${apiUri}/Jobs/Cancel?jobId=${jobId}`;
PostData(uri); PostData(uri);
} }
async function GetLogmessages(count){
var uri = `${apiUri}/LogMessages?count=${count}`;
let json = await GetData(uri);
console.log(json);
return json;
}

View File

@ -1,113 +1,113 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="512pt" height="512pt"
viewBox="0 0 512 512" viewBox="0 0 512 512"
width="512pt" width="512pt"
version="1.1" version="1.1"
id="svg4586" id="svg4586"
sodipodi:docname="komga - Copy.svg" sodipodi:docname="komga - Copy.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata <metadata
id="metadata4592"> id="metadata4592">
<rdf:RDF> <rdf:RDF>
<cc:Work <cc:Work
rdf:about=""> rdf:about="">
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
<defs <defs
id="defs4590"> id="defs4590">
<linearGradient <linearGradient
id="linearGradient6082" id="linearGradient6082"
osb:paint="solid"> osb:paint="solid">
<stop <stop
style="stop-color:#000000;stop-opacity:1;" style="stop-color:#000000;stop-opacity:1;"
offset="0" offset="0"
id="stop6080"/> id="stop6080"/>
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="linearGradient6076" id="linearGradient6076"
osb:paint="solid"> osb:paint="solid">
<stop <stop
style="stop-color:#000000;stop-opacity:1;" style="stop-color:#000000;stop-opacity:1;"
offset="0" offset="0"
id="stop6074"/> id="stop6074"/>
</linearGradient> </linearGradient>
<linearGradient <linearGradient
inkscape:collect="always" inkscape:collect="always"
xlink:href="#linearGradient6082" xlink:href="#linearGradient6082"
id="linearGradient6084" id="linearGradient6084"
x1="77.866812" x1="77.866812"
y1="386.00679" y1="386.00679"
x2="217.20259" x2="217.20259"
y2="386.00679" y2="386.00679"
gradientUnits="userSpaceOnUse"/> gradientUnits="userSpaceOnUse"/>
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
pagecolor="#ffffff" pagecolor="#ffffff"
bordercolor="#666666" bordercolor="#666666"
borderopacity="1" borderopacity="1"
objecttolerance="10" objecttolerance="10"
gridtolerance="10" gridtolerance="10"
guidetolerance="10" guidetolerance="10"
inkscape:pageopacity="0" inkscape:pageopacity="0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:window-width="1656" inkscape:window-width="1656"
inkscape:window-height="1368" inkscape:window-height="1368"
id="namedview4588" id="namedview4588"
showgrid="false" showgrid="false"
inkscape:zoom="1.2512475" inkscape:zoom="1.2512475"
inkscape:cx="264.73114" inkscape:cx="264.73114"
inkscape:cy="305.20589" inkscape:cy="305.20589"
inkscape:window-x="-7" inkscape:window-x="-7"
inkscape:window-y="0" inkscape:window-y="0"
inkscape:window-maximized="0" inkscape:window-maximized="0"
inkscape:current-layer="svg4586"/> inkscape:current-layer="svg4586"/>
<path <path
d="m512 256c0 141.386719-114.613281 256-256 256s-256-114.613281-256-256 114.613281-256 256-256 256 114.613281 256 256zm0 0" d="m512 256c0 141.386719-114.613281 256-256 256s-256-114.613281-256-256 114.613281-256 256-256 256 114.613281 256 256zm0 0"
fill="#005ed3" fill="#005ed3"
id="path4556"/> id="path4556"/>
<path <path
d="m 512,256 c 0,-11.71094 -0.80469,-23.23047 -2.32422,-34.52344 L 382.48047,94.28125 320.52344,121.85938 256,56.933594 212.69531,131.30469 129.51953,94.28125 141.86719,178.42187 49.949219,193.81641 114.32031,256 l -64.371091,62.18359 82.121091,82.16016 -2.55078,17.375 91.95703,91.95703 C 232.76953,511.19531 244.28906,512 256,512 397.38672,512 512,397.38672 512,256 Z" d="m 512,256 c 0,-11.71094 -0.80469,-23.23047 -2.32422,-34.52344 L 382.48047,94.28125 320.52344,121.85938 256,56.933594 212.69531,131.30469 129.51953,94.28125 141.86719,178.42187 49.949219,193.81641 114.32031,256 l -64.371091,62.18359 82.121091,82.16016 -2.55078,17.375 91.95703,91.95703 C 232.76953,511.19531 244.28906,512 256,512 397.38672,512 512,397.38672 512,256 Z"
id="path4558" id="path4558"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="fill:#00459f" style="fill:#00459f"
sodipodi:nodetypes="scccccccccccccss"/> sodipodi:nodetypes="scccccccccccccss"/>
<path <path
d="m256 86.742188 37.109375 63.738281 70.574219-31.414063-10.527344 71.71875 77.078125 12.910156-54.144531 52.304688 54.144531 52.304688-77.078125 12.910156 10.527344 71.71875-70.574219-31.414063-37.109375 63.738281-37.109375-63.738281-70.574219 31.414063 10.527344-71.71875-77.078125-12.910156 54.144531-52.304688-54.144531-52.304688 77.078125-12.910156-10.527344-71.71875 70.574219 31.414063zm0 0" d="m256 86.742188 37.109375 63.738281 70.574219-31.414063-10.527344 71.71875 77.078125 12.910156-54.144531 52.304688 54.144531 52.304688-77.078125 12.910156 10.527344 71.71875-70.574219-31.414063-37.109375 63.738281-37.109375-63.738281-70.574219 31.414063 10.527344-71.71875-77.078125-12.910156 54.144531-52.304688-54.144531-52.304688 77.078125-12.910156-10.527344-71.71875 70.574219 31.414063zm0 0"
fill="#ff0335" fill="#ff0335"
id="path4560"/> id="path4560"/>
<path <path
d="m430.230469 308.300781-77.070313 12.910157 10.519532 71.71875-70.570313-31.410157-37.109375 63.742188v-338.523438l37.109375 63.742188 70.570313-31.410157-6.757813 46.101563-3.761719 25.617187 58.800782 9.851563 18.269531 3.058594-13.390625 12.929687-40.75 39.371094 11.378906 10.988281zm0 0" d="m430.230469 308.300781-77.070313 12.910157 10.519532 71.71875-70.570313-31.410157-37.109375 63.742188v-338.523438l37.109375 63.742188 70.570313-31.410157-6.757813 46.101563-3.761719 25.617187 58.800782 9.851563 18.269531 3.058594-13.390625 12.929687-40.75 39.371094 11.378906 10.988281zm0 0"
fill="#c2001b" fill="#c2001b"
id="path4562"/> id="path4562"/>
<path <path
d="m256 455.066406-43.304688-74.371094-83.175781 37.023438 12.347657-84.140625-91.917969-15.394531 64.371093-62.183594-64.371093-62.183594 91.917969-15.394531-12.347657-84.140625 83.179688 37.023438 43.300781-74.371094 43.304688 74.371094 83.175781-37.023438-12.347657 84.140625 91.917969 15.394531-64.371093 62.183594 64.371093 62.183594-91.917969 15.398437 12.347657 84.136719-83.175781-37.023438zm-30.917969-112.722656 30.917969 53.101562 30.917969-53.101562 57.964843 25.800781-8.703124-59.292969 62.238281-10.425781-43.917969-42.425781 43.917969-42.425781-62.238281-10.425781 8.703124-59.292969-57.964843 25.800781-30.917969-53.101562-30.917969 53.101562-57.964843-25.800781 8.703124 59.292969-62.238281 10.425781 43.917969 42.425781-43.917969 42.425781 62.238281 10.425781-8.703124 59.292969zm0 0" d="m256 455.066406-43.304688-74.371094-83.175781 37.023438 12.347657-84.140625-91.917969-15.394531 64.371093-62.183594-64.371093-62.183594 91.917969-15.394531-12.347657-84.140625 83.179688 37.023438 43.300781-74.371094 43.304688 74.371094 83.175781-37.023438-12.347657 84.140625 91.917969 15.394531-64.371093 62.183594 64.371093 62.183594-91.917969 15.398437 12.347657 84.136719-83.175781-37.023438zm-30.917969-112.722656 30.917969 53.101562 30.917969-53.101562 57.964843 25.800781-8.703124-59.292969 62.238281-10.425781-43.917969-42.425781 43.917969-42.425781-62.238281-10.425781 8.703124-59.292969-57.964843 25.800781-30.917969-53.101562-30.917969 53.101562-57.964843-25.800781 8.703124 59.292969-62.238281 10.425781 43.917969 42.425781-43.917969 42.425781 62.238281 10.425781-8.703124 59.292969zm0 0"
fill="#ffdf47" fill="#ffdf47"
id="path4564"/> id="path4564"/>
<path <path
d="m403.308594 261.441406-5.628906-5.441406 25.160156-24.300781 39.210937-37.878907-55.75-9.339843-36.171875-6.058594 2.800782-19.09375 9.550781-65.046875-83.179688 37.019531-43.300781-74.371093v59.621093l30.921875 53.109375 57.957031-25.808594-3.910156 26.667969-2.546875 17.378907-2.242187 15.25 2.480468.421874 59.761719 10.007813-43.921875 42.421875 16.96875 16.390625 26.953125 26.03125-62.242187 10.429687 8.699218 59.296876-57.957031-25.808594-30.921875 53.109375v59.621093l43.300781-74.371093 83.179688 37.019531-12.351563-84.140625 91.921875-15.398437zm0 0" d="m403.308594 261.441406-5.628906-5.441406 25.160156-24.300781 39.210937-37.878907-55.75-9.339843-36.171875-6.058594 2.800782-19.09375 9.550781-65.046875-83.179688 37.019531-43.300781-74.371093v59.621093l30.921875 53.109375 57.957031-25.808594-3.910156 26.667969-2.546875 17.378907-2.242187 15.25 2.480468.421874 59.761719 10.007813-43.921875 42.421875 16.96875 16.390625 26.953125 26.03125-62.242187 10.429687 8.699218 59.296876-57.957031-25.808594-30.921875 53.109375v59.621093l43.300781-74.371093 83.179688 37.019531-12.351563-84.140625 91.921875-15.398437zm0 0"
fill="#fec000" fill="#fec000"
id="path4566"/> id="path4566"/>
<g <g
aria-label="K" aria-label="K"
transform="matrix(1.1590846,-0.34467221,0.22789693,0.794981,0,0)" transform="matrix(1.1590846,-0.34467221,0.22789693,0.794981,0,0)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:296.55969238px;line-height:125%;font-family:Impact;-inkscape-font-specification:Impact;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54528999;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:296.55969238px;line-height:125%;font-family:Impact;-inkscape-font-specification:Impact;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54528999;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="text4596"> id="text4596">
<path <path
d="m 220.91497,266.9035 -34.89789,105.85211 38.2284,128.58643 H 161.2555 L 136.63873,400.84769 V 501.34204 H 75.676021 V 266.9035 h 60.962709 v 91.08205 l 27.07845,-91.08205 z" d="m 220.91497,266.9035 -34.89789,105.85211 38.2284,128.58643 H 161.2555 L 136.63873,400.84769 V 501.34204 H 75.676021 V 266.9035 h 60.962709 v 91.08205 l 27.07845,-91.08205 z"
style="font-size:296.55969238px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54528999;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="font-size:296.55969238px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54528999;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path824"/> id="path824"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -1,40 +1,40 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50mm" height="50mm" viewBox="0 0 50 50"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50mm" height="50mm" viewBox="0 0 50 50">
<defs> <defs>
<linearGradient id="b"> <linearGradient id="b">
<stop offset="0" style="stop-color:#348878;stop-opacity:1"/> <stop offset="0" style="stop-color:#348878;stop-opacity:1"/>
<stop offset="1" style="stop-color:#52bca6;stop-opacity:1"/> <stop offset="1" style="stop-color:#52bca6;stop-opacity:1"/>
</linearGradient> </linearGradient>
<linearGradient id="a"> <linearGradient id="a">
<stop offset="0" style="stop-color:#348878;stop-opacity:1"/> <stop offset="0" style="stop-color:#348878;stop-opacity:1"/>
<stop offset="1" style="stop-color:#56bda8;stop-opacity:1"/> <stop offset="1" style="stop-color:#56bda8;stop-opacity:1"/>
</linearGradient> </linearGradient>
<linearGradient xlink:href="#a" id="e" x1="160.722" x2="168.412" y1="128.533" y2="134.326" gradientTransform="matrix(3.74959 0 0 3.74959 -541.79 -387.599)" gradientUnits="userSpaceOnUse"/> <linearGradient xlink:href="#a" id="e" x1="160.722" x2="168.412" y1="128.533" y2="134.326" gradientTransform="matrix(3.74959 0 0 3.74959 -541.79 -387.599)" gradientUnits="userSpaceOnUse"/>
<linearGradient xlink:href="#b" id="c" x1=".034" x2="50.319" y1="0" y2="50.285" gradientTransform="matrix(.99434 0 0 .99434 -.034 0)" gradientUnits="userSpaceOnUse"/> <linearGradient xlink:href="#b" id="c" x1=".034" x2="50.319" y1="0" y2="50.285" gradientTransform="matrix(.99434 0 0 .99434 -.034 0)" gradientUnits="userSpaceOnUse"/>
<filter id="d" width="1.176" height="1.211" x="-.076" y="-.092" style="color-interpolation-filters:sRGB"> <filter id="d" width="1.176" height="1.211" x="-.076" y="-.092" style="color-interpolation-filters:sRGB">
<feFlood flood-color="#fff" flood-opacity=".192" result="flood"/> <feFlood flood-color="#fff" flood-opacity=".192" result="flood"/>
<feComposite in="flood" in2="SourceGraphic" operator="in" result="composite1"/> <feComposite in="flood" in2="SourceGraphic" operator="in" result="composite1"/>
<feGaussianBlur in="composite1" result="blur" stdDeviation="4"/> <feGaussianBlur in="composite1" result="blur" stdDeviation="4"/>
<feOffset dx="3" dy="2.954" result="offset"/> <feOffset dx="3" dy="2.954" result="offset"/>
<feComposite in="SourceGraphic" in2="offset" result="composite2"/> <feComposite in="SourceGraphic" in2="offset" result="composite2"/>
</filter> </filter>
</defs> </defs>
<g style="display:inline"> <g style="display:inline">
<path d="M0 0h50v50H0z" style="fill:url(#c);fill-opacity:1;stroke:none;stroke-width:.286502;stroke-linejoin:bevel"/> <path d="M0 0h50v50H0z" style="fill:url(#c);fill-opacity:1;stroke:none;stroke-width:.286502;stroke-linejoin:bevel"/>
</g> </g>
<g style="display:inline"> <g style="display:inline">
<path d="M50.4 46.883c-9.168 0-17.023 7.214-17.023 16.387v.007l.09 71.37-2.303 16.992 31.313-8.319h77.841c9.17 0 17.024-7.224 17.024-16.396V63.27c0-9.17-7.85-16.383-17.016-16.387h-.008zm0 11.566h89.926c3.222.004 5.45 2.347 5.45 4.82v63.655c0 2.475-2.232 4.82-5.457 4.82h-79.54l-15.908 4.807.162-.938-.088-72.343c0-2.476 2.23-4.82 5.455-4.82z" style="color:#fff;display:inline;fill:#fff;stroke:none;stroke-width:1.93113;-inkscape-stroke:none;filter:url(#d)" transform="scale(.26458)"/> <path d="M50.4 46.883c-9.168 0-17.023 7.214-17.023 16.387v.007l.09 71.37-2.303 16.992 31.313-8.319h77.841c9.17 0 17.024-7.224 17.024-16.396V63.27c0-9.17-7.85-16.383-17.016-16.387h-.008zm0 11.566h89.926c3.222.004 5.45 2.347 5.45 4.82v63.655c0 2.475-2.232 4.82-5.457 4.82h-79.54l-15.908 4.807.162-.938-.088-72.343c0-2.476 2.23-4.82 5.455-4.82z" style="color:#fff;display:inline;fill:#fff;stroke:none;stroke-width:1.93113;-inkscape-stroke:none;filter:url(#d)" transform="scale(.26458)"/>
</g> </g>
<g style="display:inline"> <g style="display:inline">
<path d="M88.2 95.309H64.92c-1.601 0-2.91 1.236-2.91 2.746l.022 18.602-.435 2.506 6.231-1.881H88.2c1.6 0 2.91-1.236 2.91-2.747v-16.48c0-1.51-1.31-2.746-2.91-2.746z" style="color:#fff;fill:url(#e);stroke:none;stroke-width:2.49558;-inkscape-stroke:none" transform="translate(-51.147 -81.516)"/> <path d="M88.2 95.309H64.92c-1.601 0-2.91 1.236-2.91 2.746l.022 18.602-.435 2.506 6.231-1.881H88.2c1.6 0 2.91-1.236 2.91-2.747v-16.48c0-1.51-1.31-2.746-2.91-2.746z" style="color:#fff;fill:url(#e);stroke:none;stroke-width:2.49558;-inkscape-stroke:none" transform="translate(-51.147 -81.516)"/>
<path d="M50.4 46.883c-9.168 0-17.023 7.214-17.023 16.387v.007l.09 71.37-2.303 16.992 31.313-8.319h77.841c9.17 0 17.024-7.224 17.024-16.396V63.27c0-9.17-7.85-16.383-17.016-16.387h-.008zm0 11.566h89.926c3.222.004 5.45 2.347 5.45 4.82v63.655c0 2.475-2.232 4.82-5.457 4.82h-79.54l-15.908 4.807.162-.938-.088-72.343c0-2.476 2.23-4.82 5.455-4.82z" style="color:#fff;fill:#fff;stroke:none;stroke-width:1.93113;-inkscape-stroke:none" transform="scale(.26458)"/> <path d="M50.4 46.883c-9.168 0-17.023 7.214-17.023 16.387v.007l.09 71.37-2.303 16.992 31.313-8.319h77.841c9.17 0 17.024-7.224 17.024-16.396V63.27c0-9.17-7.85-16.383-17.016-16.387h-.008zm0 11.566h89.926c3.222.004 5.45 2.347 5.45 4.82v63.655c0 2.475-2.232 4.82-5.457 4.82h-79.54l-15.908 4.807.162-.938-.088-72.343c0-2.476 2.23-4.82 5.455-4.82z" style="color:#fff;fill:#fff;stroke:none;stroke-width:1.93113;-inkscape-stroke:none" transform="scale(.26458)"/>
<g style="font-size:8.48274px;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#fff;stroke:none;stroke-width:.525121"> <g style="font-size:8.48274px;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#fff;stroke:none;stroke-width:.525121">
<path d="M62.57 116.77v-1.312l3.28-1.459q.159-.068.306-.102.158-.045.283-.068l.271-.022v-.09q-.136-.012-.271-.046-.125-.023-.283-.057-.147-.045-.306-.113l-3.28-1.459v-1.323l5.068 2.319v1.413z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.45366 0 0 1.72815 -75.122 -171.953)"/> <path d="M62.57 116.77v-1.312l3.28-1.459q.159-.068.306-.102.158-.045.283-.068l.271-.022v-.09q-.136-.012-.271-.046-.125-.023-.283-.057-.147-.045-.306-.113l-3.28-1.459v-1.323l5.068 2.319v1.413z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.45366 0 0 1.72815 -75.122 -171.953)"/>
<path d="M62.309 110.31v1.903l3.437 1.53.022.007-.022.008-3.437 1.53v1.892l.37-.17 5.221-2.39v-1.75zm.525.817 4.541 2.08v1.076l-4.541 2.078v-.732l3.12-1.389.003-.002a1.56 1.56 0 0 1 .258-.086h.006l.008-.002c.094-.027.176-.047.246-.06l.498-.041v-.574l-.24-.02a1.411 1.411 0 0 1-.231-.04l-.008-.001-.008-.002a9.077 9.077 0 0 1-.263-.053 2.781 2.781 0 0 1-.266-.097l-.004-.002-3.119-1.39z" <path d="M62.309 110.31v1.903l3.437 1.53.022.007-.022.008-3.437 1.53v1.892l.37-.17 5.221-2.39v-1.75zm.525.817 4.541 2.08v1.076l-4.541 2.078v-.732l3.12-1.389.003-.002a1.56 1.56 0 0 1 .258-.086h.006l.008-.002c.094-.027.176-.047.246-.06l.498-.041v-.574l-.24-.02a1.411 1.411 0 0 1-.231-.04l-.008-.001-.008-.002a9.077 9.077 0 0 1-.263-.053 2.781 2.781 0 0 1-.266-.097l-.004-.002-3.119-1.39z"
style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.45366 0 0 1.72815 -75.122 -171.953)"/> style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.45366 0 0 1.72815 -75.122 -171.953)"/>
</g> </g>
<g style="font-size:8.48274px;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#fff;stroke:none;stroke-width:.525121"> <g style="font-size:8.48274px;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#fff;stroke:none;stroke-width:.525121">
<path d="M69.171 117.754h5.43v1.278h-5.43Z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.44935 0 0 1.66414 -74.104 -166.906)"/> <path d="M69.171 117.754h5.43v1.278h-5.43Z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.44935 0 0 1.66414 -74.104 -166.906)"/>
<path d="M68.908 117.492v1.802h5.955v-1.802zm.526.524h4.904v.754h-4.904z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.44935 0 0 1.66414 -74.104 -166.906)"/> <path d="M68.908 117.492v1.802h5.955v-1.802zm.526.524h4.904v.754h-4.904z" style="color:#fff;-inkscape-font-specification:&quot;JetBrains Mono, Bold&quot;;fill:#fff;stroke:none;-inkscape-stroke:none" transform="matrix(1.44935 0 0 1.66414 -74.104 -166.906)"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

1
Website/defaultApiUri.js Normal file
View File

@ -0,0 +1 @@
let apiUri = `${window.location.protocol}//${window.location.host.split(':')[0]}:6531`

View File

@ -1,338 +1,301 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Tranga</title> <title>Tranga</title>
<link id='basestyle' rel="stylesheet" href="styles/base.css"> <link id='basestyle' rel="stylesheet" href="styles/base.css">
<link id='librarystyle' rel="stylesheet" href="styles/style_default.css"> <link id='librarystyle' rel="stylesheet" href="styles/style_default.css">
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> </head>
<link rel="preconnect" href="https://fonts.googleapis.com"> <body>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <wrapper>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400..900&display=swap" rel="stylesheet">
</head> <topbar>
<body> <titlebox>
<wrapper> <img alt="website image is Blahaj" src="media/blahaj.png">
<span>Tranga</span>
<topbar> </titlebox>
<titlebox> <spacer></spacer>
<img alt="website image is Blahaj" src="media/blahaj.png"> <img id="filterFunnel" src="media/filter-funnel.svg" height="50%" alt="filterFunnel">
<span>Tranga</span> <img id="settingscog" src="media/settings-cogwheel.svg" height="100%" alt="settingscog">
</titlebox> </topbar>
<spacer></spacer>
<img id="filterFunnel" src="media/filter-funnel.svg" height="50%" alt="filterFunnel"> <filter-box id="filterBox">
<img id="settingscog" src="media/settings-cogwheel.svg" height="100%" alt="settingscog"> <border-bar>
</topbar> <popup-title>Filter by: </popup-title>
<popup-close onclick="filterBox.classList.toggle('animate')" >&times</popup-close>
<filter-box id="filterBox"> </border-bar>
<border-bar> <popup-content id="filterContent">
<popup-title>Filter by: </popup-title> <div class="popup-section">
<popup-close onclick="filterBox.style.display = 'none';" >&times</popup-close> NAME:
</border-bar> <div class="section-content">
<popup-content id="filterContent"> <label for="searchbox"></label><input id="searchbox" placeholder="Title" type="text">
<div class="popup-section"> </div>
NAME: </div>
<div class="section-content"> <div class = "popup-section">
<label for="searchbox"></label><input id="searchbox" placeholder="Title" type="text"> CONNECTOR:
</div> <div class="section-content" id="connectorFilterBox">
</div> </div>
<div class = "popup-section"> </div>
CONNECTOR: <div class = "popup-section">
<div class="section-content" id="connectorFilterBox"> STATUS:
</div> <div class="section-content" id="statusFilterBox">
</div> </div>
<div class = "popup-section"> </div>
STATUS: </popup-content>
<div class="section-content" id="statusFilterBox"> <border-bar-button onclick="ClearFilter()" class="clearFilter">Clear Filter</border-bar-button>
</div> </filter-box>
</div>
</popup-content>
<border-bar-button onclick="ClearFilter()" class="clearFilter">Clear Filter</border-bar-button> <viewport>
</filter-box> <div id="loaderdiv">
<blur-background></blur-background>
<div id="loader"></div>
<viewport> <p id="loaderText">Check your Settings > API-URI</p>
<div id="loaderdiv"> </div>
<blur-background></blur-background> <content>
<div id="loader"></div> <div id="addPublication">
<p id="loaderText">Check your Settings > API-URI</p> <p>+</p>
</div> </div>
<content> <publication onclick="ShowNewMangaSearch()">
<div id="addPublication"> <img alt="cover" src="media/cover.jpg">
<p>+</p> <publication-information>
</div> <connector-name class="pill">Sample</connector-name>
<publication onclick="ShowNewMangaSearch()"> <publication-name>Best Manga there is</publication-name>
<img alt="cover" src="media/cover.jpg"> </publication-information>
<publication-information> </publication>
<connector-name class="pill">Sample</connector-name> </content>
<publication-name>Best Manga there is</publication-name>
</publication-information> <popup id="newMangaPopup">
</publication> <blur-background id="blurBackgroundNewMangaPopup" onclick="newMangaPopup.style.display = 'none';"></blur-background>
</content> <div id="newMangaPopupSelector">
<select id="newMangaConnector" />
<popup id="newMangaPopup"> <input type="text" placeholder="Title" id="newMangaTitle" />
<blur-background id="blurBackgroundNewMangaPopup" onclick="newMangaPopup.style.display = 'none';"></blur-background> <select id="newMangaTranslatedLanguage">
<popup-window> <option selected="selected">en</option>
<border-bar> <option>it</option>
<popup-title>Search</popup-title> <option>de</option>
<popup-close onclick="newMangaPopup.style.display = 'none'">&times</popup-close> </select>
</border-bar> </div>
<popup-content> <div id="newMangaResult"></div>
<div id="loaderdiv"> </popup>
<div id="loader"></div>
</div> <popup id="settingsPopup">
<div id="newMangaPopupSelector"> <blur-background id="blurBackgroundSettingsPopup" onclick="settingsPopup.style.display = 'none';"></blur-background>
<select id="newMangaConnector"> <popup-window>
<input type="text" placeholder="Title" id="newMangaTitle" /> <border-bar>
<select id="newMangaTranslatedLanguage"> <popup-title>Settings</popup-title>
<option selected="selected">EN</option> <popup-close onclick="settingsPopup.style.display = 'none'">&times</popup-close>
<option>IT</option> </border-bar>
<option>DE</option> <popup-content>
</select>
</div> <div class="popup-section">
<div id="newMangaResult"></div> TRANGA
</popup-content> <div class="section-content">
</popup-window> <div class="section-item dyn-height">
</popup> <span class="title">API Settings</span>
<row><label for="settingApiUri">API URI:</label><input placeholder="https://" type="text" id="settingApiUri"></row>
<popup id="settingsPopup"> <row><label for="userAgent">User Agent:</label><input placeholder="UserAgent" id="userAgent" type="text"></row>
<blur-background id="blurBackgroundSettingsPopup" onclick="settingsPopup.style.display = 'none';"></blur-background> <row>
<popup-window> <border-bar-button class="section" onclick="RefreshLibraryMetadata()">Refresh Library Metadata</border-bar-button>
<border-bar> <border-bar-button class="section" onclick="DownloadLogs()">Download Logs</border-bar-button>
<popup-title>Settings</popup-title> </row>
<popup-close onclick="settingsPopup.style.display = 'none'">&times</popup-close> </div>
</border-bar> <div class="section-item dyn-height">
<popup-content> <span class="title">Rate Limits</span>
<row><label for="DefaultRL">Default:</label><input id="defaultRL" type="text" ></row>
<div class="popup-section"> <row><label for="CoverRL">Manga Covers:</label><input id="coverRL" type="text"></row>
TRANGA <row><label for="ImageRL">Manga Images:</label><input id="imageRL" type="text"></row>
<div class="section-content"> <row><label for="InfoRL">Manga Info:</label><input id="infoRL" type="text"></row>
<div class="section-item dyn-height"> </div>
<span class="title">API Settings</span> <div class="section-item dyn-height">
<row><label for="settingApiUri">API URI:</label><input placeholder="https://" type="text" id="settingApiUri"></row> <span class="title">Appearance</span>
<row><label for="userAgent">User Agent:</label><input placeholder="UserAgent" id="userAgent" type="text"></row> <row><label for="cssStyle">Library Style:</label><select id="cssStyle">
<row> <option id="card_compact" value="card_compact">Cards (Compact)</option>
<label for="aprilFoolsMode">Skip Chapters on April 1st:</label> <option id="card_hover" value="card_hover">Cards (Hover)</option>
<label class="switch-toggle"> </select></row>
<input type="checkbox" onclick="UpdateAprilFoolsMode()" id="aprilFoolsMode"> </div>
<span class="slider"></span> </div>
</label> </div>
</row>
<row> <div class="popup-section">
<border-bar-button class="section" onclick="ResetUserAgent()">Reset User Agent</border-bar-button> MANGA SOURCES
<border-bar-button class="section" onclick="DownloadLogs()">Download Logs</border-bar-button> <div class="section-content">
</row> <!-- <div class="section-item dyn-height">
</div> <span class="title"><img src="connector-icons/manganato.png"><a href="https://manganato.com">MangaNato</a></span>
<div class="section-item dyn-height">
<span class="title">Rate Limits</span> </div> -->
<row><label for="DefaultRL">Default:</label><input id="defaultRL" type="text" ></row> <!-- <div class="section-item dyn-height">
<row><label for="CoverRL">Manga Covers:</label><input id="coverRL" type="text"></row> <span class="title"><img src="connector-icons/mangasee.png"><a href="https://mangasee123.com">MangaSee</a></span>
<row><label for="ImageRL">Manga Images:</label><input id="imageRL" type="text"></row>
<row><label for="InfoRL">Manga Info:</label><input id="infoRL" type="text"></row> </div> -->
<row> <div class="section-item dyn-height">
<border-bar-button class="section" onclick="ResetRateLimits()">Reset All Rate Limits</border-bar-button> <span class="title"><img src="connector-icons/mangadex-logo.svg"><a href="https://mangadex.org">MangaDex</a></span>
</row> <row><label for="mDexFeedRL">Feed Rate Limit:</label><input id="mDexFeedRL" type="text"></row>
</div> <row><label for="mDexImageRL">Image Rate Limit:</label><input id="mDexImageRL" type="text"></row>
<div class="section-item dyn-height"> </div>
<span class="title">Library</span> <!-- <div class="section-item dyn-height">
<row><label for="cssStyle">Appearance Style:</label><select id="cssStyle"> <span class="title"><img src="connector-icons/mangakatana.png"><a href="https://mangakatana.com">MangaKatana</a></span>
<option id="card_compact" value="card_compact">Cards (Compact)</option>
<option id="card_hover" value="card_hover">Cards (Hover)</option> </div> -->
</select></row> <!-- <div class="section-item dyn-height">
<row> <span class="title"><img src="connector-icons/mangaworld.png"><a href="https://www.mangaworld.ac">MangaWorld</a></span>
<border-bar-button class="section" onclick="RefreshLibraryMetadata()">Refresh Library Metadata</border-bar-button>
</row> </div> -->
</div> <!-- <div class="section-item dyn-height">
</div> <span class="title"><img src="connector-icons/bato.ico"><a href="https://bato.to">Bato</a></span>
</div>
</div> -->
<div class="popup-section"> <!-- <div class="section-item dyn-height">
MANGA SOURCES <span class="title"><img src="connector-icons/mangalife.png"><a href="https://www.manga4life.com">MangaLife</a></span>
<div class="section-content">
<!-- <div class="section-item dyn-height"> </div> -->
<span class="title"><img src="connector-icons/manganato.png"><a href="https://manganato.com">MangaNato</a></span> </div>
</div> --> </div>
<!-- <div class="section-item dyn-height">
<span class="title"><img src="connector-icons/mangasee.png"><a href="https://mangasee123.com">MangaSee</a></span> <div class="popup-section">
LIBRARY CONNECTORS
</div> --> <div class="section-content">
<div class="section-item dyn-height"> <div class="section-item">
<span class="title"><img src="connector-icons/mangadex-logo.svg"><a href="https://mangadex.org">MangaDex</a></span> <span class="title"><img src='connector-icons/komga.svg'>Komga<connector-configured id="komgaConfigured"></connector-configured></span>
<row><label for="mDexFeedRL">Feed Rate Limit:</label><input id="mDexFeedRL" type="text"></row> <label for="komgaUrl"></label><input placeholder="URL" id="komgaUrl" type="text">
<row><label for="mDexImageRL">Image Rate Limit:</label><input id="mDexImageRL" type="text"></row> <label for="komgaUsername"></label><input placeholder="Username" id="komgaUsername" type="text">
</div> <label for="komgaPassword"></label><input placeholder="Password" id="komgaPassword" type="password">
<!-- <div class="section-item dyn-height"> <div class="section-buttons-container">
<span class="title"><img src="connector-icons/mangakatana.png"><a href="https://mangakatana.com">MangaKatana</a></span> <span onclick="TestKomga(komgaUrl.value, utf8_to_b64(`${komgaUsername.value}:${komgaPassword.value}`))" class='section-button' id="test-connector">Test</span>
<span onclick="ClearKomga()" class='section-button' id="reset">Reset</span>
</div> --> <span onclick="UpdateKomga(komgaUrl.value, utf8_to_b64(`${komgaUsername.value}:${komgaPassword.value}`))" class='section-button'>Apply</span>
<!-- <div class="section-item dyn-height"> </div>
<span class="title"><img src="connector-icons/mangaworld.png"><a href="https://www.mangaworld.ac">MangaWorld</a></span> </div>
<div class="section-item">
</div> --> <span class="title"><img src='connector-icons/kavita.png'>Kavita<connector-configured id="kavitaConfigured"></connector-configured></span>
<!-- <div class="section-item dyn-height"> <label for="kavitaUrl"></label><input placeholder="URL" id="kavitaUrl" type="text">
<span class="title"><img src="connector-icons/bato.ico"><a href="https://bato.to">Bato</a></span> <label for="kavitaUsername"></label><input placeholder="Username" id="kavitaUsername" type="text">
<label for="kavitaPassword"></label><input placeholder="Password" id="kavitaPassword" type="password">
</div> --> <div class="section-buttons-container">
<!-- <div class="section-item dyn-height"> <span onclick="TestKavita(kavitaUrl.value, kavitaUsername.value, kavitaPassword.value)" class='section-button' id="test-connector">Test</span>
<span class="title"><img src="connector-icons/mangalife.png"><a href="https://www.manga4life.com">MangaLife</a></span> <span onclick="ClearKavita()" class='section-button' id="reset">Reset</span>
<span onclick="UpdateKavita(kavitaUrl.value, kavitaUsername.value, kavitaPassword.value)" class='section-button'>Apply</span>
</div> --> </div>
</div> </div>
</div>
</div> </div>
<div class="popup-section"> <div class="popup-section">
LIBRARY CONNECTORS NOTIFICATION CONNECTORS
<div class="section-content"> <div class="section-content">
<div class="section-item"> <div class="section-item">
<span class="title"><img src='connector-icons/komga.svg'>Komga<connector-configured id="komgaConfigured"></connector-configured></span> <span class="title"><img src='connector-icons/gotify-logo.png'>Gotify<connector-configured id="gotifyConfigured"></connector-configured></span>
<label for="komgaUrl"></label><input placeholder="URL" id="komgaUrl" type="text"> <label for="gotifyUrl"></label><input placeholder="URL" id="gotifyUrl" type="text">
<label for="komgaUsername"></label><input placeholder="Username" id="komgaUsername" type="text"> <label for="gotifyAppToken"></label><input placeholder="App-Token" id="gotifyAppToken" type="text">
<label for="komgaPassword"></label><input placeholder="Password" id="komgaPassword" type="password"> <div class="section-buttons-container">
<div class="section-buttons-container"> <span onclick="TestGotify(gotifyUrl.value, gotifyAppToken.value)" class='section-button' id="test-connector">Test</span>
<span onclick="TestKomga(komgaUrl.value, utf8_to_b64(`${komgaUsername.value}:${komgaPassword.value}`))" class='section-button' id="test-connector">Test</span> <span onclick="ClearGotify()" class='section-button' id="reset">Reset</span>
<span onclick="ClearKomga()" class='section-button' id="reset">Reset</span> <span onclick="UpdateGotify(gotifyUrl.value, gotifyAppToken.value)" class='section-button'>Apply</span>
<span onclick="UpdateKomga(komgaUrl.value, utf8_to_b64(`${komgaUsername.value}:${komgaPassword.value}`))" class='section-button'>Apply</span> </div>
</div> </div>
</div> <div class="section-item">
<div class="section-item"> <span class="title"><img src='connector-icons/lunasea.png'>LunaSea<connector-configured id="lunaseaConfigured"></connector-configured></span>
<span class="title"><img src='connector-icons/kavita.png'>Kavita<connector-configured id="kavitaConfigured"></connector-configured></span> <label for="lunaseaWebhook"></label><input placeholder="device/:id or user/:id" id="lunaseaWebhook" type="text">
<label for="kavitaUrl"></label><input placeholder="URL" id="kavitaUrl" type="text"> <div class="section-buttons-container">
<label for="kavitaUsername"></label><input placeholder="Username" id="kavitaUsername" type="text"> <span onclick="TestLunaSea(lunaseaWebhook.value);" class='section-button' id="test-connector">Test</span>
<label for="kavitaPassword"></label><input placeholder="Password" id="kavitaPassword" type="password"> <span onclick="ClearLunasea()" class='section-button' id="reset">Reset</span>
<div class="section-buttons-container"> <span onclick="UpdateLunaSea(lunaseaWebhook.value);" class='section-button'>Apply</span>
<span onclick="TestKavita(kavitaUrl.value, kavitaUsername.value, kavitaPassword.value)" class='section-button' id="test-connector">Test</span> </div>
<span onclick="ClearKavita()" class='section-button' id="reset">Reset</span> </div>
<span onclick="UpdateKavita(kavitaUrl.value, kavitaUsername.value, kavitaPassword.value)" class='section-button'>Apply</span> <div class="section-item">
</div> <span class="title"><img src='connector-icons/ntfy.svg'>Ntfy<connector-configured id="ntfyConfigured"></connector-configured></span>
</div> <label for="ntfyEndpoint"></label><input placeholder="URL" id="ntfyEndpoint" type="text">
</div> <label for="ntfyAuth"></label><input placeholder="Auth" id="ntfyAuth" type="text">
</div> <div class="section-buttons-container">
<span onclick="TestNtfy(ntfyEndpoint.value, ntfyAuth.value);" class='section-button' id="test-connector">Test</span>
<div class="popup-section"> <span onclick="ClearNtfy()" class='section-button' id="reset">Reset</span>
NOTIFICATION CONNECTORS <span onclick="UpdateNtfy(ntfyEndpoint.value, ntfyAuth.value);" class='section-button'>Apply</span>
<div class="section-content"> </div>
<div class="section-item"> </div>
<span class="title"><img src='connector-icons/gotify-logo.png'>Gotify<connector-configured id="gotifyConfigured"></connector-configured></span> </div>
<label for="gotifyUrl"></label><input placeholder="URL" id="gotifyUrl" type="text"> </div>
<label for="gotifyAppToken"></label><input placeholder="App-Token" id="gotifyAppToken" type="text"> </popup-content>
<div class="section-buttons-container">
<span onclick="TestGotify(gotifyUrl.value, gotifyAppToken.value)" class='section-button' id="test-connector">Test</span> <border-bar>
<span onclick="ClearGotify()" class='section-button' id="reset">Reset</span> <div class="button-container">
<span onclick="UpdateGotify(gotifyUrl.value, gotifyAppToken.value)" class='section-button'>Apply</span> <border-bar-button class="primary" onclick="UpdateSettings()">Apply Settings</border-bar-button>
</div> </div>
</div> </border-bar>
<div class="section-item">
<span class="title"><img src='connector-icons/lunasea.png'>LunaSea<connector-configured id="lunaseaConfigured"></connector-configured></span> </popup-window>
<label for="lunaseaWebhook"></label><input placeholder="device/:id or user/:id" id="lunaseaWebhook" type="text"> </popup>
<div class="section-buttons-container">
<span onclick="TestLunaSea(lunaseaWebhook.value);" class='section-button' id="test-connector">Test</span> <popup id="publicationViewerPopup">
<span onclick="ClearLunasea()" class='section-button' id="reset">Reset</span> <blur-background id="blurBackgroundPublicationPopup" onclick="publicationViewerPopup.style.display= 'none';"></blur-background>
<span onclick="UpdateLunaSea(lunaseaWebhook.value);" class='section-button'>Apply</span> <publication-viewer>
</div> <img id="pubviewcover" src="media/cover.jpg" alt="cover">
</div> <publication-details>
<div class="section-item"> <publication-name id="publicationViewerName">Best Manga there is</publication-name>
<span class="title"><img src='connector-icons/ntfy.svg'>Ntfy<connector-configured id="ntfyConfigured"></connector-configured></span> <publication-tags id="publicationViewerTags">A Manga</publication-tags>
<label for="ntfyEndpoint"></label><input placeholder="URL" id="ntfyEndpoint" type="text"> <publication-author id="publicationViewerAuthor">Glax</publication-author>
<label for="ntfyUser"></label><input placeholder="Username" id="ntfyUser" type="text"> <publication-description id="publicationViewerDescription">
<label for="ntfyPass"></label><input placeholder="Password" id="ntfyPass" type="password"> An interesting description. The description is very intriguing, yet wholesome.
<div class="section-buttons-container"> </publication-description>
<span onclick="TestNtfy(ntfyEndpoint.value, ntfyUser.value, ntfyPass.value);" class='section-button' id="test-connector">Test</span> <publication-interactions>
<span onclick="ClearNtfy()" class='section-button' id="reset">Reset</span> <publication-starttask id="startJobButton">Start Job ▶️</publication-starttask>
<span onclick="UpdateNtfy(ntfyEndpoint.value, ntfyUser.value, ntfyPass.value);" class='section-button'>Apply</span> <publication-canceltask id="cancelJobButton">Cancel Job ❌</publication-canceltask>
</div> <publication-delete id="deleteJobButton">Delete Job 🗑️</publication-delete>
</div> <publication-add id="createMonitorJobButton">Monitor </publication-add>
</div> <publication-add id="createDownloadChapterJobButton">Download Chapter 📥</publication-add>
</div> </publication-interactions>
</popup-content> </publication-details>
</publication-viewer>
<border-bar> </popup>
<div class="button-container">
<border-bar-button class="primary" onclick="UpdateSettings()">Apply Settings</border-bar-button> <popup id="jobStatusView">
</div> <blur-background id="blurBackgroundSettingsPopup" onclick="jobStatusView.style.display = 'none';"></blur-background>
</border-bar> <popup-window>
<border-bar>
</popup-window> <popup-title>Jobs</popup-title>
</popup> <popup-close onclick="jobStatusView.style.display = 'none'">&times</popup-close>
</border-bar>
<popup id="publicationViewerPopup"> <popup-content>
<blur-background id="blurBackgroundPublicationPopup" onclick="publicationViewerPopup.style.display= 'none';"></blur-background>
<popup-window> <div class="popup-section">
<border-bar> RUNNING JOBS
<popup-title><a class="mangaTitle" id="publicationViewerName"></a></popup-title><status-filter id="publicationViewerStatus"></status-filter> <div class="section-content" id="jobStatusRunning">
<popup-close onclick="publicationViewerPopup.style.display = 'none'">&times</popup-close>
</border-bar> </div>
<manga-details> </div>
<img-container> <div class="popup-section">
<img id="pubviewcover"> QUEUED JOBS
<manga-connector id="publicationViewerConnector"></manga-connector> <div class="section-content" id="jobStatusWaiting">
<span class="latest-chapter-no" id="publicationViewerChapterNo"></span>
</img-container> </div>
<div style="height: 100%;"> </div>
<tag-cloud id="publicationViewerTags"></tag-cloud>
<div class="mangaDescription" id="publicationViewerDescription"></div> </popup-content>
</div>
</manga-details> <border-bar>
<!-- <manga-chapter id="publicationViewerChapters"></manga-chapter> --> <!-- <div class="button-container">
<border-bar> <border-bar-button class="primary" onclick="UpdateSettings()">Apply Settings</border-bar-button>
<div class="button-container"> </div> -->
<border-bar-button onclick="RefreshMangaMetadata(selectedManga.internalId)">Refresh Metadata</border-bar-button> </border-bar>
<border-bar-button id="reset" onclick="RemoveJob(selectedJob.id); UpdateJobs(); mangaViewerPopup.style.display = 'none'">Remove Manga</border-bar-button>
<border-bar-button class="primary" onclick="StartJob(selectedJob.id); mangaViewerPopup.style.display = 'none'">Start Job</border-bar-button> </popup-window>
</div> </viewport>
</border-bar>
</popup-window> <footer>
</popup> <div onclick="ShowJobQueue();">
<img src="media/running.svg" alt="running"><div id="jobsRunningTag">0</div>
<popup id="jobStatusView"> </div>
<blur-background id="blurBackgroundSettingsPopup" onclick="jobStatusView.style.display = 'none';"></blur-background> <div onclick="ShowJobQueue();">
<popup-window> <img src="media/queue.svg" alt="queue"><div id="jobsQueuedTag">0</div>
<border-bar> </div>
<popup-title>Jobs</popup-title> <p id="madeWith">Made with Blåhaj 🦈</p>
<popup-close onclick="jobStatusView.style.display = 'none'">&times</popup-close> </footer>
</border-bar> </wrapper>
<popup-content>
<script src="defaultApiUri.js"></script>
<div class="popup-section"> <script src="apiConnector.js"></script>
RUNNING JOBS <script src="interaction.js"></script>
<div class="section-content" id="jobStatusRunning"> </body>
</div>
</div>
<div class="popup-section">
QUEUED JOBS
<div class="section-content" id="jobStatusWaiting">
</div>
</div>
</popup-content>
<border-bar>
<!-- <div class="button-container">
<border-bar-button class="primary" onclick="UpdateSettings()">Apply Settings</border-bar-button>
</div> -->
</border-bar>
</popup-window>
</popup>
</viewport>
<footer>
<div onclick="ShowJobQueue();">
<img src="media/running.svg" alt="running"><div id="jobsRunningTag">0</div>
</div>
<div onclick="ShowJobQueue();">
<img src="media/queue.svg" alt="queue"><div id="jobsQueuedTag">0</div>
</div>
<p id="madeWith">Made with Blåhaj 🦈</p>
</footer>
</wrapper>
<script src="apiConnector.js"></script>
<script src="interaction.js"></script>
</body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#FFFFFF" class="bi bi-check-circle" viewBox="0 0 16 16">
<path d="m10.97 4.97-.02.022-3.473 4.425-2.093-2.094a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05"/>
</svg>

Before

Width:  |  Height:  |  Size: 285 B

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z" fill="#0F1729"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z" fill="#0F1729"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 807 B

After

Width:  |  Height:  |  Size: 804 B

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 971.986 971.986" width="800px" height="800px" viewBox="0 0 971.986 971.986"
xml:space="preserve"> xml:space="preserve">
<g> <g>
<path d="M370.216,459.3c10.2,11.1,15.8,25.6,15.8,40.6v442c0,26.601,32.1,40.101,51.1,21.4l123.3-141.3 <path d="M370.216,459.3c10.2,11.1,15.8,25.6,15.8,40.6v442c0,26.601,32.1,40.101,51.1,21.4l123.3-141.3
c16.5-19.8,25.6-29.601,25.6-49.2V500c0-15,5.7-29.5,15.8-40.601L955.615,75.5c26.5-28.8,6.101-75.5-33.1-75.5h-873 c16.5-19.8,25.6-29.601,25.6-49.2V500c0-15,5.7-29.5,15.8-40.601L955.615,75.5c26.5-28.8,6.101-75.5-33.1-75.5h-873
c-39.2,0-59.7,46.6-33.1,75.5L370.216,459.3z"/> c-39.2,0-59.7,46.6-33.1,75.5L370.216,459.3z"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 714 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#FFFFFF" class="bi bi-person" viewBox="0 0 16 16">
<path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/>
</svg>

Before

Width:  |  Height:  |  Size: 370 B

View File

@ -1,53 +1,53 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 235.504 235.504" width="800px" height="800px" viewBox="0 0 235.504 235.504"
xml:space="preserve"> xml:space="preserve">
<g> <g>
<g> <g>
<path d="M195.209,81.456l-49.227-0.15c0.737-0.886,1.351-1.868,2.284-2.583c3.282-2.497,3.911-7.166,1.427-10.438 <path d="M195.209,81.456l-49.227-0.15c0.737-0.886,1.351-1.868,2.284-2.583c3.282-2.497,3.911-7.166,1.427-10.438
c-2.501-3.266-7.161-3.919-10.443-1.423c-4.873,3.715-8.388,8.704-10.255,14.389l-22.191-0.064 c-2.501-3.266-7.161-3.919-10.443-1.423c-4.873,3.715-8.388,8.704-10.255,14.389l-22.191-0.064
c-9.508,0-19.588,7.398-22.938,16.851l-16.877,47.479c-1.775,5.013-1.338,9.966,1.207,13.568 c-9.508,0-19.588,7.398-22.938,16.851l-16.877,47.479c-1.775,5.013-1.338,9.966,1.207,13.568
c2.412,3.427,6.384,5.318,11.187,5.358l45.126,0.136c-1.509,5.186-4.701,9.622-9.352,12.424 c2.412,3.427,6.384,5.318,11.187,5.358l45.126,0.136c-1.509,5.186-4.701,9.622-9.352,12.424
c-4.891,2.957-10.636,3.814-16.172,2.444c-3.994-0.998-8.031,1.442-9.027,5.418c-0.99,4.012,1.445,8.035,5.432,9.032 c-4.891,2.957-10.636,3.814-16.172,2.444c-3.994-0.998-8.031,1.442-9.027,5.418c-0.99,4.012,1.445,8.035,5.432,9.032
c2.927,0.738,5.879,1.091,8.808,1.091c6.516,0,12.93-1.788,18.645-5.23c8.312-5.013,14.172-12.979,16.484-22.409 c2.927,0.738,5.879,1.091,8.808,1.091c6.516,0,12.93-1.788,18.645-5.23c8.312-5.013,14.172-12.979,16.484-22.409
c0.232-0.905,0.232-1.823,0.124-2.713l28.296,0.092h0.049c2.925,0,5.854-0.89,8.684-2.147c0.2,0.493,0.32,1.014,0.661,1.471 c0.232-0.905,0.232-1.823,0.124-2.713l28.296,0.092h0.049c2.925,0,5.854-0.89,8.684-2.147c0.2,0.493,0.32,1.014,0.661,1.471
c3.335,4.677,4.629,10.343,3.688,15.993c-0.95,5.627-4.028,10.536-8.688,13.862c-3.351,2.376-4.14,7.037-1.755,10.379 c3.335,4.677,4.629,10.343,3.688,15.993c-0.95,5.627-4.028,10.536-8.688,13.862c-3.351,2.376-4.14,7.037-1.755,10.379
c1.466,2.04,3.751,3.122,6.062,3.122c1.491,0,3.006-0.429,4.312-1.367c7.919-5.61,13.16-13.966,14.771-23.52 c1.466,2.04,3.751,3.122,6.062,3.122c1.491,0,3.006-0.429,4.312-1.367c7.919-5.61,13.16-13.966,14.771-23.52
c1.603-9.565-0.613-19.203-6.28-27.122c-0.48-0.693-1.134-1.19-1.779-1.659c1.318-1.831,2.501-3.763,3.238-5.854l16.863-47.464 c1.603-9.565-0.613-19.203-6.28-27.122c-0.48-0.693-1.134-1.19-1.779-1.659c1.318-1.831,2.501-3.763,3.238-5.854l16.863-47.464
c1.795-5.018,1.351-9.969-1.194-13.58C203.954,83.387,200.015,81.47,195.209,81.456z M201.979,98.405l-16.868,47.464 c1.795-5.018,1.351-9.969-1.194-13.58C203.954,83.387,200.015,81.47,195.209,81.456z M201.979,98.405l-16.868,47.464
c-0.981,2.757-2.941,5.214-5.213,7.329c-0.337,0.16-0.706,0.229-1.026,0.465c-0.673,0.485-1.182,1.122-1.639,1.747 c-0.981,2.757-2.941,5.214-5.213,7.329c-0.337,0.16-0.706,0.229-1.026,0.465c-0.673,0.485-1.182,1.122-1.639,1.747
c-2.962,1.996-6.288,3.339-9.434,3.339v2.989l-0.044-2.989l-33.194-0.101c-0.232-0.076-0.424-0.261-0.661-0.324 c-2.962,1.996-6.288,3.339-9.434,3.339v2.989l-0.044-2.989l-33.194-0.101c-0.232-0.076-0.424-0.261-0.661-0.324
c-1.435-0.353-2.805-0.145-4.095,0.309l-29.768-0.101l1.192-3.358c0.549-1.547-0.269-3.25-1.813-3.795 c-1.435-0.353-2.805-0.145-4.095,0.309l-29.768-0.101l1.192-3.358c0.549-1.547-0.269-3.25-1.813-3.795
c-1.521-0.553-3.25,0.24-3.799,1.804l-1.899,5.334l-14.318-0.044c-2.805,0-5.063-0.998-6.336-2.813 c-1.521-0.553-3.25,0.24-3.799,1.804l-1.899,5.334l-14.318-0.044c-2.805,0-5.063-0.998-6.336-2.813
c-1.437-2.032-1.603-4.921-0.463-8.144l16.877-47.478c2.48-6.979,10.417-12.868,17.356-12.868l12.217,0.038l-1.963,5.536 c-1.437-2.032-1.603-4.921-0.463-8.144l16.877-47.478c2.48-6.979,10.417-12.868,17.356-12.868l12.217,0.038l-1.963,5.536
c-0.555,1.549,0.262,3.25,1.805,3.797c0.331,0.12,0.661,0.174,0.998,0.174c1.227,0,2.372-0.768,2.793-1.986l2.497-7.019 c-0.555,1.549,0.262,3.25,1.805,3.797c0.331,0.12,0.661,0.174,0.998,0.174c1.227,0,2.372-0.768,2.793-1.986l2.497-7.019
c0.064-0.164-0.048-0.322-0.016-0.487h2.512c-0.905,7.758,1.163,15.42,5.947,21.638c5.903,7.687,14.852,11.726,23.873,11.726 c0.064-0.164-0.048-0.322-0.016-0.487h2.512c-0.905,7.758,1.163,15.42,5.947,21.638c5.903,7.687,14.852,11.726,23.873,11.726
c6.371,0,12.771-2.001,18.186-6.129c3.266-2.488,3.911-7.167,1.426-10.441c-2.508-3.267-7.161-3.901-10.455-1.415 c6.371,0,12.771-2.001,18.186-6.129c3.266-2.488,3.911-7.167,1.426-10.441c-2.508-3.267-7.161-3.901-10.455-1.415
c-6.612,5.056-16.146,3.775-21.223-2.809c-2.445-3.194-3.487-7.133-2.958-11.117c0.061-0.503,0.353-0.916,0.481-1.402 c-6.612,5.056-16.146,3.775-21.223-2.809c-2.445-3.194-3.487-7.133-2.958-11.117c0.061-0.503,0.353-0.916,0.481-1.402
l52.216,0.156c2.806,0,5.054,1.004,6.324,2.811C202.928,92.241,203.105,95.223,201.979,98.405z"/> l52.216,0.156c2.806,0,5.054,1.004,6.324,2.811C202.928,92.241,203.105,95.223,201.979,98.405z"/>
<path d="M107.997,127.194c-1.531-0.553-3.248,0.244-3.799,1.791l-4.302,12.099c-0.551,1.543,0.265,3.242,1.813,3.795 <path d="M107.997,127.194c-1.531-0.553-3.248,0.244-3.799,1.791l-4.302,12.099c-0.551,1.543,0.265,3.242,1.813,3.795
c0.331,0.116,0.659,0.16,0.998,0.16c1.214,0,2.372-0.765,2.801-1.976l4.294-12.099 c0.331,0.116,0.659,0.16,0.998,0.16c1.214,0,2.372-0.765,2.801-1.976l4.294-12.099
C110.369,129.446,109.551,127.728,107.997,127.194z"/> C110.369,129.446,109.551,127.728,107.997,127.194z"/>
<path d="M116.6,103.014c-1.529-0.541-3.25,0.252-3.805,1.805l-4.298,12.088c-0.547,1.547,0.261,3.252,1.799,3.799 <path d="M116.6,103.014c-1.529-0.541-3.25,0.252-3.805,1.805l-4.298,12.088c-0.547,1.547,0.261,3.252,1.799,3.799
c0.329,0.12,0.659,0.172,1,0.172c1.222,0,2.368-0.769,2.809-1.983l4.294-12.09C118.955,105.268,118.139,103.555,116.6,103.014z"/> c0.329,0.12,0.659,0.172,1,0.172c1.222,0,2.368-0.769,2.809-1.983l4.294-12.09C118.955,105.268,118.139,103.555,116.6,103.014z"/>
<path d="M232.527,90.428l-14.896-0.038l0,0c-1.639,0-2.974,1.327-2.997,2.976c0,1.639,1.342,2.981,2.981,2.989l14.896,0.042l0,0 <path d="M232.527,90.428l-14.896-0.038l0,0c-1.639,0-2.974,1.327-2.997,2.976c0,1.639,1.342,2.981,2.981,2.989l14.896,0.042l0,0
c1.643,0,2.978-1.331,2.993-2.979C235.504,91.763,234.17,90.436,232.527,90.428z"/> c1.643,0,2.978-1.331,2.993-2.979C235.504,91.763,234.17,90.436,232.527,90.428z"/>
<path d="M220.333,80.436c0.629,0,1.242-0.188,1.771-0.583l11.994-8.83c1.326-0.974,1.611-2.842,0.645-4.168 <path d="M220.333,80.436c0.629,0,1.242-0.188,1.771-0.583l11.994-8.83c1.326-0.974,1.611-2.842,0.645-4.168
c-0.965-1.327-2.845-1.611-4.163-0.637l-11.998,8.833c-1.323,0.974-1.607,2.841-0.642,4.167 c-0.965-1.327-2.845-1.611-4.163-0.637l-11.998,8.833c-1.323,0.974-1.607,2.841-0.642,4.167
C218.513,80.003,219.418,80.436,220.333,80.436z"/> C218.513,80.003,219.418,80.436,220.333,80.436z"/>
<path d="M209.152,56.279c-1.547-0.549-3.25,0.269-3.787,1.805l-4.997,14.036c-0.537,1.547,0.26,3.252,1.803,3.807 <path d="M209.152,56.279c-1.547-0.549-3.25,0.269-3.787,1.805l-4.997,14.036c-0.537,1.547,0.26,3.252,1.803,3.807
c0.337,0.12,0.674,0.172,0.994,0.172c1.242,0,2.385-0.757,2.821-1.986l4.985-14.036C211.516,58.541,210.695,56.846,209.152,56.279 c0.337,0.12,0.674,0.172,0.994,0.172c1.242,0,2.385-0.757,2.821-1.986l4.985-14.036C211.516,58.541,210.695,56.846,209.152,56.279
z"/> z"/>
<path d="M17.587,100.894h55.208c1.641,0,2.976-1.343,2.976-2.981c0-1.641-1.334-2.988-2.976-2.988H17.587 <path d="M17.587,100.894h55.208c1.641,0,2.976-1.343,2.976-2.981c0-1.641-1.334-2.988-2.976-2.988H17.587
c-1.641,0-2.988,1.338-2.988,2.988C14.599,99.559,15.946,100.894,17.587,100.894z"/> c-1.641,0-2.988,1.338-2.988,2.988C14.599,99.559,15.946,100.894,17.587,100.894z"/>
<path d="M68.471,119.328c0-1.641-1.345-2.987-2.986-2.987H10.283c-1.639,0-2.981,1.338-2.981,2.987 <path d="M68.471,119.328c0-1.641-1.345-2.987-2.986-2.987H10.283c-1.639,0-2.981,1.338-2.981,2.987
c0,1.639,1.342,2.974,2.981,2.974h55.202C67.119,122.301,68.471,120.967,68.471,119.328z"/> c0,1.639,1.342,2.974,2.981,2.974h55.202C67.119,122.301,68.471,120.967,68.471,119.328z"/>
<path d="M58.188,137.758H2.974c-1.641,0-2.974,1.335-2.974,2.989c0,1.64,1.333,2.974,2.974,2.974h55.214 <path d="M58.188,137.758H2.974c-1.641,0-2.974,1.335-2.974,2.989c0,1.64,1.333,2.974,2.974,2.974h55.214
c1.639,0,2.981-1.334,2.981-2.974C61.162,139.093,59.827,137.758,58.188,137.758z"/> c1.639,0,2.981-1.334,2.981-2.974C61.162,139.093,59.827,137.758,58.188,137.758z"/>
<path d="M169.611,28.097c11.821,0,21.403,9.584,21.403,21.41c0,11.82-9.582,21.408-21.403,21.408 <path d="M169.611,28.097c11.821,0,21.403,9.584,21.403,21.41c0,11.82-9.582,21.408-21.403,21.408
c-11.822,0-21.412-9.588-21.412-21.408C148.199,37.681,157.789,28.097,169.611,28.097z"/> c-11.822,0-21.412-9.588-21.412-21.408C148.199,37.681,157.789,28.097,169.611,28.097z"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,21 +1,21 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 93.5 93.5" xml:space="preserve"> width="800px" height="800px" viewBox="0 0 93.5 93.5" xml:space="preserve">
<g> <g>
<g> <g>
<path d="M93.5,40.899c0-2.453-1.995-4.447-4.448-4.447H81.98c-0.74-2.545-1.756-5.001-3.035-7.331l4.998-5 <path d="M93.5,40.899c0-2.453-1.995-4.447-4.448-4.447H81.98c-0.74-2.545-1.756-5.001-3.035-7.331l4.998-5
c0.826-0.827,1.303-1.973,1.303-3.146c0-1.19-0.462-2.306-1.303-3.146L75.67,9.555c-1.613-1.615-4.673-1.618-6.29,0l-5,5 c0.826-0.827,1.303-1.973,1.303-3.146c0-1.19-0.462-2.306-1.303-3.146L75.67,9.555c-1.613-1.615-4.673-1.618-6.29,0l-5,5
c-2.327-1.28-4.786-2.296-7.332-3.037v-7.07C57.048,1.995,55.053,0,52.602,0H40.899c-2.453,0-4.447,1.995-4.447,4.448v7.071 c-2.327-1.28-4.786-2.296-7.332-3.037v-7.07C57.048,1.995,55.053,0,52.602,0H40.899c-2.453,0-4.447,1.995-4.447,4.448v7.071
c-2.546,0.741-5.005,1.757-7.333,3.037l-5-5c-1.68-1.679-4.609-1.679-6.288,0L9.555,17.83c-1.734,1.734-1.734,4.555,0,6.289 c-2.546,0.741-5.005,1.757-7.333,3.037l-5-5c-1.68-1.679-4.609-1.679-6.288,0L9.555,17.83c-1.734,1.734-1.734,4.555,0,6.289
l4.999,5c-1.279,2.33-2.295,4.788-3.036,7.333h-7.07C1.995,36.452,0,38.447,0,40.899V52.6c0,2.453,1.995,4.447,4.448,4.447h7.071 l4.999,5c-1.279,2.33-2.295,4.788-3.036,7.333h-7.07C1.995,36.452,0,38.447,0,40.899V52.6c0,2.453,1.995,4.447,4.448,4.447h7.071
c0.74,2.545,1.757,5.003,3.036,7.332l-4.998,4.999c-0.827,0.827-1.303,1.974-1.303,3.146c0,1.189,0.462,2.307,1.302,3.146 c0.74,2.545,1.757,5.003,3.036,7.332l-4.998,4.999c-0.827,0.827-1.303,1.974-1.303,3.146c0,1.189,0.462,2.307,1.302,3.146
l8.274,8.273c1.614,1.615,4.674,1.619,6.29,0l5-5c2.328,1.279,4.786,2.297,7.333,3.037v7.071c0,2.453,1.995,4.448,4.447,4.448 l8.274,8.273c1.614,1.615,4.674,1.619,6.29,0l5-5c2.328,1.279,4.786,2.297,7.333,3.037v7.071c0,2.453,1.995,4.448,4.447,4.448
h11.702c2.453,0,4.446-1.995,4.446-4.448V81.98c2.546-0.74,5.005-1.756,7.332-3.037l5,5c1.681,1.68,4.608,1.68,6.288,0 h11.702c2.453,0,4.446-1.995,4.446-4.448V81.98c2.546-0.74,5.005-1.756,7.332-3.037l5,5c1.681,1.68,4.608,1.68,6.288,0
l8.275-8.273c1.734-1.734,1.734-4.555,0-6.289l-4.998-5.001c1.279-2.329,2.295-4.787,3.035-7.332h7.071 l8.275-8.273c1.734-1.734,1.734-4.555,0-6.289l-4.998-5.001c1.279-2.329,2.295-4.787,3.035-7.332h7.071
c2.453,0,4.448-1.995,4.448-4.446V40.899z M62.947,46.75c0,8.932-7.266,16.197-16.197,16.197c-8.931,0-16.197-7.266-16.197-16.197 c2.453,0,4.448-1.995,4.448-4.446V40.899z M62.947,46.75c0,8.932-7.266,16.197-16.197,16.197c-8.931,0-16.197-7.266-16.197-16.197
c0-8.931,7.266-16.197,16.197-16.197C55.682,30.553,62.947,37.819,62.947,46.75z"/> c0-8.931,7.266-16.197,16.197-16.197C55.682,30.553,62.947,37.819,62.947,46.75z"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg fill="#000000" height="800px" width="800px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="task"> <g id="task">
<path d="M4,23.4l-3.7-3.7l1.4-1.4L4,20.6l4.3-4.3l1.4,1.4L4,23.4z M24,21H12v-2h12V21z M4,15.4l-3.7-3.7l1.4-1.4L4,12.6l4.3-4.3 <path d="M4,23.4l-3.7-3.7l1.4-1.4L4,20.6l4.3-4.3l1.4,1.4L4,23.4z M24,21H12v-2h12V21z M4,15.4l-3.7-3.7l1.4-1.4L4,12.6l4.3-4.3
l1.4,1.4L4,15.4z M24,13H12v-2h12V13z M4,7.4L0.3,3.7l1.4-1.4L4,4.6l4.3-4.3l1.4,1.4L4,7.4z M24,5H12V3h12V5z"/> l1.4,1.4L4,15.4z M24,13H12v-2h12V13z M4,7.4L0.3,3.7l1.4-1.4L4,4.6l4.3-4.3l1.4,1.4L4,7.4z M24,5H12V3h12V5z"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 612 B

After

Width:  |  Height:  |  Size: 603 B

File diff suppressed because it is too large Load Diff

View File

@ -1,159 +1,159 @@
#addPublication { #addPublication {
cursor: pointer; cursor: pointer;
background-color: var(--secondary-color); background-color: var(--secondary-color);
width: 180px; width: 180px;
height: 300px; height: 300px;
border-radius: 5px; border-radius: 5px;
margin: 10px 10px; margin: 10px 10px;
padding: 15px 20px; padding: 15px 20px;
position: relative; position: relative;
} }
#addPublication p{ #addPublication p{
width: 100%; width: 100%;
text-align: center; text-align: center;
font-size: 150pt; font-size: 150pt;
vertical-align: middle; vertical-align: middle;
line-height: 300px; line-height: 300px;
margin: 0; margin: 0;
color: var(--accent-color); color: var(--accent-color);
} }
.pill { .pill {
flex-grow: 0; flex-grow: 0;
height: 14pt; height: 14pt;
font-size: 12pt; font-size: 12pt;
border-radius: 9pt; border-radius: 9pt;
background-color: var(--primary-color); background-color: var(--primary-color);
padding: 2pt 17px; padding: 2pt 17px;
color: black; color: black;
} }
publication{ publication{
cursor: pointer; cursor: pointer;
background-color: var(--secondary-color); background-color: var(--secondary-color);
width: 180px; width: 180px;
height: 300px; height: 300px;
border-radius: 5px; border-radius: 5px;
margin: 10px 10px; margin: 10px 10px;
padding: 15px 19px; padding: 15px 19px;
position: relative; position: relative;
flex-shrink: 0; flex-shrink: 0;
} }
publication::after{ publication::after{
content: ''; content: '';
position: absolute; position: absolute;
left: 0; top: 0; left: 0; top: 0;
border-radius: 5px; border-radius: 5px;
width: 100%; height: 100%; width: 100%; height: 100%;
background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2));
} }
publication-information { publication-information {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: start;
} }
publication-details { publication-details {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: start;
} }
publication-information * { publication-information * {
z-index: 1; z-index: 1;
color: var(--accent-color); color: var(--accent-color);
} }
publication-details * { publication-details * {
z-index: 1; z-index: 1;
color: var(--accent-color); color: var(--accent-color);
} }
connector-name{ connector-name{
width: fit-content; width: fit-content;
margin: 10px 0; margin: 10px 0;
} }
publication-name{ publication-name{
width: fit-content; width: fit-content;
font-size: 16pt; font-size: 16pt;
font-weight: bold; font-weight: bold;
color: white; color: white;
} }
publication-status { publication-status {
display:block; display:block;
height: 10px; height: 10px;
width: 10px; width: 10px;
border-radius: 50%; border-radius: 50%;
margin: 5px; margin: 5px;
position: absolute; position: absolute;
top: 5px; top: 5px;
right: 5px; right: 5px;
z-index: 2; z-index: 2;
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px;
} }
publication-status::after { publication-status::after {
content: attr(release-status); content: attr(release-status);
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
visibility: hidden; visibility: hidden;
/*Text Properties*/ /*Text Properties*/
font-size:10pt; font-size:10pt;
font-weight:bold; font-weight:bold;
color:white; color:white;
text-align: center; text-align: center;
/*Size*/ /*Size*/
padding: 3px 8px; padding: 3px 8px;
border-radius: 6px; border-radius: 6px;
border: 0px; border: 0px;
background-color: inherit; background-color: inherit;
} }
publication-status:hover::after{ publication-status:hover::after{
visibility:visible; visibility:visible;
} }
publication-status[release-status="Ongoing"]{ publication-status[release-status="Ongoing"]{
background-color: limegreen; background-color: limegreen;
} }
publication-status[release-status="Completed"]{ publication-status[release-status="Completed"]{
background-color: blueviolet; background-color: blueviolet;
} }
publication-status[release-status="On Hiatus"]{ publication-status[release-status="On Hiatus"]{
background-color: darkorange; background-color: darkorange;
} }
publication-status[release-status="Cancelled"]{ publication-status[release-status="Cancelled"]{
background-color: firebrick; background-color: firebrick;
} }
publication-status[release-status="Upcoming"]{ publication-status[release-status="Upcoming"]{
background-color: aqua; background-color: aqua;
} }
publication-status[release-status="Status Unavailable"]{ publication-status[release-status="Status Unavailable"]{
background-color: gray; background-color: gray;
} }
publication img { publication img {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
z-index: 0; z-index: 0;
border-radius: 5px; border-radius: 5px;
} }

View File

@ -1,172 +1,172 @@
#addPublication { #addPublication {
cursor: pointer; cursor: pointer;
background-color: var(--secondary-color); background-color: var(--secondary-color);
width: 180px; width: 180px;
height: 300px; height: 300px;
border-radius: 5px; border-radius: 5px;
margin: 10px 10px; margin: 10px 10px;
padding: 15px 20px; padding: 15px 20px;
position: relative; position: relative;
} }
#addPublication p{ #addPublication p{
width: 100%; width: 100%;
text-align: center; text-align: center;
font-size: 150pt; font-size: 150pt;
vertical-align: middle; vertical-align: middle;
line-height: 300px; line-height: 300px;
margin: 0; margin: 0;
color: var(--accent-color); color: var(--accent-color);
} }
.pill { .pill {
flex-grow: 0; flex-grow: 0;
height: 14pt; height: 14pt;
font-size: 12pt; font-size: 12pt;
border-radius: 9pt; border-radius: 9pt;
background-color: var(--primary-color); background-color: var(--primary-color);
padding: 2pt 17px; padding: 2pt 17px;
color: black; color: black;
} }
publication{ publication{
cursor: pointer; cursor: pointer;
background-color: var(--secondary-color); background-color: var(--secondary-color);
width: 180px; width: 180px;
height: 300px; height: 300px;
border-radius: 5px; border-radius: 5px;
margin: 10px 10px; margin: 10px 10px;
padding: 15px 19px; padding: 15px 19px;
position: relative; position: relative;
flex-shrink: 0; flex-shrink: 0;
} }
publication:hover { publication:hover {
background-color: black; background-color: black;
} }
publication:hover::after{ publication:hover::after{
background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2));
} }
publication:hover > publication-information { publication:hover > publication-information {
display: flex; display: flex;
opacity:1; opacity:1;
} }
publication::after{ publication::after{
content: ''; content: '';
position: absolute; position: absolute;
left: 0; top: 0; left: 0; top: 0;
border-radius: 5px; border-radius: 5px;
width: 100%; height: 100%; width: 100%; height: 100%;
background: none; background: none;
} }
publication-information { publication-information {
display: none; display: none;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: start;
} }
publication-information * { publication-information * {
z-index: 1; z-index: 1;
color: white; color: white;
} }
connector-name{ connector-name{
width: fit-content; width: fit-content;
margin: 10px 0; margin: 10px 0;
} }
publication-name{ publication-name{
width: fit-content; width: fit-content;
font-size: 16pt; font-size: 16pt;
font-weight: bold; font-weight: bold;
} }
publication-status { publication-status {
display:block; display:block;
height: 10px; height: 10px;
width: 10px; width: 10px;
border-radius: 50%; border-radius: 50%;
margin: 5px; margin: 5px;
position: absolute; position: absolute;
top: 5px; top: 5px;
right: 5px; right: 5px;
z-index: 2; z-index: 2;
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px;
} }
publication-status::after { publication-status::after {
content: attr(release-status); content: attr(release-status);
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
visibility: hidden; visibility: hidden;
/*Text Properties*/ /*Text Properties*/
font-size:10pt; font-size:10pt;
font-weight:bold; font-weight:bold;
color:white; color:white;
text-align: center; text-align: center;
/*Size*/ /*Size*/
padding: 3px 8px; padding: 3px 8px;
border-radius: 6px; border-radius: 6px;
border: 0px; border: 0px;
background-color: inherit; background-color: inherit;
} }
publication-status:hover::after{ publication-status:hover::after{
visibility:visible; visibility:visible;
} }
publication-status[release-status="Ongoing"]{ publication-status[release-status="Ongoing"]{
background-color: limegreen; background-color: limegreen;
} }
publication-status[release-status="Completed"]{ publication-status[release-status="Completed"]{
background-color: blueviolet; background-color: blueviolet;
} }
publication-status[release-status="On Hiatus"]{ publication-status[release-status="On Hiatus"]{
background-color: darkorange; background-color: darkorange;
} }
publication-status[release-status="Cancelled"]{ publication-status[release-status="Cancelled"]{
background-color: firebrick; background-color: firebrick;
} }
publication-status[release-status="Upcoming"]{ publication-status[release-status="Upcoming"]{
background-color: aqua; background-color: aqua;
} }
publication-status[release-status="Status Unavailable"]{ publication-status[release-status="Status Unavailable"]{
background-color: gray; background-color: gray;
} }
publication-details { publication-details {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: start;
} }
publication-details * { publication-details * {
z-index: 1; z-index: 1;
color: var(--accent-color); color: var(--accent-color);
} }
publication img { publication img {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
z-index: 0; z-index: 0;
border-radius: 5px; border-radius: 5px;
} }