Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function send(account, to, email)
- local message = ("@EMX~"..to.."~"..account.."~"..email)
- local file = fs.open("EMX/emails/"..to, "a")
- file.writeLine(message)
- file.close()
- end
- function getNumberOfEnters(data, string)
- local n = 0
- for i,v in ipairs(data) do
- if v == string then
- n = n + 1
- end
- end
- return n
- end
- function getAllEmails(account)
- if idExists(account) then
- local data = {}
- local temp = {}
- local cur = 1
- local file = fs.open("EMX/emails/account", "r")
- local line = file.readLine()
- while line ~= nil do
- local sender = getMessage(line)
- sender = getSender(sender)
- local n = getNumberOfEnters(temp, sender)
- n = n + 1
- data[cur] = sender.." ["..n.."]"
- temp[cur] = sender
- cur = cur + 1
- line = file.readLine()
- end
- file.close()
- return data
- else
- return nil
- end
- end
- function returnEmail(account, name)
- if idExists(account) then
- local email = nil
- local temp = {}
- local cur = 1
- local file = fs.open("EMX/emails/account", "r")
- local line = file.readLine()
- while line ~= nil do
- local msg = getMessage(line)
- local sender = getSender(msg)
- local n = getNumberOfEnters(temp, sender)
- n = n + 1
- local curname = sender..":"..n
- if curname == name then
- email = line
- end
- temp[cur] = sender
- cur = cur + 1
- line = file.readLine()
- end
- file.close()
- return email
- else
- return nil
- end
- end
- function joinTables(t1, t2)
- for k,v in ipairs(t2) do table.insert(t1, v) end return t1
- end
- function readEmail(broadcast, id)
- if isEmail(broadcast) then
- local msg = getMessage(broadcast)
- local mid = getID(msg)
- if mid == id then
- local email = getEmail(msg)
- local sender = getSender(msg)
- local sendername = getNickname(sender)
- local toname = getNickname(id)
- if toname ~= nil and sendername ~= nil then
- local start = {"From:"..sendername, "To:"..toname}
- local split = string.split(email, "}")
- local data = joinTables(start, split)
- return data
- else
- local data = {"NOT A VALID EMAIL", "CANNOT READ EMAIL"}
- return data
- end
- else
- local data = {"NOT A VALID USER", "CANNOT READ EMAIL"}
- return data
- end
- end
- end
- function startUp()
- fs.makeDir("EMX")
- fs.makeDir("EMX/data")
- fs.makeDir("EMX/emails")
- local file = fs.open("EMX/data/ids", "a")
- file.close()
- end
- function getSender(message)
- if isEmail(message) then
- message = getMessage(message)
- end
- local id = string.sub(message, 6, 9)
- return id
- end
- function isEmail(broadcast)
- if starts(broadcast, "@EMX~") then
- return true
- else
- return false
- end
- end
- function getID(message)
- if isEmail(message) then
- message = getMessage(message)
- end
- local id = string.sub(message, 1, 4)
- return id
- end
- function getEmail(message)
- if isEmail(message) then
- message = getMessage(message)
- end
- local msg = string.sub(message, 10, -1)
- return msg
- end
- function getMessage(broadcast)
- if isEmail(broadcast) then
- local s = string.sub(broadcast, 6, -1)
- return s
- else
- return nil
- end
- end
- function starts(String,Start)
- return string.sub(String,1,string.len(Start))==Start
- end
- function idExists(id)
- local ok = true
- local file = fs.open("EMX/data/ids", "r")
- local line = file.readLine()
- while line ~= nil do
- local cid = string.sub(line,1,4)
- if cid == id then
- ok = false
- end
- line = file.readLine()
- end
- file.close()
- return ok
- end
- function nicknameExists(nickname)
- local ok = true
- local file = fs.open("EMX/data/ids", "r")
- local line = file.readLine()
- while line ~= nil do
- local name = string.sub(line,6,-1)
- if name == nickname then
- ok = false
- end
- line = file.readLine()
- end
- file.close()
- return ok
- end
- function newAccount(nickname, password)
- if nicknameExists(nickname) then
- return "nonick"
- else
- local id = math.random(1000, 9999)
- local max = 0
- while idExists == false and max < 9999 do
- id = math.random(1000, 9999)
- max = max + 1
- end
- if max >= 9999 then
- return "noid"
- else
- local file = fs.open("EMX/data/ids", "a")
- local temp = fs.open("EMX/emails/"..id, "a")
- file.writeLine(id.."~"..nickname.."~"..password)
- file.close()
- temp.close()
- return "ok"
- end
- end
- end
- function getTrueId(nickname)
- local tid = nil
- local file = fs.open("EMX/data/ids", "r")
- local line = file.readLine()
- while line ~= nil do
- local name = string.sub(line,6,-1)
- if name == nickname then
- local id = string.sub(line,1,4)
- tid = id
- end
- line = file.readLine()
- end
- file.close()
- return tid
- end
- function matchPassword(id, password)
- local ok = false
- local file = fs.open("EMX/data/ids", "r")
- local line = file.readLine()
- while line ~= nil do
- local cid = string.sub(line,1,4)
- if cid == id then
- local name = string.sub(line,6,-1)
- local split = string.split(name, "~")
- local pass = split[2]
- if pass == password then
- ok = true
- end
- end
- line = file.readLine()
- end
- file.close()
- return ok
- end
- function getNickname(id)
- local nname = nil
- local file = fs.open("EMX/data/ids", "r")
- local line = file.readLine()
- while line ~= nil do
- local cid = string.sub(line,1,4)
- if cid == id then
- local name = string.sub(line,6,-1)
- local split = string.split(name, "~")
- nname = split[1]
- end
- line = file.readLine()
- end
- file.close()
- return nname
- end
Add Comment
Please, Sign In to add comment