I am relatively new to Javascript and am currently making a Violentmonkey script. In my script I have a relatively big string that I want to compress but I don't know how I would do that since most methods I found only where using external libraries (which I don't know if or how to use in Violentmonkey).
So what's the best way of compressing a string in Violentmonkey? Thanks in advance 😊
You can @require
a CDN link to the lz-string library, and use it to decompress a pre-encoded base64 string.
Encode your original string using LZString.compressToBase64
and store it inside the script like below:
// ==UserScript==
// @name Display Gettysburg Address
// @namespace Stack Overflow
// @match https://stackoverflow.com/questions/75940976/*
// @grant none
// @version 1.0.0
// @author Mr. Polywhirl
// @description Displays the Gettysburg Address from a Base64 lz-string
// @require https://cdnjs.cloudflare.com/ajax/libs/lz-string/1.4.4/lz-string.min.js
// ==/UserScript==
(function() {
'use strict'
const main = () => {
const decompressedText = LZString.decompressFromBase64(compressedText.trim());
alert(decompressedText);
};
// https://people.sc.fsu.edu/~jburkardt/m_src/ncm_test/gettysburg.txt
const compressedText = `
GIewrgTgzgxiEFMAEBDAdgEyVBA3BaSAngitKgOYhLgRIBmKALgBYLkBGE4FLTD8VjUKsAllABQcN
E1FoC/FEnkB3Zc1Eg0AGiTSYCUfixykAG1Ed2TIqkxIMCDKJjMnSJtVYIJAB26+IFCisloeLMyoZm
ZIALYEqIh6iG5YCACOYChmAHQSAHIgairIZMgEFCgU7qZKFCn8MEaiMSpkukwIULJoFEgqbN50rJF
oGloS8Ha2Y6GEUNT6hsZ2WAsOTi6peujmWn0EGJAIOUgA6qWIEvH8YXUNSBzMTGbI9KIIZlgg9OGR
bRBThckBF8HoQPEPNRHM5XJ1UH5BJpCD8/vx3p8MLoUFBUAw5NkkIhunI+r4zCgDAJhiwgsgBtQ2F
dKmDvKI6BZ8LiRvweeo5nFRLx+JyTkgAJL8cRRTzVIYSd5MHp9dBYfwgXzsNH9ZBQWlgL4OLwscR5
ABCYCYulq5jI1ToODQOF0JR2hDQIH4MK28IAtDq3cpPeCnQgYBA3BJ/a7XO7gxFokUkP6xLj6uBMK
cACpsR4RsHxHTmZq9VYbFBYiQM7BMCBgCgUV5YJkIXSg5DSHDh7YhXSMOgoDggMG0JCBKaBErDEAS
CvfOiOWuUpjZ3MqeCGlQtGIWJWvIOdXQejn7IkIeKxKwQF0RJhV3UoWwt3QcS1IEKB+T4Oj0eBy/q
3uECC2M4zbsGKkrvriv4QBIYDcrmnKkroEZDB01BWBssLbC2UJAUgYBoO8aDiGwWDrhAADWVYmjAL
BAbY1a/vWfAguBIIoKyLDwQwZDYNQHocGYtgVrg6AGBgpyQeIEioUy1IEdyGHILh3pwu4nj4fUpC8
jilFnrEKByKSEhWDByA8SmgH0NwsRATgIJaPA7iOBWAZMCglHIHI4akDgWCOLgnrIhIml8q48FvFM
AwuPR3i2CyyDeLa3QMAaMTxDixw0L8gXBRMVn/Cp7EmrwwlngsZhcZE3gOa5awJjEHr8O2DgfCYaA
SGJpiFbyJq4rMyK6IRjh0AA4iAWLYI1HFgkoqiPOyQg/AqiBOBCyZlnyVDfmgha3L8yWahqrwvrYR
0ICdrYKd4fiXeS116tkTXBpqECkQwtn4aQECsDkQA=
`.replace(/\s+/g, '');
main();
})();