diff options
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | src/rules/block-scripts.json | 2 | ||||
| -rw-r--r-- | src/scripts.json | 4 | ||||
| -rw-r--r-- | src/scripts/functionality/mutation-application.ts | 47 | ||||
| -rw-r--r-- | src/scripts/optimize.ts | 11 | ||||
| -rw-r--r-- | yarn.lock | 34 |
6 files changed, 84 insertions, 15 deletions
diff --git a/package.json b/package.json index e49a2dd..e6c737f 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@types/jquery": "^3.5.16", "copy-webpack-plugin": "^11.0.0", "import-manager": "^0.3.3", + "pdf-lib": "^1.17.1", "ts-loader": "^9.4.2", "typescript": "^4.9.5", "webpack": "^5.75.0", diff --git a/src/rules/block-scripts.json b/src/rules/block-scripts.json index 0e7606b..c0f6c02 100644 --- a/src/rules/block-scripts.json +++ b/src/rules/block-scripts.json @@ -4,6 +4,6 @@ "type": "block" }, "condition": { - "regexFilter": "^https:\/\/banglarbhumi.gov.in\/BanglarBhumi\/js\/(jquery-1.12.4|jquery.nivo.slider|bootstrap-dropdownhover).js$" + "regexFilter": "^https:\/\/banglarbhumi.gov.in\/BanglarBhumi\/js\/(jquery-1.12.4|bootstrap-dropdownhover).js$" } } diff --git a/src/scripts.json b/src/scripts.json index 75228c4..7586176 100644 --- a/src/scripts.json +++ b/src/scripts.json @@ -1,7 +1,4 @@ { - "before": { - "optimize.ts": "*" - }, "injected-before": { "stop-blocking.ts": "*" }, @@ -9,6 +6,7 @@ "login.ts": "*", "otps/grievance-application.ts": "GrievAppViewAction.action", "otps/mutation-application.ts": "MuteApplication.action", + "functionality/mutation-application.ts": "MuteApplication.action", "functionality/view-khatian/index.ts": "KnowYourProperty.action" }, "loaded": { diff --git a/src/scripts/functionality/mutation-application.ts b/src/scripts/functionality/mutation-application.ts new file mode 100644 index 0000000..3283089 --- /dev/null +++ b/src/scripts/functionality/mutation-application.ts @@ -0,0 +1,47 @@ +import { PDFDocument } from "pdf-lib"; +import { observeDOM } from "@/shared/observe-dom"; + +const sanghaFacilitationCentreBannerUrl = chrome.runtime.getURL("/assets/sangha-facilitation-centre-banner.jpg"); + +document.addEventListener("DOMContentLoaded", () => { + observeDOM(() => { + const formElement = document.querySelector("#form_MutationApplication > div > div:nth-child(14) > div.col-sm-2.btreset > form"); + const submitButtonElement = document.getElementById("btnDeclareForm"); + if (formElement && submitButtonElement) { + formElement.removeAttribute("action"); + submitButtonElement.addEventListener("click", e => { + e.preventDefault(); + + (async () => { + const pdfDoc = await PDFDocument.load(await fetch("/BanglarBhumi/MutationDeclarationForm.action", { + method: "post", + credentials: "same-origin", + headers: { + "Content-Type": "application/x-www-form-urlencoded" + }, + body: "hdnAppNo=" + }).then(res => res.arrayBuffer())); + const pages = pdfDoc.getPages(); + const lastPage = pages[pages.length - 1]; + const { width, height } = lastPage.getSize(); + const bannerImage = await pdfDoc.embedJpg(await fetch(sanghaFacilitationCentreBannerUrl).then(res => res.arrayBuffer())); + lastPage.drawImage(bannerImage, { + x: 0, + y: 0, + width: width, + height: width * (bannerImage.height / bannerImage.width), + }); + + const link = document.createElement("a"); + link.href = window.URL.createObjectURL(new Blob([new Uint8Array(await pdfDoc.save())], {type: "application/pdf"})); + link.download = "Declaration.pdf"; + link.click(); + })(); + }); + + return true; + } else { + return false; + } + }); +}); diff --git a/src/scripts/optimize.ts b/src/scripts/optimize.ts deleted file mode 100644 index 336a6ca..0000000 --- a/src/scripts/optimize.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { modifyDOM } from "@/shared/modify-dom"; - -modifyDOM([ - [ - "head > script:nth-child(36)", - { - src: null, - innerHTML: "$.prototype.nivoSlider = () => {};" - } - ] -]); @@ -68,6 +68,20 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pdf-lib/standard-fonts@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz#8ba691c4421f71662ed07c9a0294b44528af2d7f" + integrity sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA== + dependencies: + pako "^1.0.6" + +"@pdf-lib/upng@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@pdf-lib/upng/-/upng-1.0.1.tgz#7dc9c636271aca007a9df4deaf2dd7e7960280cb" + integrity sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ== + dependencies: + pako "^1.0.10" + "@types/chrome@^0.0.213": version "0.0.213" resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.213.tgz#f1e421f76ce7986d2886bafc6c359575e599471e" @@ -798,6 +812,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@^1.0.10, pako@^1.0.11, pako@^1.0.6: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -818,6 +837,16 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pdf-lib@^1.17.1: + version "1.17.1" + resolved "https://registry.yarnpkg.com/pdf-lib/-/pdf-lib-1.17.1.tgz#9e7dd21261a0c1fb17992580885b39e7d08f451f" + integrity sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw== + dependencies: + "@pdf-lib/standard-fonts" "^1.0.0" + "@pdf-lib/upng" "^1.0.1" + pako "^1.0.11" + tslib "^1.11.1" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -1034,6 +1063,11 @@ ts-loader@^9.4.2: micromatch "^4.0.0" semver "^7.3.4" +tslib@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + typescript@^4.9.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" |
