//import_code("/root/Bytes")
apt=include_lib("/lib/aptclient.so")
ver="1.1.1"
GB=1000000000
logo="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
logo=logo+" ______ __ __ _____ ____ \n"
logo=logo+" / ____/ / / ____ __ __ ____/ / / ___/ ____ _ / __/ ___ \n"
logo=logo+" / / / / / __ \ / / / / / __ / \__ \ / __ `/ / /_ / _ \\n"
logo=logo+"/ /___ / / / /_/ // /_/ / / /_/ / ___/ / / /_/ / / __/ / __/\n"
logo=logo+"\____/ /_/ \____/ \__,_/ \__,_/ /____/ \__,_/ /_/ \___/ \n"
logo=logo+"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
logo=logo+"v. "+ver+"\n"
logo=logo+"Your one-stop file storage shop!"
print(logo)
//if apt then
// sources=get_shell.host_computer.File("/etc/apt/sources.txt")
// if sources and sources.has_permission("r") then
// inSource=false
// sources=sources.get_content.split("\n")
// for source in sources
// source=source.split(":")
// if source[0] == " ""93.43.53.184""" then inSource=true
// end for
// if not inSource then
// apt.add_repo("93.43.53.184",1542)
// apt.update
// end if
// out=apt.check_upgrade(program_path)
// if out then
// print("Update found!")
// apt.install("CloudSafe",parent_path(program_path))
// get_shell.launch(program_path)
// exit
// end if
// end if
//end if
print("Establishing connection to server. . .")
server=get_shell.connect_service
if typeof(server) != "shell" then exit("Could not connect.")
if server.host_computer.File("/server/.CloudSafe/maintenance.cfg").get_content != "false" then exit(server.host_computer.File("/server/.CloudSafe/maintenance.cfg").get_content)
print("Connected!")
encrypt=function(password)
o=[]
for ch in password
k=ch.code*10
a=k*4
s=a+100*10
t=s+1000*10*2000+10000000000
o.push("ДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийл©"+"ДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийл©"+bitwise("^",t,7777)+"ДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийл©"+"ДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийл©")
end for
return o.join("ДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийлДЖЁЙЛбд¶жёийл©")
end function
login=function(fuser,fpass)
output={}
output.bool=1
output.stderr="Could not verify your identity. (Incorrect username or password.)"
output.stdout=0
userAcc=server.host_computer.File("/server/.CloudSafe/users/"+fuser+"/passwd.enc")
if not userAcc then
output.bool=0
return(output)
end if
userData=userAcc.get_content
if encrypt(fpass) == userData then
output.stdout=fuser+":"+fpass
return output
else
output.bool=0
return(output)
end if
end function
register=function()
output={}
output.bool=1
output.stdout=0
output.stderr=0
illegalChars=[":",",",".","/","\","[","{","(","]","}",")","-","_","="," ","|","<",">","~","`","*","&","^","%","$","#","@","!"]
user=user_input("[username]~$")
for ilchar in illegalChars
for chr in user
if chr==ilchar then exit("Illegal characters used in username!")
end for
end for
if server.host_computer.File("/server/.CloudSafe/users/"+user) then
output.bool=0
output.stderr="User exists!"
return output
end if
RPass=user_input("[password]~$")
CPass=user_input("[confirm]~$")
if CPass != RPass then
output.bool=0
output.stderr="Passwords do not match!"
return output
end if
print("Creating an account (10 BTC)")
opt=user_input("Continue? [Y/N]~$").lower
if opt != "y" then
output.bool=0
output.stderr="Purchase declined"
return output
end if
coins="10"
transf=BTC.transfer(owner,coins,0,0)
if transf.bool then
print(transf.stdout)
else
output.bool=0
output.stderr="Purchase failure"
return output
end if
print("[%]Creating account: "+user)
server.host_computer.create_folder("/server/.CloudSafe/users",user)
server.host_computer.create_folder("/server/.CloudSafe/users/"+user,"files")
path="/server/.CloudSafe/users/"+user
server.host_computer.touch(path,"passwd.enc")
server.host_computer.touch(path,"storage")
server.host_computer.File(path).chmod("o-wrx",1)
server.host_computer.File(path).chmod("u-wrx",1)
server.host_computer.File(path).chmod("g-wrx",1)
server.host_computer.File(path+"/passwd.enc").set_content(encrypt(CPass))
server.host_computer.File(path+"/storage").set_content(GB)
output.stdout=user+":"+CPass
return output
end function
opt=null
while opt != "register" or opt != "login"
print("[Login]
[Register]")
opt=user_input("~$").lower
if opt == "login" then
user=user_input("[username]~$")
pass=user_input("[password]~$",true)
output=login(user,pass)
if output.bool then
print("Successful login!")
creds=output.stdout.split(":")
break
end if
print(output.stderr)
continue
end if
if opt == "register" then
output=register()
if output.bool then
print("[+]User created!")
creds=output.stdout.split(":")
break
end if
print(output.stderr)
continue
end if
end while
ufiles=server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/files")
help=function()
print("[Files]
[Upload]
[Download]
[Remove]
[Account]
[Help]
[Exit]")
end function
help()
while true
term=user_input("~$").lower
if term == "help" then help()
if term == "exit" then exit("Exiting!")
if term == "files" then
files=ufiles.get_files
output="Name / Size\n"
for file in files
name=file.name
size=file.size
output=output+name+" / "+size+"\n"
end for
print(format_columns(output))
continue
end if
if term == "upload" then
maxspace=server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content.to_int
space=0
for file in ufiles.get_files
space=space+file.size.to_int
end for
path=user_input("[FULL File path]~$")
if not get_shell.host_computer.File(path) then
print("File does not exist")
continue
end if
if not get_shell.host_computer.File(path).has_permission("r") then
print("No permissions to file")
continue
end if
if get_shell.host_computer.File(path).is_folder then
print("Cannot upload a folder!")
continue
end if
if server.host_computer.File(ufiles.path+"/"+path.split("/")[-1]) then
print("File already exists")
continue
end if
if space+get_shell.host_computer.File(path).size > maxspace and server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content != "inf" then
print("Exceeds maximum space!")
continue
end if
get_shell.scp(path,ufiles.path,server)
up=server.host_computer.File(ufiles.path+"/"+path.split("/")[-1])
up.chmod("o-wrx")
up.chmod("u-wrx")
up.chmod("g-wrx")
print("Uploaded "+path+"!")
continue
end if
if term == "download" then
file=user_input("[File]~$")
if not server.host_computer.File(ufiles.path+"/"+file) then
print("File does not exist")
continue
end if
server.scp(ufiles.path+"/"+file,current_path,get_shell)
print("Downloaded "+file+"!")
continue
end if
if term == "remove" then
file=user_input("[File]~$")
if not server.host_computer.File(ufiles.path+"/"+file) then
print("File does not exist, lucky you!")
continue
end if
server.host_computer.File(ufiles.path+"/"+file).delete
print("Deleted "+file+"!")
end if
if term == "account" then
print("Hello "+creds[0]+"!")
print("Current maximum space: "+server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content)
space=0
for file in ufiles.get_files
space=space+file.size.to_int
end for
print("Current used space: "+space+"/"+server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content)
print("[Upgrade]
[Delete]
[Return]")
while true
opt=user_input("~$").lower
if opt == "upgrade" and server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content != "inf" then
if server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content=="inf" then continue
print("Purchasing +1 GB Storage Space (10 BTC)")
opt=user_input("Continue? [Y/N]~$").lower
if opt == "y" then
coins="10"
output=BTC.transfer(owner,coins,0,0)
if output.bool then
print(output.stdout)
else
print("Purchase failure")
continue
end if
space=server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").get_content.split.to_int
space=space+GB
server.host_computer.File("/server/.CloudSafe/users/"+creds[0]+"/storage").set_content(space)
end if
end if
if opt == "delete" then
print("This will irreversably delete all of your data!")
opt=user_input("Continue? [Y/N]~$").lower
if opt == "y" then
print("[-]Removing user")
server.host_computer.File("/server/.CloudSafe/users/"+creds[0]).delete
exit("[%]User deleted")
end if
end if
if opt == "return" then break
end while
end if
end while