Advertisement
largeNumberGoeshere

pb file geter (2)

May 18th, 2021 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.13 KB | None | 0 0
  1. ---- file download manager for use with pastebin
  2.  
  3.  
  4. function fileMgr()
  5.         local pbget = "pastebin get "
  6.         local rootFolder = "./pb"
  7.  
  8.         function forceType(val,typeOf)
  9.             if type(val) == typeOf then
  10.                 return
  11.             else
  12.                 local val = tostring(val)
  13.                 local typeOf = tostring(typeOf)
  14.                 error(val.." ".."not of type "..typeOf)
  15.             end
  16.         end
  17.  
  18.         function forceLengths(tables)
  19.             local lastLength = false
  20.             for i,v in pairs(tables) do
  21.                 local newLeng = table.getn(tables[i])  
  22.                 if lastLength == false then
  23.                     -- variable not set yet
  24.                     local lastLength = newLeng
  25.                 else
  26.                     -- variable has been set before
  27.                     if lastLength ~= newLeng then
  28.                         error("tables must be of same size ")
  29.                     end
  30.                 end
  31.             end
  32.         end
  33.  
  34.         local pasteIDs              = {}
  35.         local pasteNames            = {}
  36.         local pasteNewFolders = {}
  37.  
  38.         function prepareFolder(newFolder)
  39.             fs.makeDir(rootFolder..newFolder)
  40.         end
  41.  
  42.         function newPasteForDir(name,newFolder,pasteID)
  43.             forceType(name,         "string")
  44.             forceType(pasteID,  "string")
  45.             forceType(newFolder,"string")
  46.            
  47.             prepareFolder(newFolder)
  48.            
  49.             table.insert(pasteIDs,pasteID)
  50.             table.insert(pasteNames,name)
  51.             table.insert(pasteNewFolders,newFolder)
  52.         end
  53.  
  54.         function getPastesForDir()
  55.             forceLengths({pasteIDs,pasteNames,pasteNewFolders})
  56.             for i,v in pairs(pasteNames) do
  57.                 local name = "/"..pasteNames[i]
  58.                 local targetFolder = rootFolder..pasteNewFolders[i]
  59.                 local pasteID = pasteIDs[i].." "
  60.                 local cmd = "pastebin ".."get "..pasteID..targetFolder..name
  61.                 shell.run(cmd)
  62.             end
  63.         end
  64.  
  65.         function confirmReplace()
  66.             print("this will overwrite existing files. Continue? (Y)")
  67.             local r = read()
  68.             if r ~= "Y" then
  69.                 error("\n User declined")
  70.             else
  71.                 fs.delete(rootFolder)
  72.             end
  73.         end
  74.  
  75.         function finishUp()
  76.             shell.setDir(rootFolder)
  77.         end
  78.  
  79.         return confirmReplace,newPasteForDir,finishUp,getPastesForDir
  80. end
  81. local confirmReplace,newPasteForDir,finishUp,getPastesForDir = fileMgr()
  82.  
  83.  
  84. confirmReplace()
  85.  
  86.  
  87. newPasteForDir("umnt-test.lua","/aaa/","8jgEcxkr")
  88. newPasteForDir("inmntnt.lua","/bbb/v/","Qx0t14Jr")
  89.  
  90.  
  91. getPastesForDir()
  92. finishUp()
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement