Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function split(pString, pPattern)
- local Table = {} -- NOTE: use {n = 0} in Lua-5.0
- local fpat = "(.-)" .. pPattern
- local last_end = 1
- local s, e, cap = pString:find(fpat, 1)
- while s do
- if s ~= 1 or cap ~= "" then
- table.insert(Table,cap)
- end
- last_end = e+1
- s, e, cap = pString:find(fpat, last_end)
- end
- if last_end <= #pString then
- cap = pString:sub(last_end)
- table.insert(Table, cap)
- end
- return Table
- end
- if not fs.exists("unread.mail") then
- local f = fs.open("unread.mail","w")
- f.close()
- end
- if not fs.exists("config.mail") then
- local f = fs.open("config.mail","w")
- print("Which side the modem is ? ")
- local s = read()
- f.write(s)
- f.close()
- end
- while true do
- local config = fs.open("config.mail","r")
- local modem_side = config.readLine()
- config.close()
- rednet.open(modem_side)
- id, message = rednet.receive()
- local splited = split(message,"|")
- local action = splited[1]
- if action == "send" then
- local receiver = splited[2]
- local sender = splited[3]
- local subject = splited[4]
- local corpse = splited[5]
- local f1 = fs.open("unread.mail","r")
- local data = f1.readAll()
- f1.close()
- local f = fs.open("unread.mail","w")
- f.write(data .. receiver .."|".. sender .."|".. subject .."|".. corpse .."§")
- f.close()
- elseif action == "fetch" then
- local user = splited[2]
- local f = fs.open("unread.mail","r")
- local fData = f.readAll()
- f.close()
- local newFData = ""
- local fetchedMails = ""
- local unreadNumber = 0
- for key,line in pairs(split(fData,"§")) do
- local sLine = split(line,"|")
- local receiver = sLine[1]
- if receiver == user then
- if fetchedMails == "" then
- fetchedMails = line .."§"
- else
- fetchedMails = fetchedMails .. line .. "§"
- end
- else
- unreadNumber = unreadNumber + 1
- if newFData == "" then
- newFData = line.."§"
- else
- newFData = newFData .. line .. "§"
- end
- end
- end
- local m = peripheral.wrap("front")
- m.clear()
- m.setCursorPos(1,1)
- m.setTextScale(1)
- m.write("Unread Mails : "..unreadNumber)
- if not fs.exists(user .."/archive.mail") then
- local archive = fs.open(user .."/archive.mail","w")
- archive.close()
- end
- local archiveData = fs.open(user .."/archive.mail","r")
- local archiveMails = archiveData.readAll()
- archiveData.close()
- local newArchive = fs.open(user .."/archive.mail","w")
- newArchive.write(archiveMails .. fetchedMails)
- newArchive.close()
- local newF = fs.open("unread.mail","w")
- newF.write(newFData)
- newF.close()
- rednet.send(id, fetchedMails)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement