diff --git a/.github/workflows/docker-image-dev.yml b/.github/workflows/docker-image-dev.yml
new file mode 100644
index 0000000..ef777b9
--- /dev/null
+++ b/.github/workflows/docker-image-dev.yml
@@ -0,0 +1,45 @@
+name: Docker Image CI
+
+on:
+ push:
+ branches: [ "cuttingedge" ]
+ workflow_dispatch:
+
+jobs:
+
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ # https://github.com/docker/setup-qemu-action#usage
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v2.2.0
+
+ # https://github.com/marketplace/actions/docker-setup-buildx
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v2.10.0
+
+ # https://github.com/docker/login-action#docker-hub
+ - name: Login to Docker Hub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ # https://github.com/docker/build-push-action#multi-platform-image
+ - name: Build and push Website
+ uses: docker/build-push-action@v4.1.1
+ with:
+ context: ./Website
+ 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
+ pull: true
+ push: true
+ tags: |
+ glax/tranga-website:dev
diff --git a/Website/apiConnector.js b/Website/apiConnector.js
index dd07d41..83aa35c 100644
--- a/Website/apiConnector.js
+++ b/Website/apiConnector.js
@@ -188,6 +188,11 @@ function UpdateLunaSea(lunaseaWebhook){
PostData(uri);
}
+function UpdateNtfy(ntfyEndpoint, ntfyAuth){
+ var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=Ntfy&ntfyUrl=${ntfyEndpoint}&ntfyAuth=${ntfyAuth}`;
+ PostData(uri);
+}
+
function RemoveJob(jobId){
var uri = `${apiUri}/Jobs?jobId=${jobId}`;
DeleteData(uri);
diff --git a/Website/index.html b/Website/index.html
index 9dc5459..3ff0ddd 100644
--- a/Website/index.html
+++ b/Website/index.html
@@ -91,6 +91,12 @@
Configured: ✅❌
+
+
Ntfy
+
Configured: ✅❌
+
+
+
diff --git a/Website/interaction.js b/Website/interaction.js
index fea905b..38fdf89 100644
--- a/Website/interaction.js
+++ b/Website/interaction.js
@@ -32,10 +32,13 @@ const settingKavitaPass = document.querySelector("#kavitaPassword");
const settingGotifyUrl = document.querySelector("#gotifyUrl");
const settingGotifyAppToken = document.querySelector("#gotifyAppToken");
const settingLunaseaWebhook = document.querySelector("#lunaseaWebhook");
+const settingNtfyEndpoint = document.querySelector("#ntfyEndpoint");
+const settingNtfyAuth = document.querySelector("#ntfyAuth");
const settingKomgaConfigured = document.querySelector("#komgaConfigured");
const settingKavitaConfigured = document.querySelector("#kavitaConfigured");
const settingGotifyConfigured = document.querySelector("#gotifyConfigured");
const settingLunaseaConfigured = document.querySelector("#lunaseaConfigured");
+const settingNtfyConfigured = document.querySelector("#ntfyConfigured");
const settingApiUri = document.querySelector("#settingApiUri");
const settingMangaHoverCheckbox = document.querySelector("#mangaHoverCheckbox");
const newMangaPopup = document.querySelector("#newMangaPopup");
@@ -268,11 +271,14 @@ settingKavitaPass.addEventListener("keypress", (event) => { if(event.key === "En
settingGotifyUrl.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
settingGotifyAppToken.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
settingLunaseaWebhook.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
+settingNtfyEndpoint.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
+settingNtfyAuth.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
settingApiUri.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); });
function OpenSettings(){
settingGotifyConfigured.innerText = "❌";
settingLunaseaConfigured.innerText = "❌";
+ settingNtfyConfigured.innerText = "❌";
settingKavitaConfigured.innerText = "❌";
settingKomgaConfigured.innerText = "❌";
settingKomgaUrl.value = "";
@@ -284,6 +290,8 @@ function OpenSettings(){
settingGotifyUrl.value = "";
settingGotifyAppToken.value = "";
settingLunaseaWebhook.value = "";
+ settingNtfyAuth.value = "";
+ settingNtfyEndpoint.value = "";
settingApiUri.value = "";
settingMangaHoverCheckbox.checked = false;
@@ -336,6 +344,11 @@ function OpenSettings(){
settingLunaseaConfigured.innerText = "✅";
settingLunaseaWebhook.placeholder = connector.id;
break;
+ case "Ntfy":
+ settingNtfyConfigured.innerText = "✅";
+ settingNtfyEndpoint.placeholder = connector.endpoint;
+ settingNtfyAuth.placeholder = "***";
+ break;
default:
console.log("Unknown type");
console.log(connector);
@@ -382,6 +395,11 @@ function UpdateSettings(){
UpdateLunaSea(settingLunaseaWebhook.value);
}
+ if(settingNtfyEndpoint.value != "" &&
+ settingNtfyAuth.value != ""){
+ UpdateNtfy(settingNtfyEndpoint.value, settingNtfyAuth.value);
+ }
+
OpenSettings();
Setup();
}
diff --git a/Website/styles/style_default.css b/Website/styles/style_default.css
index 0de7061..f468079 100644
--- a/Website/styles/style_default.css
+++ b/Website/styles/style_default.css
@@ -208,17 +208,29 @@ publication{
flex-shrink: 0;
}
+publication:hover {
+ background-color: black;
+}
+
+publication:hover > img {
+ opacity: 0.5;
+}
+
+publication:hover > publication-information {
+ display: flex;
+ opacity:1;
+}
+
publication::after{
content: '';
position: absolute;
left: 0; top: 0;
border-radius: 5px;
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));
}
publication-information {
- display: flex;
+ display: none;
flex-direction: column;
justify-content: start;
}