Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 1.1.4
- version = "1.1.4"
- dir = "shared"
- if peripheral.getType("back") ~= "modem" then
- term.setTextColour(colours.red)
- print("A mondem or wireless modem on the back side is required by this program.")
- os.sleep(3)
- os.reboot()
- end
- local modem = peripheral.wrap("back")
- chanel = os.getComputerID()+1
- modem.open(chanel)
- trans = "version "..version
- modem.transmit(1, chanel, trans)
- if not fs.exists("/CB/NasLogin") then
- print(" ")
- term.setTextColour(colours.white)
- print("You need to create a profile or login")
- write("Login : ")
- term.setTextColour(colours.yellow)
- login = read()
- if login == nil then
- term.setTextColour(colours.red)
- print("you need to type something")
- os.sleep(2)
- error()
- end
- trans = "account "..login
- modem.transmit(1, chanel, trans)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- term.setTextColour(colours.white)
- if message == "already exists" then
- write("enter your password : ")
- term.setTextColour(colours.yellow)
- pass = read("*")
- if pass == nil then
- term.setTextColour(colours.red)
- print("you need to type something")
- os.sleep(2)
- error()
- end
- trans = "login "..login.." "..pass
- modem.transmit(1, chanel, trans)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- if message == "logged" then
- naccount = fs.open("/CB/NasLogin", "w")
- naccount.writeLine(login)
- naccount.close()
- term.setTextColour(colours.green)
- print(message)
- else
- term.setTextColour(colours.red)
- print("wrong password")
- os.sleep(2)
- error()
- end
- else
- term.setTextColour(colours.white)
- write("choose your password : ")
- term.setTextColour(colours.yellow)
- pass = read("*")
- if pass == nil then
- term.setTextColour(colours.red)
- print("you need to type something")
- os.sleep(2)
- error()
- end
- term.setTextColour(colours.white)
- write("confirm your password : ")
- term.setTextColour(colours.yellow)
- cpass = read("*")
- if pass == cpass then
- trans = "mkaccount "..login.." "..pass
- modem.transmit(1, chanel, trans)
- naccount = fs.open("/CB/NasLogin", "w")
- naccount.writeLine(login)
- naccount.close()
- term.setTextColour(colours.green)
- print("created")
- else
- term.setTextColour(colours.red)
- print("passwords are not corresponding")
- os.sleep(2)
- error()
- end
- end
- else
- naccount = fs.open("/CB/NasLogin", "r")
- login = naccount.readLine()
- naccount.close()
- write("enter your password : ")
- term.setTextColour(colours.yellow)
- pass = read("*")
- if pass == nil then
- term.setTextColour(colours.red)
- print("you need to type something")
- os.sleep(2)
- error()
- end
- trans = "login "..login.." "..pass
- modem.transmit(1, chanel, trans)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- if message == "logged" then
- term.setTextColour(colours.green)
- print(message)
- else
- term.setTextColour(colours.red)
- print("wrong password")
- os.sleep(2)
- error()
- end
- end
- while true do
- local Send = {}
- local Files = {}
- local modem = peripheral.wrap("back")
- chanel = os.getComputerID()+1
- modem.open(chanel)
- term.clear()
- term.setCursorPos(1,1)
- term.setTextColour(colours.blue)
- print("NAS_Client V. "..version)
- print("")
- term.setTextColour(colours.brown)
- write("DIR : /"..dir.." : ")
- modem.transmit(1, chanel, "lfiles "..dir)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- if message == "lfile error : directory not exists." then
- term.setTextColour(colours.red)
- print(message)
- os.sleep(2.5)
- else
- for i in string.gmatch(message, "%S+") do
- table.insert(Files, i)
- end
- for i=1,(#Files-1) do
- term.setTextColour(colours.green)
- write(Files[i])
- term.setTextColour(colours.white)
- write(", ")
- end
- term.setTextColour(colours.green)
- print(Files[#Files])
- end
- print(" ")
- term.setTextColour(colours.yellow)
- write("@NAS>")
- input = read()
- if input == "exit" then
- return false
- end
- for i in string.gmatch(input, "%S+") do
- table.insert(Send, i)
- end
- if Send[1] == "delete" then
- if Send[2] == nil then
- term.setTextColour(colours.red)
- print("Missing one or more arguments")
- os.sleep(2.5)
- else
- input = input.." "..dir
- modem.transmit(1, chanel, input)
- end
- end
- if Send[1] == "sfile" then
- -- sytax : sfile [file] [name on server]
- if Send[2] == nil or Send [3] == nil then
- term.setTextColour(colours.red)
- print("Missing one or more arguments")
- os.sleep(2.5)
- else
- if not fs.exists(Send[2]) then
- term.setTextColour(colours.red)
- print("File not found")
- os.sleep(2.5)
- else
- pfile = fs.open(Send[2], "r")
- sendfile = pfile.readAll()
- pfile.close()
- input = input.." "..dir
- modem.transmit(1, chanel, input)
- os.sleep(0.5)
- modem.transmit(1, chanel, sendfile)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- print(message)
- os.sleep(0.5)
- end
- end
- end
- if Send[1] == "rfile" then
- -- sytax : rfile [file on server] [name on computer]
- if Send[2] == nil or Send [3] == nil then
- term.setTextColour(colours.red)
- print("Missing one or more arguments")
- os.sleep(3)
- else
- if fs.exists(Send[3]) then
- term.setTextColour(colours.red)
- print("File already exists")
- os.sleep(3)
- else
- input = input.." "..dir
- modem.transmit(1, chanel, input)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- if message == "failed : file not exists on server" then
- term.setTextColour(colours.red)
- print(message)
- os.sleep(2.5)
- else
- vfile = fs.open(Send[3], "w")
- vfile.write(message)
- vfile.close()
- end
- end
- end
- end
- if Send[1] == "run" or Send[1] == "read" then
- if Send[2] == nil then
- term.setTextColour(colours.red)
- print("Missing one or more arguments")
- os.sleep(3)
- else
- if Send[3] ~= nil then
- term.setTextColour(colours.red)
- print("too much arguments")
- os.sleep(3)
- else
- run = "rfile "..Send[2].." p "..dir
- modem.transmit(1, chanel, run)
- local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
- if message == "failed : file not exists on server" then
- term.setTextColour(colours.red)
- print(message)
- os.sleep(2.5)
- else
- vfile = fs.open("/CB/%TEMP%", "w")
- vfile.write(message)
- vfile.close()
- if Send[1] == "run" then
- shell.run("clear")
- shell.run("/CB/%TEMP%")
- read()
- else
- shell.run("/CB/Prog/ROEdit /CB/%TEMP%")
- end
- shell.run("delete /CB/%TEMP%")
- end
- end
- end
- end
- if Send[1] == "logout" then
- fs.delete("/CB/NasLogin")
- error()
- end
- if Send[1] == "cd" then
- if Send[2] == "shared" then
- dir = Send[2]
- else
- if Send[2] == "@p" then
- dir = login
- end
- end
- end
- if Send[1] == "help" then
- term.setTextColour(colours.green)
- write("help ")
- term.setTextColour(colours.white)
- print(" : shows this panel")
- term.setTextColour(colours.green)
- write("exit ")
- term.setTextColour(colours.white)
- print(" : get out of here")
- term.setTextColour(colours.green)
- write("logout")
- term.setTextColour(colours.white)
- print(" : self explanatory")
- term.setTextColour(colours.green)
- write("sfile ")
- term.setTextColour(colours.white)
- print(" : send a file to the server")
- term.setTextColour(colours.green)
- write("rfile ")
- term.setTextColour(colours.white)
- print(" : get a file from the server")
- term.setTextColour(colours.green)
- write("delete")
- term.setTextColour(colours.white)
- print(" : delete a file on the server")
- term.setTextColour(colours.green)
- write("run ")
- term.setTextColour(colours.white)
- print(" : run a file from the server on the client")
- term.setTextColour(colours.green)
- write("read ")
- term.setTextColour(colours.white)
- print(" : read a file from the server")
- print(" ")
- term.setTextColour(colours.white)
- write("Example : ")
- term.setTextColour(colours.green)
- write("rfile ")
- term.setTextColour(colours.red)
- print("test test/download")
- print("")
- term.setTextColour(colours.white)
- print("This will take the file 'test' from the server")
- print("And copy it to a file named 'download' in the")
- write("folder 'test' on the client")
- os.sleep(0.5)
- os.pullEvent( "key" )
- end
- end
Add Comment
Please, Sign In to add comment