Advertisement
Derek1017

Untitled

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