Advertisement
JPiolho

[Minecraft][CC] Upload File

Feb 29th, 2012
496
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.78 KB | None | 0 0
  1. -- Upload File
  2. -- Version 1.0
  3. -- By JPiolho
  4. -- Feel free to copy and edit as long you credit the original author
  5. -- More Info @ http://bit.ly/zoxn6V
  6.  
  7. local dataChunks = 4096 -- The amount of data each upload should have. If you put a big number then http api might not upload it
  8. local pauseAfter = 10 -- After these number of parts are uploaded and theres more, a message will show up asking the user to press any key to continue
  9.  
  10. local function url_encode(str)
  11.  if (str) then
  12.   str = string.gsub(str,"\t","")
  13.   str = string.gsub(str,"%%","%%25")
  14.   str = string.gsub(str,"%$","%%24")
  15.   str = string.gsub(str,"&","%%26")
  16.   str = string.gsub(str,"%+","%%2B")
  17.   str = string.gsub(str,",","%%2C")
  18.   str = string.gsub(str,"/","%%2F")
  19.   str = string.gsub(str,":","%%3A")
  20.   str = string.gsub(str,";","%%3B")
  21.   str = string.gsub(str,"=","%%3D")
  22.   str = string.gsub(str,"%?","%%3F")
  23.   str = string.gsub(str,"@","%%40")
  24.  
  25.   str = string.gsub(str,"% ","%%20")
  26.   str = string.gsub(str,"\"","%%22")
  27.   str = string.gsub(str,"<","%%3C")
  28.   str = string.gsub(str,">","%%3E")
  29.   str = string.gsub(str,"#","%%23")
  30.   str = string.gsub(str,"{","%%7B")
  31.   str = string.gsub(str,"}","%%7D")
  32.   str = string.gsub(str,"|","%%7C")
  33.   str = string.gsub(str,"\\","%%5C")
  34.   str = string.gsub(str,"~","%%7E")
  35.   str = string.gsub(str,"%]","%%5D")
  36.   str = string.gsub(str,"`","%%60")
  37.  
  38.   str = string.gsub(str,"%[","%%5B")
  39.   str = string.gsub(str,"%^","%%5E")
  40.  
  41.  end
  42.  return str
  43. end
  44.  
  45. local tArgs = {...}
  46. if #tArgs == 0 then
  47.  print("Usage: uploadfile <file>")
  48.  return
  49. end
  50.  
  51. local file = tArgs[1]
  52.  
  53. if fs.exists(file) == false then
  54.  print("Cannot find the file")
  55.  return
  56. end
  57.  
  58.  
  59. local data = ""
  60. local f = io.open(file,"r")
  61.  
  62. local n = 1
  63. while true do
  64.  data = ""
  65.  
  66.  if n > pauseAfter then
  67.   print("Too many parts. Press enter to continue...")
  68.   while true do
  69.    local e,v = os.pullEvent()
  70.  
  71.    if e == "key" and v == "28" then break end
  72.   end
  73.  end
  74.  
  75.  local finishedRead = false
  76.  while finishedRead == false do
  77.   local line = f:read()
  78.   if line ~= nil then
  79.    data = data .. url_encode(line) .. "%0A"
  80.  
  81.  
  82.    if string.len(data) > dataChunks then
  83.     finishedRead = true
  84.    end
  85.   else
  86.    finishedRead = true
  87.   end
  88.  end
  89.  
  90.  
  91.  if line == nil and string.len(data) == 0 then break end
  92.  
  93.  data = url_encode(data)
  94.  
  95.  
  96.  local url = "http://tinypaste.com/api/create.xml"
  97.  url = url .. "?paste=" .. data
  98.  
  99.  
  100.  local r = http.get(url)
  101.  local xml = r:readAll()
  102.  
  103.  if string.find(xml,"<error>") ~= nil then
  104.   local err = string.gmatch(xml,"<error>(.*)</error>")
  105.  
  106.   for i in err do
  107.    print("ERROR! " .. i)
  108.    return
  109.   end
  110.  end
  111.  
  112.  local id = string.gmatch(xml,"<response>(.*)</response>")
  113.  
  114.  for i in id do
  115.   print("Uploaded P" .. n .. " to: http://tinypaste.com/" .. i)
  116.  end
  117.  
  118.  n = n + 1
  119. end
  120.  
  121. f:close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement