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 43276b1..dbe3dbc 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -183,6 +183,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 6ae6379..fcb68ee 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 5fcaf1d..9e22f0b 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 newMangaPopup = document.querySelector("#newMangaPopup"); const newMangaConnector = document.querySelector("#newMangaConnector"); @@ -254,11 +257,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 = ""; @@ -270,6 +276,8 @@ function OpenSettings(){ settingGotifyUrl.value = ""; settingGotifyAppToken.value = ""; settingLunaseaWebhook.value = ""; + settingNtfyAuth.value = ""; + settingNtfyEndpoint.value = ""; settingApiUri.value = ""; GetSettings().then((json) => { @@ -313,6 +321,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); @@ -350,6 +363,11 @@ function UpdateSettings(){ UpdateLunaSea(settingLunaseaWebhook.value); } + if(settingNtfyEndpoint.value != "" && + settingNtfyAuth.value != ""){ + UpdateNtfy(settingNtfyEndpoint.value, settingNtfyAuth.value); + } + OpenSettings(); Setup(); }