diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml new file mode 100644 index 0000000..47da788 --- /dev/null +++ b/.gitea/workflows/cd.yaml @@ -0,0 +1,23 @@ +name: Continuous Deployment + +on: + push: + tags: + - v* + +jobs: + lint: + runs-on: linux + steps: + - name: Checkout repo + uses: actions/checkout@v5 + - name: Run linter + run: make lint + + deploy: + runs-on: linux + steps: + - name: Checkout repo + uses: actions/checkout@v5 + - name: Deploy project + run: make deploy diff --git a/.gitignore b/.gitignore index 6311779..414b98a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ web-ext-artifacts/ +.idea/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c670cc..4e46e58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 1.4.6 (2025-11-11) + +- déploiement automatisé sur firefox +- correction du bug d'affichage du menu Messages et Rapports + +## 1.4.5 (2025-10-14) + +- tests de déploiement automatisé + +## 1.4.4 (2025-10-11) + +- tests de déploiement automatisé + ## 1.4.3 (2025-09-15) - correction de l'affichage du menu en cas de nouveau rapport diff --git a/Makefile b/Makefile index 6ad3937..21cb565 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,11 @@ build: - web-ext build --overwrite-dest + web-ext build --overwrite-dest lint: - web-ext lint + web-ext lint deploy: - web-ext sign --channel listed --amo-metadata metadata.json \ No newline at end of file + web-ext sign --channel listed --amo-metadata metadata.json + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' \ No newline at end of file diff --git a/manifest.json b/manifest.json index 59f69ac..fed4548 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "KAplus", - "version": "1.4.3", + "version": "1.4.6", "author": "Samuel Campos - netoik.io", "description": "Extension développée pour améliorer l'expérience de jeu KingsAge (fonctionne avec ou sans premium)", diff --git a/metadata.json b/metadata.json new file mode 100644 index 0000000..b9f1eeb --- /dev/null +++ b/metadata.json @@ -0,0 +1,9 @@ +{ + "compatibility": [ + "android", + "firefox" + ], + "release_notes": { + "fr": "- déploiement automatisé sur firefox\n- correction du bug d'affichage du menu Messages et Rapports" + } +} \ No newline at end of file diff --git a/src/kaplus.js b/src/kaplus.js index 0ff0fb1..b79f6fb 100644 --- a/src/kaplus.js +++ b/src/kaplus.js @@ -3,43 +3,45 @@ function num(s) { } function str(n) { - if (n == 0) { + if (n === 0) { return "0"; } - s = ""; + let s = ""; while (n > 0) { - if (s != "") { + if (s !== "") { s = "." + s; } - r = n % 1000; + let r = n % 1000; s = r.toString().padStart(3, "0") + s; - n = ~~(n/1000); + n = ~~(n/1000); } return s.replace(/^0+/, ""); } function createRow(key, value) { - keyCell = document.createElement("td"); - keyCell.textContent = key; - valueCell = document.createElement("td"); - valueCell.textContent = value; - row = document.createElement("tr"); - row.appendChild(keyCell); - row.appendChild(valueCell); - return row; + let keyCell = document.createElement("td"); + keyCell.textContent = key; + + let valueCell = document.createElement("td"); + valueCell.textContent = value; + + let row = document.createElement("tr"); + row.appendChild(keyCell); + row.appendChild(valueCell); + return row; } function shortcutElementReplace(elt, img, text) { - imgElements = elt.getElementsByTagName("img"); - for (i=0; i 0) { aElements[i].remove(); @@ -47,10 +49,10 @@ function shortcutElementReplace(elt, img, text) { } } - spanImageElement = document.createElement("span"); + let spanImageElement = document.createElement("span"); spanImageElement.classList.add("shortcut_element_image"); - imgElement = document.createElement("img"); + let imgElement = document.createElement("img"); imgElement.setAttribute("src", chrome.runtime.getURL("images/"+img+".svg")); spanImageElement.appendChild(imgElement); @@ -58,7 +60,7 @@ function shortcutElementReplace(elt, img, text) { aElements[0].appendChild(spanImageElement); if (text) { - spanDescElement = document.createElement("span"); + let spanDescElement = document.createElement("span"); spanDescElement.classList.add("shortcut_element_desc"); spanDescElement.textContent = text; aElements[0].appendChild(spanDescElement); @@ -66,11 +68,11 @@ function shortcutElementReplace(elt, img, text) { } /* Improve main menu display */ -layCastleTopElements = document.getElementsByClassName("lay_castle_top"); -if (layCastleTopElements.length == 1) { +let layCastleTopElements = document.getElementsByClassName("lay_castle_top"); +if (layCastleTopElements.length === 1) { document.getElementById("banner_skyscraper").remove(); - shortcutElements = layCastleTopElements[0].getElementsByClassName("shortcut_element"); + let shortcutElements = layCastleTopElements[0].getElementsByClassName("shortcut_element"); shortcutElementReplace(shortcutElements[0], "ranking", shortcutElements[0].textContent.replace(/[^0-9]/g, "")); shortcutElementReplace(shortcutElements[1], "ally", ""); shortcutElementReplace(shortcutElements[2], "profile", ""); @@ -79,51 +81,51 @@ if (layCastleTopElements.length == 1) { shortcutElementReplace(shortcutElements[5], "tools", ""); shortcutElementReplace(shortcutElements[6], "favorites", ""); - shortcutContainers = layCastleTopElements[0].getElementsByClassName("shortcut_container"); + let shortcutContainers = layCastleTopElements[0].getElementsByClassName("shortcut_container"); shortcutContainers[0].classList.add("shortcut_container_left"); shortcutContainers[2].classList.add("shortcut_container_right"); } /* Display unit-points on user profile */ if (document.body.id === "info_player") { - mainContentPane = document.getElementsByClassName("contentpane")[1]; - borderLists = mainContentPane.getElementsByClassName("borderlist"); + let mainContentPane = document.getElementsByClassName("contentpane")[1]; + let borderLists = mainContentPane.getElementsByClassName("borderlist"); - playerPropertiesTable = borderLists[0]; - playerPropertiesRows = playerPropertiesTable.getElementsByTagName("tr"); - totalPoints = num(playerPropertiesRows[2].getElementsByTagName("td")[1].textContent); - villagesCount = num(playerPropertiesRows[4].getElementsByTagName("td")[1].textContent); + let playerPropertiesTable = borderLists[0]; + let playerPropertiesRows = playerPropertiesTable.getElementsByTagName("tr"); + let totalPoints = num(playerPropertiesRows[2].getElementsByTagName("td")[1].textContent); + let villagesCount = num(playerPropertiesRows[4].getElementsByTagName("td")[1].textContent); - villagesTable = borderLists[1]; - villagesRows = villagesTable.getElementsByTagName("tr"); - villagesPoints = 0; - for (i=1; i 0) { - armyPercent = (Math.round(armyPoints / villagesCount) / 100).toString() + " %"; - } else { - armyPercent = "-"; + armyPercent = (Math.round(armyPoints / villagesCount) / 100).toString() + " %"; } - playerPropertiesTable.appendChild(createRow("Points troupes:", str(armyPoints))); + playerPropertiesTable.appendChild(createRow("Points troupes:", str(armyPoints))); playerPropertiesTable.appendChild(createRow("% points troupes:", armyPercent)); } /* Display unit-points on village overview */ if (document.body.id === "overview") { - settlements = document.getElementById("settlement").textContent.split("|"); - noborderRows = document.getElementsByClassName("noborder"); - for (i=0; i