Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function makeSite(websitename) --OPENNEXISGATES
- fs.delete("/startup")
- startup = fs.open("/startupserver", "w")
- startup.writeLine("websitename = \"" ..websitename.. "\"")
- servercode = [[
- autoUpdate = false
- function getPastebin(pCode, pLocation)
- local sCode = pCode
- local sFile = pLocation
- local sPath = pLocation
- -- GET the contents from pastebin
- local response = http.get(
- "http://pastebin.com/raw.php?i="..textutils.urlEncode( sCode )
- )
- if response then
- local sResponse = response.readAll()
- response.close()
- local file = fs.open( sPath, "w" )
- file.write( sResponse )
- file.close()
- else
- end
- end
- if not fs.exists("/.FirefoxData") then
- fs.makeDir("/.FirefoxData")
- end
- f = io.open("/.FirefoxData/fireServerPref", "w")
- f:write(websitename)
- f:close()
- if autoUpdate then
- print("Starting up...")
- getPastebin("wEmK4D4U", "/.FirefoxData/firefoxServerCompare")
- f = io.open("/.FirefoxData/firefoxServerCompare", "r")
- serverCompare = f:read("*a")
- f:close()
- f = io.open("/.FirefoxData/firefoxServerUpdater", "r")
- currentServerCompare = f:read("*a")
- f:close()
- if serverCompare ~= currentServerCompare then
- fs.delete("/.FirefoxData/firefoxServerUpdater")
- fs.move("/.FirefoxData/firefoxServerCompare", "/.FirefoxData/firefoxServerUpdater")
- shell.run("/.FirefoxData/firefoxServerUpdater")
- end
- end
- local system = fs.list("/" .. websitename)
- for i = 1, #system do
- if string.lower(system[i]) ~= system[i] then
- fs.move("/" .. websitename .. "/" .. system[i], "/.FirefoxData/tempWebsiteFile")
- fs.move("/.FirefoxData/tempWebsiteFile", "/" .. websitename .. "/" .. string.lower(system[i]))
- end
- end
- if not fs.exists("/" .. websitename .. "/home") then error("Server files missing!") end
- local enableSearching = true --Change to false if you don't want bots to search your site
- function record(text)
- print(text)
- end
- local x,y = term.getSize()
- local cPrint = function(text)
- local x2,y2 = term.getCursorPos()
- term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
- print(text)
- end
- rednet.open("top")
- rednet.open("left")
- rednet.open("right")
- rednet.open("back")
- rednet.open("front")
- rednet.open("bottom")
- term.clear()
- term.setCursorPos(1, 4)
- function host()
- while true do
- oldx, oldy = term.getCursorPos()
- term.setCursorPos(1,1)
- term.clearLine()
- write("Hosting " ..websitename.. "...")
- term.setCursorPos(1,2)
- term.clearLine()
- write("Press \"E\" to exit server hosting")
- term.setCursorPos(1,3)
- term.clearLine()
- write("Auto-updating is set to: " .. tostring(autoUpdate))
- term.setCursorPos(oldx, oldy)
- event, id, message = os.pullEvent()
- if event == "key" and id == 18 then
- sleep(0.3)
- term.clear()
- term.setCursorPos(1,1)
- break
- elseif event == "rednet_message" then
- if message == string.lower(websitename) or message == (string.lower(websitename) .. "/") then
- f = io.open("/" .. websitename .. "/" .. "home")
- fileContents = f:read("*a")
- f:close()
- print("A")
- for i = 1, 10 do
- print(fileContents)
- rednet.send(id, fileContents)
- end
- record(" [" ..os.time().."] [" ..id.. "] Requested /home")
- record(" [" ..os.time().."] [" ..id.. "] Request successful")
- elseif string.find(message, "/") then
- checkA = string.find(message, "/")
- if string.sub(message, 1, checkA - 1) == string.lower(websitename) then
- subDir = string.lower(string.sub(message, checkA + 1, -1))
- --local filecontents = ""
- local num = tonumber(subDir)
- if num then
- local loc = getLoc(num)
- if loc ~= nil then
- subDir = "idtemp"
- else
- subDir = "idtempfail"
- end
- else
- subDir = "home"
- end
- record(" [" ..os.time().."] [" ..id.. "] Requested /" .. subDir)
- if fs.exists("/" .. websitename .. "/" .. subDir) and not fs.isDir("/" .. websitename .. "/" .. subDir) then
- f = io.open("/" .. websitename .. "/" .. subDir)
- fileContents = f:read("*a")
- f:close()
- if subDir == "idtemp" then
- fileContents = string.gsub(fileContents,"%{ID%}",num)
- fileContents = string.gsub(fileContents,"%{LOCTYPE%}",loc.locType)
- fileContents = string.gsub(fileContents,"%{LOC%}",string.format("X: %d / Y: %d / Z: %d",loc.x,loc.y,loc.z))
- end
- print("A")
- for i = 1, 10 do
- print("P:"..fileContents)
- rednet.send(id, fileContents)
- end
- record(" [" ..os.time().."] [" ..id.. "] Request successful")
- else
- record(" [" ..os.time().."] [" ..id.. "] Request unsuccessful")
- end
- end
- elseif message == "rednet.api.ping.searchengine" and enableSearching == true then
- rednet.send(id, websitename)
- record(" [" ..os.time().."] [" ..id.. "] Searched by " .. id)
- end
- end
- end
- end
- parallel.waitForAny(host,detect)
- ]]
- startup.writeLine(servercode)
- startup.close()
- os.reboot()
- end
- f = io.open("/.FirefoxData/fireServerPref", "r")
- websitename = f:read("*l")
- f:close()
- makeSite(websitename)
Advertisement
Add Comment
Please, Sign In to add comment