aboutsummaryrefslogtreecommitdiff
path: root/index.ts
diff options
context:
space:
mode:
authorgrant-kun <[email protected]>2022-10-13 13:18:42 -0500
committergrant-kun <[email protected]>2022-10-13 13:18:42 -0500
commit26d50b8e63f79e48652840a54567b059d1f73766 (patch)
tree08d81de8bf558e80d0fde43e6c400650ae4786e8 /index.ts
parentafdd65e44c3a1a89d1aaa1c089508bd86477d727 (diff)
adding stuff
Diffstat (limited to 'index.ts')
-rw-r--r--index.ts67
1 files changed, 56 insertions, 11 deletions
diff --git a/index.ts b/index.ts
index 4fb34fc..78de797 100644
--- a/index.ts
+++ b/index.ts
@@ -1,4 +1,5 @@
import { readFileSync, writeFileSync } from "fs"
+import { LogLevel } from "node-ts";
var privateKey = readFileSync('certs/selfsigned.key', 'utf8');
var certificate = readFileSync('certs/selfsigned.crt', 'utf8');
var http = require('http');
@@ -13,7 +14,33 @@ app.use(bodyParser.json());
const NodeRSA = require('node-rsa');
var ip = require("ip")
var crypt = require('crypto');
-
+Object.defineProperty(global, '__stack', {
+ get: function() {
+ var orig = Error.prepareStackTrace;
+ Error.prepareStackTrace = function(_, stack) {
+ return stack;
+ };
+ var err = new Error;
+ Error.captureStackTrace(err, arguments.callee);
+ var stack = err.stack;
+ Error.prepareStackTrace = orig;
+ return stack;
+ }
+ });
+
+ Object.defineProperty(global, '__line', {
+ get: function() {
+ // @ts-ignore
+ return __stack[1].getLineNumber();
+ }
+ });
+
+ Object.defineProperty(global, '__function', {
+ get: function() {
+ // @ts-ignore
+ return __stack[1].getFunctionName();
+ }
+ });
const IV = "5183666c72eec9e4"; //!not really sure what this is lol
//TODO: learn what IV is
var encrypt = ((val:any,ENC_KEY:any) => {
@@ -34,7 +61,11 @@ var decrypt = ((encrypted:any,ENC_KEY:any) => {
//
function log(m:any){
var date = new Date;
- console.log('['+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()+'] ' + m.toString())
+ let e:any = new Error();
+ let frame = e.stack.split("\n")[2]; // change to 3 for grandparent func
+ let lineNumber = frame.split(":").reverse()[1];
+ let functionName = frame.split(" ")[5];
+ console.log('['+functionName+'/'+lineNumber+'][./index.ts]'+'['+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()+'] ' + m.toString())
}
function d(){
var date = new Date;
@@ -72,14 +103,23 @@ app.post('/mail/get/update',(req:any,res:any)=>{
var client = new ImapClient(mail.host, parseInt(mail.port), {
auth: {
user: mail.address,
- pass: mail.creds
- }
+ pass: mail.creds,
+
+ },logLevel:1000
});
client.connect().then(()=>{
//['uid', 'flags','envelope'] for just header stuff
//['uid', 'flags','envelope','body']
- //body 0 is plani, 1 is html
- client.listMessages('INBOX', '1:*', ['uid', 'flags','envelope','bodystructure','body[1]' ]).then((messages:any) => {
+ //body 0 is plani, 1 is plain
+ let bo="body[0]"
+ for(let user of users){
+ if(user.name==dec.data.user){
+ if(user.settings.html){
+ bo="body[2]"
+ }
+ }
+ }
+ client.listMessages('INBOX', '1:*', ['uid', 'flags','envelope','bodystructure',bo ]).then((messages:any) => {
const skey = new NodeRSA()
skey.importKey(keyring[req.body.sid].theirpub,'pkcs8-public')
for(let user of users){
@@ -93,8 +133,7 @@ app.post('/mail/get/update',(req:any,res:any)=>{
}
}
//console.log(users,(JSON.stringify(messages)))
-
- res.send(JSON.stringify({data:skey.encrypt(JSON.stringify(messages),'base64'),enc:true,html:true}))
+ res.send(JSON.stringify({data:skey.encrypt(JSON.stringify({messages:messages,bod:bo}),'base64'),enc:true,html:true}))
client.close()
});
})
@@ -164,6 +203,12 @@ app.get('/kanna.txt', (req:any, res:any) => {
app.get('/src/bundle.js', (req:any, res:any) => {
res.sendFile(__dirname+'/src/bundle.js')
})
+app.get('/src/autolink.js', (req:any, res:any) => {
+ res.sendFile(__dirname+'/src/autolink.js')
+})
+app.get('/src/quoted-printable.js', (req:any, res:any) => {
+ res.sendFile(__dirname+'/src/quoted-printable.js')
+})
app.get('/src/lights-out.gif', (req:any, res:any) => {
res.sendFile(__dirname+'/src/lights-out.gif')
})
@@ -214,13 +259,13 @@ app.use((req:any, res:any, next:any) => {
var httpServer = http.createServer(app);
var credentials = {key: privateKey, cert: certificate};
var httpsServer = https.createServer(credentials, app);
-app.listen(8008,()=>{
+app.listen(8008,function local(){
log(`kanna is local http://${ip.address()}:8080`)
})
-httpServer.listen(80, () => {
+httpServer.listen(80, function http() {
log(`kanna is on http://${ip.address()} click on me click on me! :3`)
})
-httpsServer.listen(443, () => {
+httpsServer.listen(443, function https() {
log(`kanna is secure now too!! https://${ip.address()}`)
})
//end