xXm0dzXx

Untitled

May 19th, 2012
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.91 KB | None | 0 0
  1. local x,y = term.getSize()
  2. rednet.open("top")
  3. local EditingValue = "";
  4.  
  5. function rednetV()
  6. return "2.3"
  7. end
  8.  
  9. title = "Rednet Explorer " ..rednetV() --Add title = "name" to change the webpage's title!
  10. local website = "home";
  11. if fs.exists(".cache") then fs.delete(".cache") end
  12. if fs.exists(".websiteedited") then fs.delete(".websiteedited") end
  13. fs.makeDir(".cache")
  14.  
  15. local cPrint = function(text)
  16. local x2,y2 = term.getCursorPos()
  17. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
  18.  
  19. print(text)
  20. end
  21.  
  22. function createSite(websitename) --OPENNEXISGATES
  23. fs.delete("startup")
  24. startup = fs.open("startup", "w")
  25. startup.writeLine("websitename = \"" ..websitename.. "\"")
  26. servercode = [[
  27.  
  28. local password = os.getComputerID() --Change if you want a custom password
  29.  
  30. function record(text)
  31. print(text)
  32. log = fs.open("rednet.log", "w")
  33. log.writeLine(text)
  34. log.close()
  35. end
  36.  
  37. local x,y = term.getSize()
  38. local cPrint = function(text)
  39. local x2,y2 = term.getCursorPos()
  40. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
  41.  
  42. print(text)
  43. end
  44.  
  45. rednet.open("top")
  46. term.clear()
  47. cPrint("Hosting " ..websitename.. "...\n")
  48. cPrint("Go to " ..websitename.. "/editor to edit it! (PASS: " ..os.getComputerID().. ")\n")
  49. test = fs.open(websitename, "r")
  50. fileContents = test:readAll()
  51. test.close()
  52. while true do
  53. sleep(0)
  54. id, message = rednet.receive()
  55. if message == websitename then
  56. record(" [" ..os.time().."] [" ..id.. "] Pinged Website.")
  57. rednet.send(id, fileContents)
  58. record(" [" ..os.time().."] [" ..id.. "] Received Data")
  59. elseif message == websitename.. "/editor" then
  60. rednet.send(id, "EditorMode")
  61. rednet.send(id, tostring(password))
  62. rednet.send(id, fileContents)
  63. elseif message == websitename.. "/editor EDITED COMPLED!" then
  64. id, message = rednet.receive(0.001)
  65. fs.delete(websitename)
  66. webpage = fs.open(websitename, "w")
  67. webpage.write(message)
  68. webpage.close()
  69.  
  70.  
  71. test = fs.open(websitename, "r")
  72. fileContents = test:readAll()
  73. test.close()
  74. record(" [" ..os.time().."] [" ..id.. "] Updated Website!")
  75. end
  76. end
  77. ]]
  78.  
  79. startup.writeLine(servercode)
  80. startup.close()
  81. os.reboot()
  82. end
  83.  
  84. local Address = function()
  85. text = "rdnt://"
  86. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), 2)
  87. term.clearLine()
  88.  
  89. write("rdnt://")
  90. website = read()
  91. loadWebpage()
  92. end
  93.  
  94. function done()
  95. term.setCursorPos(1, y)
  96. name = "F5 = Refresh"
  97. write("Press CTRL to travel the web! :D")
  98. term.setCursorPos(x - name:len(), y)
  99. write(name)
  100.  
  101. while true do
  102. sleep(0) -- stop crashing
  103. e, k = os.pullEvent("key")
  104. if k == 63 then
  105. loadWebpage()
  106. break
  107. elseif k == 29 then
  108. Address()
  109. break
  110. end
  111. end
  112. end
  113.  
  114.  
  115. loadWebpage = function()
  116. term.clear()
  117. term.setCursorPos(1,1)
  118. cPrint(title)
  119. cPrint("rdnt://" ..website.. "\n")
  120. if website == "home" then
  121. print("Welcome to RedNet explorer (2.0)! This requires you to have a wireless modem on your computer.")
  122. print("Host a website at: ")
  123. print("rdnt://newsite! ")
  124. print(" -ComputerCraftFan11 ")
  125. elseif website == "newsite" then
  126. print("Are you sure you would like to make this PC a server?")
  127. cPrint("Y = Yes N = No")
  128. while true do
  129. e, k = os.pullEvent("char")
  130. if k == "y" or k == "n" then
  131. break
  132. end
  133. end
  134.  
  135. if k == "y" then
  136. term.clear()
  137. term.setCursorPos(1,1)
  138. title = "Rednet Servers " ..rednetV()
  139. cPrint(title)
  140. print("Welcome to the Rednet Servers. Please enter the website name: ")
  141. websitename = read()
  142. rednet.broadcast(websitename)
  143. i, me = rednet.receive(0.001)
  144. if me == nil then
  145. print("Thank you! This website will be running off of the file:\n" ..websitename.. "\n")
  146. write("Are you sure? (Y = Continue, V = Edit)")
  147. input = read()
  148. if input == "Y" or input == "y" then
  149. if fs.exists(websitename) == false then
  150. print("Please create " ..websitename.. " first!")
  151. sleep(0.5)
  152. shell.run("edit", websitename)
  153. end
  154. term.clear()
  155. term.setCursorPos(1,1)
  156. createSite(websitename)
  157. elseif input == "V" or input == "v" then
  158. shell.run("edit", websitename)
  159. term.clear()
  160. term.setCursorPos(1,1)
  161. createSite(websitename)
  162. end
  163. else
  164. print("I'm sorry, this domain name is taken.")
  165. end
  166. end
  167. else
  168. title = "Rednet Explorer " ..rednetV()
  169. rednet.broadcast(website)
  170. print("Connecting...")
  171. id, message = rednet.receive(0.1)
  172. if message == nil then
  173. print("Unable to load webpage.")
  174. elseif message == "EditorMode" then
  175. id, password = rednet.receive(0.1)
  176. id, EditingValue = rednet.receive(0.1)
  177. write("Password: ")
  178. input = read("*")
  179. if tostring(password) == input then
  180. fs.delete(".cache/" ..website)
  181. editor = fs.open(".websiteedited", "w")
  182. if editor then
  183. editor.writeLine(EditingValue)
  184. end
  185. editor.close()
  186.  
  187. shell.run("edit", ".websiteedited")
  188.  
  189. edited = fs.open(".websiteedited", "r")
  190. editwebpage = edited.readAll()
  191. edited.close()
  192.  
  193. rednet.broadcast(website.. " EDITED COMPLED!")
  194. rednet.broadcast(editwebpage)
  195. website = "home"
  196. loadWebpage()
  197.  
  198. else
  199.  
  200. website = "home"
  201. loadWebpage()
  202.  
  203. end
  204. else
  205. if fs.exists(".cache/" ..website) then fs.delete(".cache/" ..website) end
  206. webpage = fs.open(".cache/" ..website, "w")
  207. webpage.write(message)
  208. webpage.close()
  209. term.clear()
  210. term.setCursorPos(1,1)
  211. cPrint(title)
  212. cPrint("rdnt://" ..website.. "\n")
  213. shell.run(".cache/" ..website)
  214. end
  215. end
  216.  
  217. done()
  218. end
  219.  
  220. loadWebpage()
Advertisement
Add Comment
Please, Sign In to add comment