68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
|
|
/**@typedef {{type:String,data:[{key:String,value:String}],status:Boolean}} hiddenData */
|
|
|
|
/**
|
|
*
|
|
* @param {String} messageContent
|
|
* @returns {hiddenData}
|
|
*/
|
|
|
|
exports.readHiddenData = (messageContent) => {
|
|
//ticketdata//type:123|userid:456)
|
|
if (!messageContent.includes("[ ](OTDATA|")) return {type:"",data:[],status:false}
|
|
const rawhidden = messageContent.split("[ ](OTDATA|")[1]
|
|
const rawhidden2 = rawhidden.split("//")
|
|
|
|
const datatype = rawhidden2[0]
|
|
var rawhiddendata = rawhidden2[1]
|
|
var rawhiddendataArray = rawhiddendata.split("")
|
|
rawhiddendataArray.pop()
|
|
|
|
rawhiddendata = rawhiddendataArray.join("")
|
|
|
|
const splittedData = rawhiddendata.split("|")
|
|
|
|
const resultData = []
|
|
splittedData.forEach((data) => {
|
|
// type:123
|
|
const dataresult = data.split(":")
|
|
|
|
resultData.push({key:dataresult[0],value:dataresult[1]})
|
|
})
|
|
|
|
return {type:datatype,data:resultData,status:true}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {String} type
|
|
* @param {[{key:String,value:String}]} data
|
|
* @returns {String}
|
|
*/
|
|
exports.writeHiddenData = (type,data) => {
|
|
const dataValues = []
|
|
data.forEach((d) => {
|
|
dataValues.push(d.key+":"+d.value)
|
|
})
|
|
|
|
const datastring = dataValues.join("|")
|
|
|
|
const result = "[ ](OTDATA|"+type+"//"+datastring+")"
|
|
|
|
return result
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {String} description
|
|
* @returns {{description:String,hiddenData:hiddenData}}
|
|
*/
|
|
exports.removeHiddenData = (description) => {
|
|
if (!description.includes("[ ](OTDATA|")) return {description:description,hiddenData:[]}
|
|
|
|
const hiddenData = this.readHiddenData(description)
|
|
const splitted = description.split("[ ](OTDATA")
|
|
const original = splitted[0]
|
|
|
|
return {description:original,hiddenData:hiddenData}
|
|
} |