Advertisement
Kevin999

s

Dec 2nd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1. local tArgs = {...}
  2. local window = 0
  3. local version = "0.5"
  4. running = true
  5. requests = {"yes","no","maybe","so","this is a test message","test"}
  6.  
  7. function clear()
  8. term.setBackgroundColor(colors.black)
  9. term.clear()
  10. term.setCursorPos(1,1)
  11. end
  12.  
  13. function title()
  14. term.setCursorPos(1,1)
  15. local x,y = term.getSize()
  16. print("File Cloud Server v"..version.." Total: "..addSpaces(#requests,4).." "..fs.getFreeSpace("fileServer").." Spots left")
  17. for derp = 1,x,1 do
  18. write("-")
  19. end
  20. end
  21.  
  22. function addSpaces(thing,number)
  23. temp = tostring(thing)
  24. for place=1,number-string.len(temp),1 do
  25. temp = temp.." "
  26. end
  27. return(temp)
  28. end
  29.  
  30. function openPort()
  31. for _ ,m in ipairs(rs.getSides()) do
  32. if peripheral.isPresent(m) and peripheral.getType(m)=="modem" then
  33. rednet.open(m)
  34. return true
  35. end
  36. end
  37. return false
  38. end
  39.  
  40. function showRequests()
  41. local x,y = term.getSize()
  42. if(#requests>y-2)then
  43. window = #requests-y+2
  44. else
  45. window = 0
  46. end
  47. for i=1,#requests,1 do
  48. term.setCursorPos(1,2-window+i)
  49. write(addSpaces(i,4).."|"..requests[i])
  50. end
  51. term.setCursorPos(15,1)
  52. title()
  53. end
  54.  
  55. function showPage()
  56. clear()
  57. title()
  58. if(#tArgs==0)then
  59. showRequests()
  60. elseif(tArgs[1]=="-g")then
  61. print("Server Running...")
  62. else
  63. clear()
  64. term.setTextColor(colors.red)
  65. print("Incorrect syntax fileserver <-g>")
  66. running = false
  67. os.startTimer(.1)
  68. end
  69. end
  70.  
  71. function parcemessage(message,id)
  72. count = 1
  73. local prams = {}
  74. for token in string.gmatch(message, "[^%s]+") do
  75. prams[count]=token
  76. count = count+1
  77. end
  78. if(#prams>2)then
  79. local temp = ""
  80. for i=4,#prams,1 do
  81. temp = temp+prams[i]
  82. end
  83. prams[4] = temp
  84. end
  85.  
  86. if(prams[1]=="addFile")then
  87. if(fs.exists(prams[3]==false))then
  88. local open=fs.open("fileServer/files/"..prams[3] , "w")
  89. open.writeLine(prams[2])
  90. open.close()
  91. open.writeLine(prams[4])
  92. rednet.send(id,true)
  93. requests[#requests+1] = prams[2].." add file "..prams[3]
  94. else
  95. rednet.send(id,false)
  96. end
  97. elseif(prams[1]=="retrieveFile")then
  98. --local open=fs.open("fileServer/files/"..prams[2] , "r")
  99. for line in io.lines("fileServer/files/"..prams[2]) do
  100. program = program+line
  101. end
  102. requests[#requests+1] = prams[2].." downloaded file "..prams[3]
  103. rednet.send(id,program)
  104. elseif(prams[1]=="getFiles")then
  105. local files = {}
  106. for _,file in ipairs( "fileServer/files" ) do
  107. local open=fs.open("fileServer/files/"..file , "r")
  108. author = open.readLine()
  109. open.close()
  110. files[#files+1] = author.."-"..file
  111. end
  112. requests[#requests+1] = prams[2].." requested files"
  113. rednet.send(id,textutils.serialize(files))
  114. end
  115. end
  116.  
  117. if(openPort()==false)then
  118. clear()
  119. term.setTextColor(colors.red)
  120. print("No modem found")
  121. running = false
  122. os.startTimer(.1)
  123. end
  124. if(fs.exists("fileServer")==false)then
  125. fs.makeDir("fileServer")
  126. local open = fs.open("fileServer/files" , "w")
  127. open.close()
  128. end
  129. while running do
  130. showPage()
  131. requests[#requests+1] = "test"
  132. os.startTimer(1)
  133. local Event,clientID,message,distance = os.pullEvent()
  134. if(Event=="rednet_message")then
  135. parcemessage(message,clientID)
  136. end
  137. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement