Pinkishu

geoid-fireserver

Aug 9th, 2012
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.03 KB | None | 0 0
  1. function makeSite(websitename) --OPENNEXISGATES
  2.                     fs.delete("/startup")
  3.                     startup = fs.open("/startupserver", "w")
  4.                     startup.writeLine("websitename = \"" ..websitename.. "\"")
  5.                     servercode = [[
  6. autoUpdate = false
  7.  
  8.  
  9. function getPastebin(pCode, pLocation)
  10. local sCode = pCode
  11.     local sFile = pLocation
  12. local sPath = pLocation
  13.    
  14.     -- GET the contents from pastebin
  15.     local response = http.get(
  16.         "http://pastebin.com/raw.php?i="..textutils.urlEncode( sCode )
  17.         )
  18.        
  19.     if response then
  20.        
  21.         local sResponse = response.readAll()
  22.         response.close()
  23.        
  24.         local file = fs.open( sPath, "w" )
  25.         file.write( sResponse )
  26.         file.close()
  27.        
  28.     else
  29.     end
  30. end
  31.  
  32. if not fs.exists("/.FirefoxData") then
  33. fs.makeDir("/.FirefoxData")
  34. end
  35.  
  36. f = io.open("/.FirefoxData/fireServerPref", "w")
  37. f:write(websitename)
  38. f:close()
  39.  
  40.  
  41. if autoUpdate then
  42. print("Starting up...")
  43. getPastebin("wEmK4D4U", "/.FirefoxData/firefoxServerCompare")
  44. f = io.open("/.FirefoxData/firefoxServerCompare", "r")
  45. serverCompare = f:read("*a")
  46. f:close()
  47. f = io.open("/.FirefoxData/firefoxServerUpdater", "r")
  48. currentServerCompare = f:read("*a")
  49. f:close()
  50. if serverCompare ~= currentServerCompare then
  51. fs.delete("/.FirefoxData/firefoxServerUpdater")
  52. fs.move("/.FirefoxData/firefoxServerCompare", "/.FirefoxData/firefoxServerUpdater")
  53. shell.run("/.FirefoxData/firefoxServerUpdater")
  54. end
  55. end
  56.  
  57.     local system = fs.list("/" .. websitename)
  58.     for i = 1, #system do
  59.         if string.lower(system[i]) ~= system[i] then
  60.             fs.move("/" .. websitename .. "/" .. system[i], "/.FirefoxData/tempWebsiteFile")
  61. fs.move("/.FirefoxData/tempWebsiteFile", "/" .. websitename .. "/" .. string.lower(system[i]))
  62. end
  63. end
  64.  
  65. if not fs.exists("/" .. websitename .. "/home") then error("Server files missing!") end
  66.  
  67. local enableSearching = true --Change to false if you don't want bots to search your site
  68.  
  69. function record(text)
  70.     print(text)
  71. end
  72.        
  73. local x,y = term.getSize()
  74. local cPrint = function(text)
  75. local x2,y2 = term.getCursorPos()
  76. term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
  77. print(text)
  78. end
  79. rednet.open("top")
  80. rednet.open("left")
  81. rednet.open("right")
  82. rednet.open("back")
  83. rednet.open("front")
  84. rednet.open("bottom")
  85. term.clear()
  86. term.setCursorPos(1, 4)
  87. function host()
  88.     while true do
  89.         oldx, oldy = term.getCursorPos()
  90.         term.setCursorPos(1,1)
  91.         term.clearLine()
  92.         write("Hosting " ..websitename.. "...")
  93.         term.setCursorPos(1,2)
  94.         term.clearLine()
  95.         write("Press \"E\" to exit server hosting")
  96.         term.setCursorPos(1,3)
  97.         term.clearLine()
  98.         write("Auto-updating is set to: " .. tostring(autoUpdate))
  99.         term.setCursorPos(oldx, oldy)
  100.         event, id, message = os.pullEvent()
  101.         if event == "key" and id == 18 then
  102.             sleep(0.3)
  103.             term.clear()
  104.             term.setCursorPos(1,1)
  105.             break
  106.         elseif event == "rednet_message" then
  107.             if message == string.lower(websitename) or message == (string.lower(websitename) .. "/") then
  108.                 f = io.open("/" .. websitename .. "/" .. "home")
  109.                 fileContents = f:read("*a")
  110.                 f:close()
  111.                 print("A")
  112.                 for i = 1, 10 do
  113.                     print(fileContents)
  114.                     rednet.send(id, fileContents)
  115.                 end
  116.                 record("   [" ..os.time().."] [" ..id.. "] Requested /home")
  117.                 record("   [" ..os.time().."] [" ..id.. "] Request successful")
  118.             elseif string.find(message, "/") then
  119.                 checkA = string.find(message, "/")
  120.                 if string.sub(message, 1, checkA - 1) == string.lower(websitename) then
  121.                     subDir = string.lower(string.sub(message, checkA + 1, -1))
  122.                     --local filecontents = ""
  123.                     local num = tonumber(subDir)
  124.                     if num then
  125.                         local loc = getLoc(num)
  126.                            
  127.                         if loc ~= nil then
  128.                             subDir = "idtemp"
  129.                         else
  130.                             subDir = "idtempfail"
  131.                         end
  132.                     else
  133.                         subDir = "home"
  134.                     end
  135.                     record("   [" ..os.time().."] [" ..id.. "] Requested /" .. subDir)
  136.                     if fs.exists("/" .. websitename .. "/" .. subDir) and not fs.isDir("/" .. websitename .. "/" .. subDir) then
  137.                         f = io.open("/" .. websitename .. "/" .. subDir)
  138.                         fileContents = f:read("*a")
  139.                         f:close()
  140.                         if subDir == "idtemp" then
  141.                             fileContents = string.gsub(fileContents,"%{ID%}",num)
  142.                             fileContents = string.gsub(fileContents,"%{LOCTYPE%}",loc.locType)
  143.                             fileContents = string.gsub(fileContents,"%{LOC%}",string.format("X: %d / Y: %d / Z: %d",loc.x,loc.y,loc.z))
  144.                         end
  145.                         print("A")
  146.                         for i = 1, 10 do
  147.                             print("P:"..fileContents)
  148.                             rednet.send(id, fileContents)
  149.                         end
  150.                         record("   [" ..os.time().."] [" ..id.. "] Request successful")
  151.                     else
  152.                         record("   [" ..os.time().."] [" ..id.. "] Request unsuccessful")
  153.                     end
  154.                 end
  155.             elseif message == "rednet.api.ping.searchengine" and enableSearching == true then
  156.                     rednet.send(id, websitename)
  157.                     record("   [" ..os.time().."] [" ..id.. "] Searched by " .. id)
  158.             end
  159.         end
  160.     end
  161. end
  162. parallel.waitForAny(host,detect)
  163.                     ]]
  164.                    
  165.                     startup.writeLine(servercode)
  166.                     startup.close()
  167.                     os.reboot()
  168. end
  169.  
  170. f = io.open("/.FirefoxData/fireServerPref", "r")
  171. websitename = f:read("*l")
  172. f:close()
  173. makeSite(websitename)
Advertisement
Add Comment
Please, Sign In to add comment