Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function makeSite(websitename) --OPENNEXISGATES
- fs.delete("/startup")
- startup = fs.open("/startup", "w")
- startup.writeLine("websitename = \"" ..websitename.. "\"")
- servercode = [[
- local autoUpdate = true
- if fs.exists("/serverstartup") then
- shell.run("/serverstartup")
- end
- local function getPastebin(pCode, pLocation)
- local sCode = pCode
- local sFile = pLocation
- local sPath = pLocation
- -- GET the contents from pastebin
- local response = http.get(
- "http://dl.dropbox.com/u/97263369/"..sCode
- )
- if response then
- local sResponse = response.readAll()
- response.close()
- local file = fs.open( sPath, "w" )
- file.write( sResponse )
- file.close()
- else
- end
- end
- local function getPastebin2(pCode, pLocation)
- local sCode = pCode
- local sFile = pLocation
- local sPath = pLocation
- -- GET the contents from pastebin
- local response = http.get(
- "http://dl-web.dropbox.com/get/"..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...")
- getPastebin2("server.txt?w=a5a569d5", "/.FirefoxData/firefoxServerCompare")
- f = io.open("/.FirefoxData/firefoxServerCompare", "r")
- local serverCompare = f:read("*a")
- f:close()
- f = io.open("/.FirefoxData/firefoxServerUpdater", "r")
- local 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
- local oldx = nil
- local oldy = nil
- local id = nil
- local event = nil
- local message = nil
- local checkA = nil
- local subDir = nil
- rednet.open("top")
- rednet.open("left")
- rednet.open("right")
- rednet.open("back")
- rednet.open("front")
- rednet.open("bottom")
- term.clear()
- term.setCursorPos(1, 4)
- 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()
- for i = 1, 10 do
- 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))
- 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()
- for i = 1, 10 do
- 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)
- elseif string.sub(message, 1, 6) == "upload" then
- uploadresponse = nil
- uploadargs = {}
- for match in string.gmatch(message, "[^.]+") do
- table.insert(uploadargs, match)
- end
- path = uploadargs[2]
- if fs.exists("/server/"..path) then
- shell.run("/server/"..path, unpack(uploadargs, 3))
- end
- if uploadresponse then
- rednet.send(id, uploadresponse)
- end
- end
- end
- end
- ]]
- 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
Advertisement