aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrant-kun <[email protected]>2022-10-17 11:18:41 -0500
committergrant-kun <[email protected]>2022-10-17 11:18:41 -0500
commit6f0410dabf3794c2f30748f55a4a939f26b0acff (patch)
tree9af09ef32867cfa13b4444549ac13606e7c4b694
parent4ed519354d7cbeb80ca55dfd0f7fc177e34d4acb (diff)
json to sqlite
-rw-r--r--html/mail.html4
-rw-r--r--index.ts58
2 files changed, 32 insertions, 30 deletions
diff --git a/html/mail.html b/html/mail.html
index 7edc9a2..7dc9951 100644
--- a/html/mail.html
+++ b/html/mail.html
@@ -371,7 +371,7 @@
function del(index) {
preview = index //to not view in side
revved = emails.reverse()
- index = revved.indexOf(emails[index]) - 1
+ index = revved.indexOf(emails[index]) + 1
//pretty proud of this reverse indexer :)
sendenc('/del', { 'index': index, 'fuck you': true, 'user': 'root', 'login_key': getCookie('login_key'), 'requested': 0 })
}
@@ -436,7 +436,7 @@
if (getCookie('login_key') == null) {
window.location.href = '/'
}
- await update()
+ await init()
//return
//document.getElementsByClassName('loading')[0].style.display = 'none'
let xx = document.getElementsByClassName('card')[0]
diff --git a/index.ts b/index.ts
index 7d81d58..098e0bb 100644
--- a/index.ts
+++ b/index.ts
@@ -46,7 +46,9 @@ Object.defineProperty(global, '__stack', {
const sequelize = new Sequelize({
dialect: 'sqlite',
- storage: 'data/user.sqlite'
+ storage: 'data/user.sqlite',
+ logging: false
+
});
let User=sequelize.define('user',{
"html":DataTypes.BOOLEAN,
@@ -123,9 +125,6 @@ app.post('/mail/get/update',async(req:any,res:any)=>{
key.importKey(keyring[req.body.sid].mypriv,'pkcs1-private')
let dec:any = JSON.parse((atob(key.decrypt(req.body.data,'base64','base64'))))
- //console.log(key)
- //console.log(dec.data.login_key)
- //let users = JSON.parse(readFileSync('json/user.json').toString())
const users:any = await User.findAll();
let logkey:any,mail:any
for(let user of users){
@@ -135,7 +134,6 @@ app.post('/mail/get/update',async(req:any,res:any)=>{
mail =JSON.parse(decrypt(user.mail,logkey)).emails[parseInt(dec.data.requested)]
}
}
- //console.log(JSON.parse(decrypt(users[0].mail,logkey)).emails)
var client = new ImapClient(mail.host, parseInt(mail.port), {
auth: {
user: mail.address,
@@ -155,6 +153,7 @@ app.post('/mail/get/update',async(req:any,res:any)=>{
}
}
}
+ try{
client.listMessages('INBOX', '1:*', ['uid', 'flags','envelope','bodystructure',bo ]).then((messages:any) => {
const skey = new NodeRSA()
let mail;
@@ -170,10 +169,21 @@ app.post('/mail/get/update',async(req:any,res:any)=>{
break
}
}
- //console.log(users,(JSON.stringify(messages)))
res.send(JSON.stringify({data:skey.encrypt(JSON.stringify({messages:messages,bod:bo}),'base64'),enc:true,html:true}))
client.close()
+ }).catch((err:any)=>{
+ //! if no messages
+ const skey = new NodeRSA()
+ skey.importKey(keyring[req.body.sid].theirpub,'pkcs8-public')
+ res.send(JSON.stringify({data:skey.encrypt(JSON.stringify({messages:[],bod:bo}),'base64'),enc:true,html:true}))
+ client.close()
});
+} catch(err){
+ const skey = new NodeRSA()
+ skey.importKey(keyring[req.body.sid].theirpub,'pkcs8-public')
+ res.send(JSON.stringify({data:skey.encrypt(JSON.stringify({messages:[],bod:bo}),'base64'),enc:true,html:true}))
+ client.close()
+}
})
})
app.post('/mail/del',async(req:any,res:any)=>{
@@ -181,9 +191,6 @@ app.post('/mail/del',async(req:any,res:any)=>{
key.importKey(keyring[req.body.sid].mypriv,'pkcs1-private')
let dec:any = JSON.parse((atob(key.decrypt(req.body.data,'base64','base64'))))
- //console.log(key)
- //console.log(dec.data.login_key)
- //let users = JSON.parse(readFileSync('json/user.json').toString())
const users:any = await User.findAll();
let logkey:any,mail:any
for(let user of users){
@@ -193,7 +200,6 @@ app.post('/mail/del',async(req:any,res:any)=>{
mail =JSON.parse(decrypt(user.mail,logkey)).emails[parseInt(dec.data.requested)]
}
}
- //console.log(JSON.parse(decrypt(users[0].mail,logkey)).emails)
var client = new ImapClient(mail.host, parseInt(mail.port), {
auth: {
user: mail.address,
@@ -204,11 +210,11 @@ app.post('/mail/del',async(req:any,res:any)=>{
client.connect().then(()=>{
const skey = new NodeRSA()
skey.importKey(keyring[req.body.sid].theirpub,'pkcs8-public')
- client.deleteMessages('INBOX',dec.data.index).then(()=>{
+ console.log(dec.data.index)
+ client.deleteMessages('INBOX',dec.data.index+':'+dec.data.index).then(()=>{
res.send(JSON.stringify({data:skey.encrypt(JSON.stringify({'comp':true}),'base64'),enc:true,html:true}))
client.close()
})
- //console.log(users,(JSON.stringify(messages)))
})
@@ -219,8 +225,6 @@ app.post('/mail/reg',async(req:any,res:any)=>{
skey.importKey(keyring[req.body.sid].theirpub,'pkcs8-public')
key.importKey(keyring[req.body.sid].mypriv,'pkcs1-private')
let dec:any = JSON.parse((atob(key.decrypt(req.body.data,'base64','base64'))))
-
- //let users = JSON.parse(readFileSync('./json/user.json').toString())
const users:any = await User.findAll();
let logkey:any,mail:any
for(let user of users){
@@ -229,16 +233,17 @@ app.post('/mail/reg',async(req:any,res:any)=>{
logkey = await (decrypt(user.login_key,dec.data.login_key))
console.log(logkey)
mail=users.indexOf(user)
+ user.setDataValue('mail',encrypt(JSON.stringify({'emails':[{
+ 'address':dec.data.address,
+ 'host':dec.data.host,
+ 'port':dec.data.port,
+ 'creds':dec.data.creds,
+ 'salt':crypt.randomBytes(64).toString('hex')
+ }]}),logkey))
+ user.save()
+ User.sync({ alter: true })
}
}
- users[mail].mail=encrypt(JSON.stringify({'emails':[{
- 'address':dec.data.address,
- 'host':dec.data.host,
- 'port':dec.data.port,
- 'creds':dec.data.creds,
- 'salt':crypt.randomBytes(64).toString('hex')
- }]}),logkey)
- //users.save()
})
app.get('/mail', (req:any, res:any) => {
res.sendFile(__dirname+'/html/mail.html')
@@ -252,11 +257,9 @@ app.post('/mail/get/storage',async(req:any,res:any)=>{
console.log(req.body.data)
let dec:any = JSON.parse((atob(key.decrypt(req.body.data,'base64','base64'))))
console.log(dec)
- //let users = JSON.parse(readFileSync('./json/user.json').toString())
const users:any = await User.findAll();
let logkey:any,mail:any
for(let user of users){
- //console.log(user,dec)
if(user.name==dec.data.user){
logkey = (decrypt(user.login_key,dec.data.login_key))
mail =JSON.parse(decrypt(user.mail,logkey))
@@ -306,7 +309,6 @@ app.post('/pub.key', async (req:{body:{json:boolean,sid:keyof keyring,pub:string
mypub:key.exportKey('pkcs8-public'),
theirpub:req.body.pub}
res.send(key.exportKey('pkcs8-public'))
- //console.log(keyring)
}
})
@@ -331,9 +333,6 @@ app.post('/login/submit', async (req:{body:{json:boolean,enc:boolean,data:string
user.save()
User.sync({ alter: true })
break
- //console.log(users[users.indexOf(user)].login_key,logkey,hash)
- //console.log(users)
- //writeFileSync('./json/user.json',JSON.stringify(users))
}
}
})
@@ -371,3 +370,6 @@ httpsServer.listen(443, function https() {
}),hash))
*/
+/*
+todo:
+*/ \ No newline at end of file