diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-06-03 13:09:04 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-06-03 13:09:04 +0530 |
| commit | a38b8ca3c6146c2db03167d6ff94e445d756a202 (patch) | |
| tree | 0d315bd68158336d4241cec75685a8b15b4c00d6 | |
| parent | 7ea487be4aaf8f3b3047e2a7b3c1da80744f258b (diff) | |
| download | banglar-bhumi-utils-a38b8ca3c6146c2db03167d6ff94e445d756a202.tar.gz banglar-bhumi-utils-a38b8ca3c6146c2db03167d6ff94e445d756a202.zip | |
Added captha removal and autocomplete to GRN search.
| -rw-r--r-- | config/webpack.config.js | 61 | ||||
| -rw-r--r-- | config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js | 8 | ||||
| -rw-r--r-- | config/webpack/plugins/create-manifest-webpack-plugin/index.js | 17 | ||||
| -rw-r--r-- | config/webpack/plugins/inject-script-webpack-plugin.js | 8 | ||||
| -rw-r--r-- | config/webpack/utils/build-file.js (renamed from config/webpack/utils/filename-hash.js) | 2 | ||||
| -rw-r--r-- | src/scripts.json | 13 | ||||
| -rw-r--r-- | src/scripts/captcha/application-receipt.ts | 5 | ||||
| -rw-r--r-- | src/scripts/functionality/application-receipt.ts | 23 | ||||
| -rw-r--r-- | src/scripts/functionality/grn-search.ts | 31 | ||||
| -rw-r--r-- | src/scripts/functionality/view-khatian/index.ts | 4 |
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"); |
