so I have my minify function, but when I try to minify the same thing but one is from an http request from pastebin, it outputs differently
local function minify(msg)
local scr = {
msg
}
local result = ""
local result = ""
function getLines(src)
local result = {}
local start = 1
for i = 1,#src do
if string.sub(src, i, i) == "\n" then
table.insert(result, #result + 1, src:sub(start, i - 1))
start = i + 1
end
end
table.insert(result, #result + 1, src:sub(start, #src))
return result
end
for i,v in pairs(getLines(unpack(scr))) do
local s,e = string.find(v, "%-%-")
if string.find(v, "%-%-") then
result = result..v:sub(1, s - 1)
else
result = result..v.." "
end
result=result.."\n"
end
result = {result}
local new = string.gsub(unpack(result)," +"," ")
new = string.gsub(new,"(\r?\n)%s*\r?\n","%1")
new = string.gsub(new," \n","; ")
new = string.gsub(new,"\t","")
new = string.gsub(new,"do;","do")
new = string.gsub(new,"do ;","do")
new = string.gsub(new,"then;","then")
new = string.gsub(new,"then ;","then")
new = string.gsub(new,"else;","else")
new = string.gsub(new,"else ;","else")
new = string.gsub(new,"repeat;","repeat")
new = string.gsub(new,"repeat ;","repeat")
new = string.gsub(new,";;",";")
new = string.gsub(new,",,",",")
new = string.gsub(new,"};","}")
new = string.gsub(new,"{;","{")
new = string.gsub(new,"%);","%)")
new = string.gsub(new,"%(;","%(")
new = string.gsub(new," ;","")
new = string.gsub(new,"%);",")")
if new:sub(1,1) == ";" then
new = new:gsub("; ","",1)
end
return new:sub(1,new:len() - 1)
end
lets say the code I want to minify is this
for i = 1,50 do
print(i)
end
when I minify the actual message from discord, it outputs for i = 1,50 do print(i) end; but, If that code was in a pastebin, it outputs
for i = 1,50 do
; print(i)
; end;
here is the way I formatted it
if content:lower():sub(1,8) == prefix.."minify " then
if content:lower():find("https://pastebin.com") then
coroutine.wrap(function()
local link = content:sub(9)
if link:find("raw") then message:reply("remove the raw from the script") return end
link = link:gsub("https://pastebin.com","https://pastebin.com/raw")
local result, body = http.request("GET", link)
message:reply(minify(body)) -- returns that weird version of the code
print(body) -- prints the same exact code
local channel = message.channel
channel:send{
file = {'script.txt',minify(body)}
}
end)()
else
local text = minify(content:sub(16,content:len() - 3))
local digits = "```lua\n"..text.."\n```"
local t = "!minify "
if t..digits ~= content then
message:reply(digits) -- works
else
message:reply("this can not be minified")
end
end
end
