Compare commits
9 Commits
f7cb4da37c
...
v1.5.1
| Author | SHA1 | Date | |
|---|---|---|---|
| c22c2fb254 | |||
| 4fe2922e5a | |||
| 4f1d5442be | |||
| 45d5200e61 | |||
| 10de4507af | |||
| a37d54cd2e | |||
| abc7742b75 | |||
| 05369a6661 | |||
| 948de12bc5 |
@@ -14,10 +14,28 @@ jobs:
|
||||
- name: Run linter
|
||||
run: make lint
|
||||
|
||||
deploy:
|
||||
deploy-chrome:
|
||||
needs: lint
|
||||
runs-on: linux
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v5
|
||||
- name: Deploy project
|
||||
run: make deploy
|
||||
- name: Deploy project to Chrome Webstore
|
||||
env:
|
||||
CLIENT_ID: ${{ vars.CHROME_CLIENT_ID }}
|
||||
CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
|
||||
EXTENSION_ID: ${{ vars.CHROME_EXTENSION_ID }}
|
||||
REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
|
||||
run: make deploy_chrome
|
||||
|
||||
deploy-firefox:
|
||||
needs: lint
|
||||
runs-on: linux
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v5
|
||||
- name: Deploy project to Firefox Addons
|
||||
env:
|
||||
WEB_EXT_API_KEY: ${{ vars.FIREFOX_API_KEY }}
|
||||
WEB_EXT_API_SECRET: ${{ secrets.FIREFOX_API_SECRET }}
|
||||
run: make deploy_firefox
|
||||
|
||||
37
CHANGELOG.md
37
CHANGELOG.md
@@ -1,5 +1,42 @@
|
||||
# Changelog
|
||||
|
||||
## 1.5.1 (2025-11-13)
|
||||
|
||||
- fonctionnalité de multi-attaques dans la même seconde
|
||||
|
||||
## 1.4.14 (2025-11-13)
|
||||
|
||||
- correction affichage menu avec rapports
|
||||
|
||||
## 1.4.13 (2025-11-13)
|
||||
|
||||
- déploiement automatique sur chrome
|
||||
|
||||
## 1.4.12 (2025-11-11)
|
||||
|
||||
- correction bug menu
|
||||
|
||||
## 1.4.11 (2025-11-11)
|
||||
|
||||
- ajout des data collection permissions
|
||||
|
||||
## 1.4.10 (2025-11-11)
|
||||
|
||||
- correction du fichier metadata.json
|
||||
|
||||
## 1.4.9 (2025-11-11)
|
||||
|
||||
- test déploiement manuel
|
||||
|
||||
## 1.4.8 (2025-11-11)
|
||||
|
||||
- suppression de data_collection_permissions car non supporté pour Android
|
||||
|
||||
## 1.4.7 (2025-11-11)
|
||||
|
||||
- correction du déploiement automatisé
|
||||
- ajout de data_collection_permissions dans manifest.json
|
||||
|
||||
## 1.4.6 (2025-11-11)
|
||||
|
||||
- déploiement automatisé sur firefox
|
||||
|
||||
5
Makefile
5
Makefile
@@ -4,7 +4,10 @@ build:
|
||||
lint:
|
||||
web-ext lint
|
||||
|
||||
deploy:
|
||||
deploy_chrome:
|
||||
chrome-webstore-upload
|
||||
|
||||
deploy_firefox:
|
||||
web-ext sign --channel listed --amo-metadata metadata.json
|
||||
|
||||
help:
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "KAplus",
|
||||
"version": "1.4.6",
|
||||
"version": "1.5.1",
|
||||
|
||||
"author": "Samuel Campos - netoik.io",
|
||||
"description": "Extension développée pour améliorer l'expérience de jeu KingsAge (fonctionne avec ou sans premium)",
|
||||
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "{e750d6a9-86ff-4129-aed6-542de03deb79}"
|
||||
"id": "{e750d6a9-86ff-4129-aed6-542de03deb79}",
|
||||
"data_collection_permissions": {
|
||||
"required": [
|
||||
"websiteContent",
|
||||
"websiteActivity"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{
|
||||
"version": {
|
||||
"compatibility": [
|
||||
"android",
|
||||
"firefox"
|
||||
],
|
||||
"release_notes": {
|
||||
"fr": "- déploiement automatisé sur firefox\n- correction du bug d'affichage du menu Messages et Rapports"
|
||||
"fr": "- fonctionnalité de multi-attaques dans la même seconde",
|
||||
"en-US": "- feature multi-attack in same second"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,20 +32,18 @@ function createRow(key, value) {
|
||||
}
|
||||
|
||||
function shortcutElementReplace(elt, img, text) {
|
||||
let imgElements = elt.getElementsByTagName("img");
|
||||
for (let i=0; i<imgElements.length; i++) {
|
||||
if (i === 0) {
|
||||
elt.getElementsByTagName("a")[0].classList.add("has_notif");
|
||||
}
|
||||
imgElements[i].remove();
|
||||
i --;
|
||||
}
|
||||
|
||||
// If more than one hyperlink element found,
|
||||
// then keep the last one but with href of the first one.
|
||||
let aElements = elt.getElementsByTagName("a");
|
||||
for (i=0; i<aElements.length; i++) {
|
||||
if (i > 0) {
|
||||
let imgElements = elt.getElementsByTagName("img");
|
||||
if (aElements.length > 1 || imgElements.length > 0) {
|
||||
aElements[aElements.length - 1].classList.add("has_notif");
|
||||
aElements[aElements.length - 1].setAttribute("href", aElements[0].getAttribute("href"));
|
||||
for (let i = imgElements.length - 1; i >= 0; i--) {
|
||||
imgElements[i].remove();
|
||||
}
|
||||
for (let i = aElements.length - 2; i >= 0; i--) {
|
||||
aElements[i].remove();
|
||||
i --;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +51,7 @@ function shortcutElementReplace(elt, img, text) {
|
||||
spanImageElement.classList.add("shortcut_element_image");
|
||||
|
||||
let imgElement = document.createElement("img");
|
||||
imgElement.setAttribute("src", chrome.runtime.getURL("images/"+img+".svg"));
|
||||
imgElement.setAttribute("src", chrome.runtime.getURL("images/" + img + ".svg"));
|
||||
spanImageElement.appendChild(imgElement);
|
||||
|
||||
aElements[0].textContent = "";
|
||||
@@ -131,4 +129,45 @@ if (document.body.id === "overview") {
|
||||
villagePointsRow.after(unitPointsRow);
|
||||
}
|
||||
|
||||
/* Allow multiple attacks */
|
||||
if (document.body.id === "build_barracks_command") {
|
||||
let table = document.createElement("table");
|
||||
table.classList.add("borderlist");
|
||||
let tbody = document.createElement("tbody");
|
||||
let tr = document.createElement("tr");
|
||||
let th = document.createElement("th");
|
||||
th.textContent = "Nombre d'attaques:";
|
||||
tr.appendChild(th)
|
||||
let td = document.createElement("td");
|
||||
let input = document.createElement("input");
|
||||
input.setAttribute("type", "number");
|
||||
input.setAttribute("name", "attack_count");
|
||||
input.setAttribute("value", "1");
|
||||
td.appendChild(input);
|
||||
tr.appendChild(td);
|
||||
tbody.appendChild(tr);
|
||||
table.appendChild(tbody);
|
||||
|
||||
let form = document.getElementsByTagName("form")[0];
|
||||
let firstInput = form.getElementsByTagName("input")[0];
|
||||
form.insertBefore(table, firstInput);
|
||||
form.addEventListener("submit", function(event) {
|
||||
event.preventDefault();
|
||||
let formData = new FormData(this);
|
||||
let attackCount = parseInt(formData.get("attack_count").toString());
|
||||
formData.delete("attack_count");
|
||||
|
||||
let sent = 0;
|
||||
for (let i = 0; i < attackCount; i ++) {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.onload = function() {
|
||||
sent ++;
|
||||
if (sent === attackCount) {
|
||||
window.location.replace(xhr.responseURL);
|
||||
}
|
||||
}
|
||||
xhr.open(this.method, this.action, true);
|
||||
xhr.send(formData);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user