Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local gsub = gsub or string.gsub
- local Encoder = {}
- local DEFAULT_ENCODER = '$'
- local coders = {
- ['<'] = '{',
- ['>'] = '{',
- }
- function Encoder.Encode(str, encoded, encoder)
- encoder = ((encoder and coders[encoder]) or encoder) or DEFAULT_ENCODER
- if encoded == encoder then return str end
- local escaped_encoded = gsub(encoded, "[%(%)%.%%%+%-%*%?%[%]%^%$]", "%%%0")
- local escaped_encoder = gsub(encoder, "[%(%)%.%%%+%-%*%?%[%]%^%$]", "%%%0")
- return (gsub((gsub(str, '([<>])'..escaped_encoder, '%1>'..encoder)), escaped_encoded, '<'..encoder))
- end
- function Encoder.Decode(str, encoded, encoder)
- encoder = ((encoder and coders[encoder]) or encoder) or DEFAULT_ENCODER
- if encoded == encoder then return str end
- local escaped_encoder = gsub(encoder, "[%(%)%.%%%+%-%*%?%[%]%^%$]", "%%%0")
- return (gsub((gsub(str, '<'..escaped_encoder, encoded)), '>'..escaped_encoder, encoder))
- end
- return Encoder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement