oplus
Version:
Multipropose package that is easy to use!
557 lines (481 loc) • 13.7 kB
JavaScript
const express = require("express");
const {lookup} = require("geoip-lite");
const bcrypt = require('bcrypt');
const fss = require("fs");
const path = require("path");
const fs = require('fs-extra');
const date = require('date-and-time');
//const shell = require('shelljs');
////////////////////////////////
//start = function(){
// shell.exec('npm i express geoip-lite bcrypt path fs-extra');
//}
//////////////////////////////////
const app = express();
replaceText = function(text = "", m1 = "", m2 = "", num){
if (!text){
const errorMessage = new SyntaxError("No text was found!\n replaceText()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!m1) {
const errorMessage = new SyntaxError("No string to replace was found!\n replaceText()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!m2) {
const errorMessage = new SyntaxError("No string to replace with was found!\n replaceText()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!num) {
return text.replaceAll(m1, m2);
}
afterText = text;
if (num < 0) {
afterText = afterText.split('').reverse().join('');
m1 = m1.split('').reverse().join('');
m2 = m2.split('').reverse().join('');
}
for (let i = 0; i < Math.abs(num); i++)
afterText = afterText.replace(m1, m2);
return num > 0 ? afterText : afterText.split('').reverse().join('');
}
checkContainsOr = function(text, ...find) {
if (!text) {
const errorMessage = new SyntaxError("No text was found!\n checkContainsOr( )\n ^ ")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!find) {
const errorMessage = new SyntaxError("No text was found!\n checkContainsOr( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!!text && !!find)
return find.reduce((a, b) => text.includes(b) || a, true);
}
console.send = function(text) {
console.log(text)
}
replaceTextBetween = function(text, m1, m2, start, end = 0) {
if (!text) {
const errorMessage = new SyntaxError("No text was found!\n replaceTextBetween( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!m1) {
const errorMessage = new SyntaxError("No text split was found!\n replaceTextBetween( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!m2) {
const errorMessage = new SyntaxError("No text replacer was found!\n replaceTextBetween( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!start) {
const errorMessage = new SyntaxError("No starting number was found!\n replaceTextBetween( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (start < 0) start = text.length + start;
if (end < 0) end = text.length + end;
if (start > end) {
let temp = start;
start = end;
end = temp;
}
const subText = text.substring(start, end).replaceAll(m1, m2);
const split1 = text.substring(0, start);
const split2 = text.substring(end);
return split1 + subText + split2;
}
checkContainsAnd = function(text, ...find) {
if (!text) {
const errorMessage = new SyntaxError("No text was found!\n checkContainsAnd( )\n ^ ")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!find) {
const errorMessage = new SyntaxError("No text parameter\s was found!\n checkContainsAnd()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
return find.reduce((a, b) => text.includes(b) && a, true);
}
upperWord = function(text, num) {
if (!text) {
const errorMessage = new SyntaxError("No text input was found!\n upperWord( )\n ^ ")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!!num) {
if (typeof(num) != "number") {
const errorMessage = new SyntaxError("No number was found!\n upperWord( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
}
if (num === 0)
return(text)
if (!num) {
return text.toUpperCase()
} else {
if (num < 0)
text = text.split(' ').reverse()
else
text = text.split(' ')
for (let i = 0;i < Math.abs(num);i++) {
if (text.length == i)
break
text[i] = text[i].toUpperCase()
}
if (num < 0)
text = text.reverse().join(' ')
else
text = text.join(' ')
return text
}
}
lowerWord = function(text, num) {
if (!text) {
const errorMessage = new SyntaxError("No text was found!\n lowerWord( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!!num) {
if (typeof(num) != "number") {
const errorMessage = new SyntaxError("No number was found!\n lowerWord( )")
errorMessage.name = "OPlus Error"
throw errorMessage
}
}
if (num === 0)
return(text)
if (!num) {
return text.toLowerCase()
} else {
if (num < 0)
text = text.split(' ').reverse()
else
text = text.split(' ')
for (let i = 0;i < Math.abs(num);i++) {
if (text.length == i)
break
text[i] = text[i].toLowerCase()
}
if (num < 0)
text = text.reverse().join(' ')
else
text = text.join(' ')
return text
}
}
upperLetter = function(text, num) {
if (!text) {
const errorMessage = new SyntaxError("No text was found!\n upperLetter()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!!num) {
if (typeof(num) != "number") {
const errorMessage = new SyntaxError("No number was found!\n upperLetter()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
}
if (num === 0)
return(text)
if (!num) {
return text.toUpperCase()
} else {
if (num < 0)
text = text.split('').reverse()
else
text = text.split('')
for (let i = 0;i < Math.abs(num);i++) {
if (text.length == i)
break
text[i] = text[i].toUpperCase()
}
if (num < 0)
text = text.reverse().join('')
else
text = text.join('')
return text
}
}
lowerLetter = function(text, num) {
if (!text){
const errorMessage = new SyntaxError("No text was found!\n lowerLetter()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (!!num) {
if (typeof(num) != "number"){
const errorMessage = new SyntaxError("No number was found!\n lowerLetter()")
errorMessage.name = "OPlus Error"
throw errorMessage
}
}
if (num === 0)
return(text)
if (!num) {
return text.toLowerCase()
} else {
if (num < 0)
text = text.split('').reverse()
else
text = text.split('')
for (let i = 0;i < Math.abs(num);i++) {
if (text.length == i)
break
text[i] = text[i].toLowerCase()
}
if (num < 0)
text = text.reverse().join('')
else
text = text.join('')
return text
}
}
webListen = function(port) {
if (!port) {
}
app.listen(port);
}
webGet = function(param,file) {
if(!param) {
}
if (!file) {
}
app.get(`${param}`, (request, response) => {
return response.sendFile(`${file}`, { root: '.' });
});
}
webUse = function(varbose = "") {
if (typeof webUse.executed == 'undefined') {
webUse.executed = true;
app.use((req, res, next) => {
varbose(req, res)
next()
})
}
}
webPath = function() {
return this.path
}
locationByIp = function(ip) {
return(lookup(ip))
}
reverseWord = function(text) {
if(!text) {
}
if(typeof(text) != "string") {
}
text = text.split(' ').reverse().join(' ')
return text
}
reverseAll = function(text) {
if(!text) {
}
if(typeof(text) != "string") {
}
text = text.split('').reverse().join('')
return text
}
count = function(text, word) {
if(!text) {
const errorMessage = new SyntaxError("Not Text was found.\n count( )\n ^")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if (text.constructor.name == "Object") {
const errorMessage = new SyntaxError("Does not accept object type list\n count( )\n ^")
errorMessage.name = "OPlus Error"
throw errorMessage
}
if(text.constructor.name == "Array") {
text = text.join(" ")
}
if(!word) {
return text.length
} else {
text2 = text.replaceAll(word, "")
text2 = text.length - text2.length
return text2 / word.length
}
}
hashed = function(text, num = 0) {
if(!text) {
return (null)
}
if(num.constructor.name == "int") {
const errorMessage = new SyntaxError("Please write the length in integers")
throw errorMessage
}
return bcrypt.hashSync(text, num)
}
hashCompare = function(text, hash) {
if(!text) {
return (null)
}
if(!hash) {
return (null)
}
return bcrypt.compareSync(text, hash)
}
cookieCreate = function(name, value) {
app.use((req, res) => {
res.cookie(name, value);
});
}
cookieDelete = function(name) {
app.use((req, res) => {
res.clearCookie(name)
})
}
replaceTemplate = function(template, values) {
return Object.keys(values).reduce((acc, cur) => acc.replace(`$${cur}`, values[cur]), template)
}
fileExists = function(fileName) {
if (!fileName)
return null
return (fs.existsSync(fileName))
}
fileCopy = function(fileName, newFileName) {
if(!fileName)
return null
if(!newFileName)
return null
fs.copy(fileName, newFileName, err => {
if (err) return console.error(err)
})
}
fileCopyFolder = function(directory, newDirectory) {
if(!directory)
return null
if(!newDirectory)
return null
fs.copy(directory, newDirectory, err => {
if (err) return console.error(err)
console.send('Oplus - Copy System(folders) | Success! ')
})
}
fileRead = function(fileName){
try {
const data = fss.readFileSync(fileName, 'utf8');
return data;
} catch (err) {
console.error(err);
}
}
fileView = function(fileName){
if (!fileName)
return undefine
if (fileExists(!fileName))
return null
//let file = fileName.split(".")
var name = path.parse(fileName).name
var type = path.extname(fileName)
var text = fileRead(fileName)
var word = text.split(" ").length
var letter = text.replaceAll(" ", "").split("").length
return (JSON.stringify({
Name: name,
Type: type,
Words: word,
Letters: letter
}))
}
fileRename = function(fileName, newFileName){
if(!newFileName) return null
fs.stat(fileName, function(err, stat) {
if (err == null) {
fs.rename(fileName, newFileName)
} else if (err.code === 'ENOENT') {
return null
} else {
console.log('Oplus | Error: ', err.code);
}
});
}
fileEditType = function(fileName, newExt) {
fs.stat(fileName, function(err, stat) {
if (err == null) {
var pos = fileName.includes(".") ? fileName.lastIndexOf(".") : fileName.length
var fileRoot = fileName.substr(0, pos)
var output = `${fileRoot}.${newExt}`
return output
} else if (err.code === 'ENOENT') {
console.send(null)
} else {
console.log('Oplus | Error: ', err.code);
}
});
}
fileCreate = function(fileName){
const now = new Date();
fs.appendFile(fileName, "")
}
fileDelete = function(fileName){
fs.stat(fileName, function(err, stat) {
if (err == null) {
fs.unlink(fileName)
} else if (err.code === 'ENOENT') {
console.send(null)
} else {
console.log('Oplus | Error: ', err.code);
}
});
}
fileChangeAdd = function(fileName, text){
fs.stat(fileName, function(err, stat) {
if (err == null) {
fs.appendFile(fileName, "\n" + text, function (err) {
if (err) throw err;
});
} else if (err.code === 'ENOENT') {
console.send(null)
} else {
console.log('Oplus | Error: ', err.code);
}
});
}
fileClear = function(fileName, line){
if(!fileName) return null
fs.stat(fileName, function(err, stat) {
if (err == null) {
fs.truncate(fileName, 0, function(){console.send('Oplus | Cleared file ' + fileName + "!")})
} else if (err.code === 'ENOENT') {
console.send(null)
} else {
console.log('Oplus | Error: ', err.code);
}
});
}
countNumbers = function(text) {
if (!text)
return undefined
let regex = /(\d+)/g
let arr = text.match(regex)
return arr ? arr.length : 0
}
countCapitalLetters = function(text) {
if (!text)
return undefined
let regex = /[A-Z]/g;
let arr = text.match(regex);
return arr ? arr.length : 0;
}
countLetters = function(text) {
if (!text)
return undefined
let regex = /[A-Z]/g;
let arr = text.match(regex);
let v = arr ? arr.length : 0;
regex = /[a-z]/g;
arr = text.match(regex);
return (v + arr ? arr.length : 0);
}