aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-06-03 13:09:04 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2024-06-03 13:09:04 +0530
commita38b8ca3c6146c2db03167d6ff94e445d756a202 (patch)
tree0d315bd68158336d4241cec75685a8b15b4c00d6
parent7ea487be4aaf8f3b3047e2a7b3c1da80744f258b (diff)
downloadbanglar-bhumi-utils-a38b8ca3c6146c2db03167d6ff94e445d756a202.tar.gz
banglar-bhumi-utils-a38b8ca3c6146c2db03167d6ff94e445d756a202.zip
Added captha removal and autocomplete to GRN search.
-rw-r--r--config/webpack.config.js61
-rw-r--r--config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js8
-rw-r--r--config/webpack/plugins/create-manifest-webpack-plugin/index.js17
-rw-r--r--config/webpack/plugins/inject-script-webpack-plugin.js8
-rw-r--r--config/webpack/utils/build-file.js (renamed from config/webpack/utils/filename-hash.js)2
-rw-r--r--src/scripts.json13
-rw-r--r--src/scripts/captcha/application-receipt.ts5
-rw-r--r--src/scripts/functionality/application-receipt.ts23
-rw-r--r--src/scripts/functionality/grn-search.ts31
-rw-r--r--src/scripts/functionality/view-khatian/index.ts4
10 files changed, 77 insertions, 95 deletions
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 9618e33..70b87ca 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -18,7 +18,7 @@ const CreateInjectedSharedModulesPlugin = webpackRequire("plugins/create-injecte
const { inlineJavascript } = webpackRequire("utils/inline-javascript");
const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const scripts = webpackRequire("utils/scripts");
const sharedModules = webpackRequire("utils/shared-modules");
@@ -48,29 +48,24 @@ for (const scriptPath in scripts) {
let destinationFolder = "scripts";
switch (scriptType) {
- case "injected-after":
+ case "injected":
scriptEntries = injectedAfterScriptEntries;
destinationFolder = "scripts/injected";
break;
- case "injected-before":
- scriptEntries = injectedBeforeScriptEntries;
- destinationFolder = "scripts/injected";
- break;
-
default:
scriptEntries = uninjectedScriptEntries;
}
scriptEntries[`${scriptType} - "${scriptPath}"`] = {
import: inlineJavascript(currentScripts.map(script => `import "${path.resolve(SOURCE_DIR, "scripts", script)}";`).join("\n")),
- filename: `${destinationFolder}/${getFileNameHash(scriptType, scriptPath)}.js`
+ filename: `${destinationFolder}/${getFileName(scriptType, scriptPath)}.js`
};
}
}
for (const sharedModule of sharedModules) {
- const sharedModuleNameHash = getFileNameHash(sharedModule, "shared");
+ const sharedModuleNameHash = getFileName(sharedModule, "shared");
const sharedModuleGlobalVariableName = `$${sharedModuleNameHash.substring(sharedModuleNameHash.length - 16)}`;
sharedModuleEntries[sharedModule] = {
import: path.resolve(SOURCE_DIR, "shared", sharedModule),
@@ -138,23 +133,6 @@ const sharedModuleOptions = {
}
};
-const injectedModulesOptions = {
- externals: sharedModuleExternals,
- externalsType: "var",
- module: {
- rules: [
- {
- test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/,
- loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"),
- options: {
- sharedModulesImportedCount: injectedSharedModulesImportedCount
- },
- enforce: "post"
- }
- ]
- }
-};
-
const uninjectedScriptConfiguration = merge(
commonOptions,
sharedModuleOptions,
@@ -163,10 +141,23 @@ const uninjectedScriptConfiguration = merge(
}
);
-const injectedAfterScriptConfiguration = merge(
+const injectedScriptConfiguration = merge(
commonOptions,
- injectedModulesOptions,
{
+ externals: sharedModuleExternals,
+ externalsType: "var",
+ module: {
+ rules: [
+ {
+ test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/,
+ loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"),
+ options: {
+ sharedModulesImportedCount: injectedSharedModulesImportedCount
+ },
+ enforce: "post"
+ }
+ ]
+ },
entry: injectedAfterScriptEntries,
plugins: [
new InjectScriptPlugin()
@@ -174,17 +165,6 @@ const injectedAfterScriptConfiguration = merge(
}
);
-const injectedBeforeScriptConfiguration = merge(
- commonOptions,
- injectedModulesOptions,
- {
- entry: injectedBeforeScriptEntries,
- plugins: [
- new InjectScriptPlugin(true)
- ]
- }
-);
-
const sortedSharedModules = []
const sharedModulesConfiguration = merge(
@@ -227,7 +207,6 @@ const sharedModulesConfiguration = merge(
module.exports = [
uninjectedScriptConfiguration,
- injectedAfterScriptConfiguration,
- injectedBeforeScriptConfiguration,
+ injectedScriptConfiguration,
sharedModulesConfiguration
];
diff --git a/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js b/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
index fd5a0a2..aa076b8 100644
--- a/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
+++ b/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
@@ -2,7 +2,7 @@ const path = require("path");
const fs = require("fs");
const { sources } = require("webpack");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
class CreateInjectedSharedModulesPlugin {
constructor({ injectedSharedModulesImportedCount, sortedSharedModules }) {
@@ -20,15 +20,15 @@ class CreateInjectedSharedModulesPlugin {
assets => {
const injectedSharedScripts = this.sortedSharedModules
.filter(sharedModule => this.injectedSharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`);
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`);
if (injectedSharedScripts.length > 0) {
- const scriptInjectorModuleName = getFileNameHash("script-injector", "shared", true);
+ const scriptInjectorModuleName = getFileName("script-injector", "shared", true);
const injectionCode = injectedSharedScripts
.map(injectedScript => `$${scriptInjectorModuleName}.injectScriptHead("shared/${path.basename(injectedScript)}");`)
.join("");
compilation.emitAsset(
- `shared/${getFileNameHash("injected-shared-modules", "shared")}.js`,
+ `shared/${getFileName("injected-shared-modules", "shared")}.js`,
new sources.RawSource(injectionCode)
);
}
diff --git a/config/webpack/plugins/create-manifest-webpack-plugin/index.js b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
index b14cd13..92c3096 100644
--- a/config/webpack/plugins/create-manifest-webpack-plugin/index.js
+++ b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
@@ -2,7 +2,7 @@ const { sources } = require("webpack");
const path = require("path");
const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const scripts = webpackRequire("utils/scripts");
const manifest = webpackRequire("plugins/create-manifest-webpack-plugin/manifest-template.json");
@@ -37,9 +37,9 @@ class CreateManifestPlugin {
arrangedScripts[scriptPath][scriptRuntime] = [];
}
- arrangedScripts[scriptPath][scriptRuntime].push(`scripts/${getFileNameHash(scriptType, scriptPath)}.js`);
+ arrangedScripts[scriptPath][scriptRuntime].push(`scripts/${getFileName(scriptType, scriptPath)}.js`);
if (scriptType.startsWith("injected")) {
- resources.push(`scripts/injected/${getFileNameHash(scriptType, scriptPath)}.js`);
+ resources.push(`scripts/injected/${getFileName(scriptType, scriptPath)}.js`);
}
}
}
@@ -48,8 +48,9 @@ class CreateManifestPlugin {
matches: [`*://banglarbhumi.gov.in/BanglarBhumi/*`],
js: this.sortedSharedModules
.filter(sharedModule => this.sharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`)
- .concat(arrangedScripts["*"]["document_start"]),
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`)
+ .concat(arrangedScripts["*"]["document_start"])
+ .filter(x => x != null),
run_at: "document_start"
});
@@ -78,14 +79,14 @@ class CreateManifestPlugin {
const injectedSharedModules = this.sortedSharedModules
.filter(sharedModule => this.injectedSharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`);
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`);
if (injectedSharedModules.length > 0) {
resources = resources.concat(injectedSharedModules);
- manifest.content_scripts[0].js.unshift(`shared/${getFileNameHash("injected-shared-modules", "shared")}.js`);
+ manifest.content_scripts[0].js.unshift(`shared/${getFileName("injected-shared-modules", "shared")}.js`);
}
- manifest.content_scripts[0].js.unshift(`shared/${getFileNameHash("script-injector", "shared")}.js`);
+ manifest.content_scripts[0].js.unshift(`shared/${getFileName("script-injector", "shared")}.js`);
if (resources.length > 0) {
manifest.web_accessible_resources = [
diff --git a/config/webpack/plugins/inject-script-webpack-plugin.js b/config/webpack/plugins/inject-script-webpack-plugin.js
index 665d24e..25b1dc6 100644
--- a/config/webpack/plugins/inject-script-webpack-plugin.js
+++ b/config/webpack/plugins/inject-script-webpack-plugin.js
@@ -1,14 +1,10 @@
const { sources } = require("webpack");
const path = require("path");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const { getInjectedCode } = webpackRequire("utils/injected-code");
class InjectScriptPlugin {
- constructor(insertedBefore = false) {
- this.insertedBefore = insertedBefore;
- }
-
apply(compiler) {
compiler.hooks.compilation.tap("InjectScriptPlugin", compilation => {
compilation.hooks.processAssets.tapPromise(
@@ -21,7 +17,7 @@ class InjectScriptPlugin {
for (const assetName in assets) {
if (/\.js$/.test(assetName)) {
const injectedCodeResponse = getInjectedCode(compilation.getAsset(assetName).source.source())
- const scriptInjectorModuleName = getFileNameHash("script-injector", "shared", true);
+ const scriptInjectorModuleName = getFileName("script-injector", "shared", true);
compilation.updateAsset(
assetName,
new sources.RawSource(injectedCodeResponse[0])
diff --git a/config/webpack/utils/filename-hash.js b/config/webpack/utils/build-file.js
index e0d8a6d..9a0ae66 100644
--- a/config/webpack/utils/filename-hash.js
+++ b/config/webpack/utils/build-file.js
@@ -1,6 +1,6 @@
const crypto = require("crypto");
-module.exports.getFileNameHash = (fileName, prefix, justHash = false) => {
+module.exports.getFileName = (fileName, prefix, justHash = false) => {
let hash = crypto
.createHash("md5")
.update(`${prefix}-${fileName}`)
diff --git a/src/scripts.json b/src/scripts.json
index ca5062c..bc522cd 100644
--- a/src/scripts.json
+++ b/src/scripts.json
@@ -1,17 +1,14 @@
{
- "injected-before": {
- "stop-blocking.ts": "*"
- },
- "injected-after": {
+ "injected": {
+ "stop-blocking.ts": "*",
"login.ts": "*",
"otps/grievance-application.ts": "GrievAppViewAction.action",
"otps/mutation-application.ts": "MuteApplication.action",
"otps/warish-application.ts": "WarishAppViewAction.action",
"functionality/mutation-application.ts": "MuteApplication.action",
"functionality/view-khatian/index.ts": "KnowYourProperty.action",
- "captcha/know-your-property.ts": "KnowYourProperty.action"
- },
- "loaded": {
- "functionality/application-receipt.ts": "Apprecrep.action"
+ "functionality/grn-search.ts": "appGrnSrch",
+ "captcha/know-your-property.ts": "KnowYourProperty.action",
+ "captcha/application-receipt.ts": "Apprecrep.action"
}
}
diff --git a/src/scripts/captcha/application-receipt.ts b/src/scripts/captcha/application-receipt.ts
new file mode 100644
index 0000000..5ff1a57
--- /dev/null
+++ b/src/scripts/captcha/application-receipt.ts
@@ -0,0 +1,5 @@
+document.addEventListener("DOMContentLoaded", () => {
+ $("#werter > div > form > div:nth-child(4)").hide();
+ (window as any).validateForm = () => true;
+ const captchaElement = $("#werter > div > div:nth-child(4)");
+});
diff --git a/src/scripts/functionality/application-receipt.ts b/src/scripts/functionality/application-receipt.ts
deleted file mode 100644
index a86405f..0000000
--- a/src/scripts/functionality/application-receipt.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-$("#form_reprint_request")
- .removeAttr("id")
- .removeAttr("name")
- .removeAttr("onsubmit")
- .removeAttr("target")
- .removeAttr("autocomplete")
- .removeAttr("rel");
-
-const captchaElement = $("#werter > div > div:nth-child(4)");
-
-if (captchaElement.length > 0) {
- const captchaValueElement = $("#captchaText");
- const captchaFieldElement = $("[name=txtDrawText]");
-
- const captcha = () => {
- captchaFieldElement.val("FFFFFF");
- captchaValueElement.val("FFFFFF");
- captchaElement.hide();
- };
-
- captcha();
- setInterval(captcha, 1000);
-}
diff --git a/src/scripts/functionality/grn-search.ts b/src/scripts/functionality/grn-search.ts
new file mode 100644
index 0000000..02471f5
--- /dev/null
+++ b/src/scripts/functionality/grn-search.ts
@@ -0,0 +1,31 @@
+$("#frmpaymentDetails > div:nth-child(2) > div:nth-child(1) > div:nth-child(4)").hide();
+const captcha = $("#txtDrawText");
+const captchaText = $("#captchaText");
+captcha.val((captchaText.val() as string).replaceAll(" ", ""));
+
+const requestTypeElement = $("#lstRequestType");
+const grnNumberElement = $("#txtGRN_NO");
+const applicationNumberElement = $("#txtAPPLN_NO");
+
+const requestType = localStorage.getItem("requestType");
+const grnNumber = localStorage.getItem("grnNumber");
+const applicationNumber = localStorage.getItem("applicationNumber");
+
+if (requestType) {
+ requestTypeElement.val(requestType);
+}
+
+if (grnNumber) {
+ grnNumberElement.val(grnNumber);
+}
+
+if (applicationNumber) {
+ applicationNumberElement.val(applicationNumber);
+}
+
+$("#btnSubmitGRNNo").click(() => {
+ captcha.val((captchaText.val() as string).replaceAll(" ", ""));
+ localStorage.setItem("requestType", requestTypeElement.val() as string);
+ localStorage.setItem("grnNumber", grnNumberElement.val() as string);
+ localStorage.setItem("applicationNumber", applicationNumberElement.val() as string);
+});
diff --git a/src/scripts/functionality/view-khatian/index.ts b/src/scripts/functionality/view-khatian/index.ts
index 312c7c1..c54ef5a 100644
--- a/src/scripts/functionality/view-khatian/index.ts
+++ b/src/scripts/functionality/view-khatian/index.ts
@@ -2,11 +2,7 @@ import { generateWebPage } from "@/shared/generate-web-page";
import { interceptPost } from "@/shared/intercept-jquery-ajax";
import getDownloadInformationPDFPageContent from "@/scripts/functionality/view-khatian/download-information-pdf-page-content.html";
-declare function load(): void;
-
const sanghaFacilitationCentreBannerUrl = "$l{ /assets/sangha-facilitation-centre-banner.jpg }l$";
-// document.currentScript.getAttribute("data-banner-image-url");
-//("/assets/sangha-facilitation-centre-banner.jpg");
document.addEventListener("DOMContentLoaded", () => {
const submitButtonElement = $("#khbutton");