xXm0dzXx

Untitled

May 12th, 2012
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. local x,y = term.getSize()
  2. rednet.open("top")
  3.  
  4. title = "Rednet Explorer 2.0" --Add title = "name" to change the webpage's title!
  5. local website = "home";
  6. if fs.exists(".cache") then fs.delete(".cache") end
  7. fs.makeDir(".cache")
  8.  
  9. local cPrint = function(text)
  10. local x2,y2 = term.getCursorPos()
  11. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
  12.  
  13. print(text)
  14. end
  15.  
  16. search = function(message)
  17. while true do
  18. sleep(0)
  19. rednet.broadcast(message) --Search for that message
  20. end
  21. end
  22.  
  23. function createSite(websitename)
  24. fs.delete("startup")
  25. startup = fs.open("startup", "w")
  26. startup.writeLine("websitename = " ..websitename)
  27. servercode = [[
  28. rednet.open("top")
  29. cPrint("Hosting " ..websitename.. "...\n")
  30. test = fs.open(websitename, "r")
  31. fileContents = test:readAll()
  32. test.close()
  33. while true do
  34. sleep(0)
  35. id, message = rednet.receive()
  36. if message == websitename then
  37. print(" [" ..os.time().."] [" ..id.. "] Pinged Website.")
  38. rednet.send(id, fileContents)
  39. print(" [" ..os.time().."] [" ..id.. "] Received Data")
  40. end
  41. end
  42. ]]
  43.  
  44. startup.writeLine(servercode)
  45. startup.close()
  46. os.reboot()
  47. end
  48.  
  49. local Address = function()
  50. text = "rdnt://"
  51. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), 2)
  52. term.clearLine()
  53.  
  54. write("rdnt://")
  55. website = read()
  56. loadWebpage()
  57. end
  58.  
  59. function done()
  60. term.setCursorPos(1, y)
  61. name = "F5 = Refresh"
  62. write("Press CTRL to travel the web! :D")
  63. term.setCursorPos(x - name:len(), y)
  64. write(name)
  65.  
  66. while true do
  67. sleep(0) -- stop crashing
  68. e, k = os.pullEvent("key")
  69. if k == 63 then
  70. loadWebpage()
  71. break
  72. else
  73. Address()
  74. break
  75. end
  76. end
  77. end
  78.  
  79.  
  80. loadWebpage = function()
  81. term.clear()
  82. term.setCursorPos(1,1)
  83. cPrint(title)
  84. cPrint("rdnt://" ..website.. "\n")
  85. if website == "home" then
  86. print("Welcome to RedNet explorer (2.0)! This requires you to have a wireless modem on your computer.")
  87. print("Host a website at: ")
  88. print("rdnt://newsite! ")
  89. print(" -ComputerCraftFan11 ")
  90. elseif website == "newsite" then
  91. title = "Rednet Servers (2.0)"
  92. print("Are you sure you would like to make this PC a server?")
  93. cPrint("Y = Yes N = No")
  94. while true do
  95. e, k = os.pullEvent("char")
  96. if k == "y" or k == "n" then
  97. break
  98. end
  99. end
  100.  
  101. if k == "y" then
  102. term.clear()
  103. term.setCursorPos(1,1)
  104. print("Welcome to the Rednet Servers. Please enter the website name: ")
  105. websitename = read()
  106. rednet.broadcast(websitename)
  107. i, me = rednet.receive(0.001)
  108. if me == nil then
  109. print("Thank you! This website will be running off of the file:\n" ..websitename.. "\n")
  110. write("Are you sure? (Y = Continue, V = Edit)")
  111. input = read()
  112. if input == "Y" or input == "y" then
  113. if fs.exists(websitename) == false then
  114. print("Please create " ..websitename.. " first!")
  115. sleep(0.5)
  116. shell.run("edit", websitename)
  117. end
  118. term.clear()
  119. term.setCursorPos(1,1)
  120. createSite(websitename)
  121. elseif input == "V" or input == "v" then
  122. shell.run("edit", websitename)
  123. term.clear()
  124. term.setCursorPos(1,1)
  125. createSite(websitename)
  126. end
  127. else
  128. print("I'm sorry, this domain name is taken.")
  129. end
  130. end
  131. else
  132. title = "Rednet Explorer 2.0"
  133. rednet.broadcast(website)
  134. print("Connecting...")
  135. id, message = rednet.receive(0.1)
  136. if message == nil then
  137. print("Unable to load webpage.")
  138. search("Loading " ..website.. " failed.")
  139. else
  140. if fs.exists(".cache/" ..website) then fs.delete(".cache/" ..website) end
  141. webpage = fs.open(".cache/" ..website, "w")
  142. webpage.write(message)
  143. webpage.close()
  144. term.clear()
  145. term.setCursorPos(1,1)
  146. cPrint("Rednet Explorer 2.0")
  147. cPrint("rdnt://" ..website.. "\n")
  148. shell.run(".cache/" ..website)
  149. end
  150. end
  151.  
  152. done()
  153. end
  154.  
  155. loadWebpage()
Advertisement
Add Comment
Please, Sign In to add comment