1
0
Fork 0

Create
Some checks failed
QS / QS (push) Failing after 4s

This commit is contained in:
Snoweuph 2024-07-28 10:38:31 +02:00
commit 48eb1b040a
Signed by: Snoweuph
GPG key ID: A494330694B208EF
5 changed files with 107 additions and 0 deletions

18
.gitea/workflows/qs.yml Normal file
View file

@ -0,0 +1,18 @@
name: "QS"
on:
push:
branches:
- main
jobs:
qs:
name: "QS"
runs-on: "ubuntu-latest"
container:
image: "git.euph.dev/actions/runner-js-latest:latest"
steps:
- name: "Checkout"
uses: "https://git.euph.dev/actions/checkout@v3"
- name: "Prettier"
run: npm_config_yes=true npx prettier src/ types/ --check --log-level=error

7
Readme.md Normal file
View file

@ -0,0 +1,7 @@
# CCNA Autofill UserScript
Simple Userscript to Create Tabletop Cards from Armyforge Cards
[![Install USerscript](https://img.shields.io/badge/Install_Userscript-Install_Userscript?style=for-the-badge&logo=greasyfork&logoColor=black&color=brown)](https://git.euph.dev/Snoweuph/Armyfroge_Cards_Userscript/raw/branch/main/main.user.js)
## Usage
Press `CTRL` + `s` to Save the Current Cards.

8
jsconfig.json Normal file
View file

@ -0,0 +1,8 @@
{
"compilerOptions": {
"checkJs": true,
"target": "es6",
"lib": ["dom", "es6"]
}
}

64
main.user.js Normal file
View file

@ -0,0 +1,64 @@
// ==UserScript==
// @name Armyfroge Cards
// @namespace https://git.euph.dev/Snoweuph
// @match https://army-forge.onepagerules.com/view*
// @grant none
// @version 1.0.0
// @author Snoweuph
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @require https://html2canvas.hertzen.com/dist/html2canvas.min.js
// ==/UserScript==
// Bind to Ctrl + S
document.addEventListener("keydown", (event) => {
if (event.ctrlKey && event.key === "s") {
event.preventDefault();
generate();
}
});
function generate() {
const cards_root =
document.getElementsByClassName("MuiContainer-root")[0].firstElementChild;
Array.from(cards_root.children).forEach((child) => {
const card = child.firstElementChild;
const header = card.firstElementChild;
const marker_section = document.createElement("div");
marker_section.style.display = "flex";
marker_section.style.gap = "0.5rem";
marker_section.style.padding = "0.5rem";
marker_section.style.marginBottom = "0.5rem";
for (let i = 0; i < 10; i++) {
const maker_space = document.createElement("div");
maker_space.style.width = "3rem";
maker_space.style.aspectRatio = "1";
maker_space.style.borderRadius = "100%";
maker_space.style.border = "dashed 1px lightgray";
marker_section.appendChild(maker_space);
}
card.insertBefore(marker_section, header.nextSibling);
html2canvas(card, { scale: 15, backgroundColor: null }).then((canvas) => {
const link = document.createElement("a");
link.download = getHeaderTitle(header) + ".png";
link.href = canvas.toDataURL();
document.body.appendChild(link);
link.click();
});
});
}
// Extract Title of Card
function getHeaderTitle(pElement) {
let textContent = "";
pElement.firstElementChild.firstElementChild.firstElementChild.childNodes.forEach(
(node) => {
if (node.nodeType === Node.TEXT_NODE) {
textContent += node.textContent;
}
}
);
return textContent;
}

10
prettierrc.json Normal file
View file

@ -0,0 +1,10 @@
{
"useTabs": false,
"tabWidth": 4,
"arrowParens": "avoid",
"bracketSameLine": false,
"singleQuote": true,
"semi": true,
"trailingComma": "none",
"endOfLine": "lf"
}