Untitled
unknown
plain_text
4 years ago
20 kB
3
Indexable
const express = require('express'); const bodyParser = require('body-parser'); const pdfP =require('pdf2json'); const app =express(); const crypto= require('crypto'); const multer=require('multer'); const {GridFsStorage} = require('multer-gridfs-storage'); const Grid = require('gridfs-stream'); const methodOverride = require('method-override'); const getStream =require('get-stream') const mysql = require('mysql2'); app.use(express.json()); app.use(express.urlencoded({ extended: true })) app.use(bodyParser.json()); app.use(bodyParser.raw()) app.use(bodyParser.urlencoded({ extended: true })); app.use(methodOverride('_method')); app.use(express.static("./files")) const path =require('path'); const pdfParse= require("pdf-parse"); const user =require("./models/user"); const pdfjs=require("pdfjs-dist/legacy/build/pdf") async function getContent(src, pg) { const doc = await pdfjs.getDocument(src).promise const page = await doc.getPage(pg) return page.getTextContent() } async function getItems(src) { const content1 = await getContent(src, 1) const items1 = content1.items const content2 =await getContent(src, 2) const items2 = content2.items const content3 = await getContent(src, 3) const items3 = content3.items const content4 = await getContent(src, 4) const items4 = content4.items const content5 = await getContent(src, 5) const items5 = content5.items const content6 = await getContent(src, 6) const items6 = content6.items const content7 = await getContent(src, 7) const items7 = content7.items const content8 = await getContent(src, 8) const items8 = content8.items const content9 = await getContent(src, 9) const items9 = content9.items var page1 = [] var page2 = [] var page3 = [] var page4 = [] var page5 = [] var page6 = [] var page7 = [] var page8 = [] var page9 = [] for (let i = 0; i < items1.length; i++) { if (isThereAnyText(items1[i])) { page1.push(items1[i].str) } } for (let i = 0; i < items2.length; i++) { if (isThereAnyText(items2[i])) { page2.push(items2[i].str) } } for (let i = 0; i < items3.length; i++) { if (isThereAnyText(items3[i])) { page3.push(items3[i].str) } } for (let i = 0; i < items4.length; i++) { if (isThereAnyText(items4[i])) { page4.push(items4[i].str) } } for (let i = 0; i < items5.length; i++) { if (isThereAnyText(items5[i])) { page5.push(items5[i].str) } } for (let i = 0; i < items6.length; i++) { if (isThereAnyText(items6[i])) { page6.push(items6[i].str) } } for (let i = 0; i < items7.length; i++) { if (isThereAnyText(items7[i])) { page7.push(items7[i].str) } } for (let i = 0; i < items8.length; i++) { if (isThereAnyText(items8[i])) { page8.push(items8[i].str) } } for (let i = 0; i < items9.length; i++) { if (isThereAnyText(items9[i])) { page9.push(items9[i].str) } } let pages = [] pages.push(page1) pages.push(page2) pages.push(page3) pages.push(page4) pages.push(page5) pages.push(page6) pages.push(page7) pages.push(page8) pages.push(page9) return pages } let selam = 'aaa1' let regex1 = new RegExp(/\d/) console.log(regex1.test(selam)); // true console.log("afasfsda") function isThereAnyText(item) { let regex = new RegExp(/[a-z]/i) let regex1 = new RegExp(/\d/) if (regex.test(item.str) || regex1.test(item.str)) { return true } return false } function getAllInfo(pages) { let className = getClassName(pages[0]) let term = getTerm(pages[1]) let authorInfo = getAuthorInfo(pages[2]) let projectSummary = getProjectSummary(pages[8]) let projectTitle = getProjectTitle(pages[0]) let consultantInfo = getConsultantInfo(pages[1]) let juryInfo = getJuryInfo(pages[1]) let keywords = getKeywords(pages[8]) let allInfo = [] allInfo[0] = className allInfo[1] = term allInfo[2] = authorInfo allInfo[3] = projectSummary allInfo[4] = projectTitle allInfo[5] = consultantInfo allInfo[6] = juryInfo allInfo[7] = keywords return allInfo } function getClassName(page1) { console.log(page1[3]) return page1[3] } function getTerm(page2) { let x = page2[page2.length - 1] let fallOrSpring = '' if (x.substring(3, 5) == '01') { fallOrSpring = 'Güz' } else fallOrSpring = 'Bahar' let year1 = 0 year1 = parseInt(x.substring(6, 10)) - 1 let year2 = String(year1) console.log(fallOrSpring + " " + year2 + "-" + x.substring(6, 10)) let term = fallOrSpring + " " + year2 + "-" + x.substring(6, 10) return term } function getAuthorInfo(page3) { console.log(page3[page3.length - 3]) console.log(page3[page3.length - 2].substring(13, page3[page3.length - 2].length)) console.log(page3[page3.length - 3].substring(5, 6)) let educationType = '' if (page3[page3.length - 3].substring(5, 6) == '1') { educationType = 'Birinci Öğretim' } else educationType = 'İkinci Öğretim' let authorInfo = page3[page3.length - 2].substring(13, page3[page3.length - 2].length) + ' ' + page3[page3.length - 3] + ' ' + educationType console.log(authorInfo) return authorInfo } function getProjectSummary(page9) { console.log(page9) let i = 0 while (page9[i] != 'ÖZET') { i++ } console.log(i) let summary = '' let summary1 = [] i = i + 1 while (page9[i] != 'Anahtar ') { summary1.push(page9[i]) i++ } summary = summary1.join(' ') console.log(summary) return summary } function getProjectTitle(page1) { console.log(page1[4]) return page1[4] } function getConsultantInfo(page2) { console.log(page2[6]) return page2[6] } function getJuryInfo(page2) { console.log(page2[10]) console.log(page2[15]) let x = [] x[0] = page2[10] x[1] = page2[15] return x } function getKeywords(page9) { let i = 0 while (page9[i] != 'Kelimeler: ') { i++ } i++ let keywords = '' for (i; i < page9.length; i++) { keywords += page9[i] } console.log(keywords) let keywords1 = [] keywords1 = keywords.split(', ') keywords1[keywords1.length - 1] = keywords1[keywords1.length - 1].slice(0, -1) console.log(keywords1[keywords1.length - 1]) console.log(keywords1) return keywords1 } let re; let ty,ty1,sr,sr1,ty2,sr2; var connection = mysql.createConnection({ connectionLimit:10, host: 'localhost', user: 'root', password: '3005', database: 'lib' }); connection.connect(function(error){ if(error){ console.log("err") } else{ console.log('connected') } }) app.listen(3000) var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'models/files'); }, filename: function (req, file, cb) { var id = file.originalname ; cb(null, id); } }); var upload = multer({ storage: storage }) app.get('/',(req,res)=>{ res.sendFile(path.join(__dirname,'index.html')); }); app.get('/changepassword',(req,res)=>{ res.sendFile(path.join(__dirname,'pass.html')); }); app.get('/user',(req,res)=>{ res.sendFile(path.join(__dirname,'user.html')); }); app.get('/admin',(req,res)=>{ res.sendFile(path.join(__dirname,'admin.html')); }); app.get('/register',(req,res)=>{ res.sendFile(path.join(__dirname,'register.html')); }); app.get('/profiles',(req,res)=>{ res.sendFile(path.join(__dirname,'profiles.html')); }); app.post("/user", upload.single('file'), async (req, res, next) => { ty = req.body.ty, ty1=req.body.ty1, ty2=req.body.ty2, sr=req.body.nr, sr1=req.body.nr1, sr2=req.body.nr2; console.log(sr) console.log(ty) const file = req.file; const allInfo = await getItems(file.destination+"/"+file.filename).then(pages => getAllInfo(pages)).catch(err=>console.log(err)) const a= await allInfo[7].length var sql = "INSERT INTO `files`( `file_name`,`author`,`subject`,`summary`,`year`,`project_name`,`keywords`,`mentor`,`jury`,`user_name`) VALUES (?,?,?,?,?,?,?,?,?,?)"; connection.query(sql, [req.file.originalname,await allInfo[2],await allInfo[0],await allInfo[3],await allInfo[1],await allInfo[4],await allInfo[7][0]+","+await allInfo[7][1]+","+await allInfo[7][2]+","+await allInfo[7][3],await allInfo[5] ,await allInfo[6][0]+", " +await allInfo[6][1],re], function (err, result) { if (err) { console.log("error") } }) res.redirect('/user') }); app.post("/admin", (req, res, next)=>{ ty = req.body.ty; ty1=req.body.ty1; ty2=req.body.ty2; sr=req.body.nr; sr1=req.body.nr1; sr2=req.body.nr2; console.log(sr) console.log(ty) }) app.get("/search",(req, res, next) =>{ console.log(ty) console.log(sr) console.log(ty) console.log(sr) console.log(ty) console.log(sr) let ac,t var a="Author" var b="ProjectName" var c="Subject" var d="Keywords" var e="Program Year" var f="User" var sql = "SELECT * FROM `files` "; connection.query(sql, (err, rows) => { if(err){ console.log("error1") } else{ if(sr== a){ for(let i=0;i<rows.length;i++){ if(rows[i].author==ty ){ ac= JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== b){ for(let i=0;i<rows.length;i++){ if(rows[i].project_name==ty ){ ac= JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== c){ for(let i=0;i<rows.length;i++){ if(rows[i].subject==ty ){ ac= JSON.stringify(rows[i]) t=JSON.parse(ac) console.log(t) res.json(t) } }} else if(sr== d){ for(let i=0;i<rows.length;i++){ if(rows[i].keywords==ty ){ ac= JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== e ){ for(let i=0;i<rows.length;i++){ if(rows[i].year==ty ){ ac= JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr2==c){ for(let i=0;i<rows.length;i++){ if(rows[i].user_name==ty && rows[i].year==ty1 && rows[i].subject==ty2){ ac= JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} } })}); app.post("/submit", (req, res, next) => { if(req.body.password==" "&& req.body.name==" "){ return res.status(500).json({ message:"Make sure there isn't any empty field" }); } else if(req.body.password==""|| req.body.name==""){ return res.status(500).json({ message:"Make sure there isn't any empty field" }); } else{ connection.query('SELECT * FROM `user`' , (err, rows) => { if (err) { console.log("Error") } else{ console.log("success") for(let i=0;i<rows.length;i++){ if(rows[i].username==req.body.name && rows[i].password==req.body.password && rows[i].type==req.body.type){ if (req.body.type=='admin' ) { res.redirect('/admin')} else if (req.body.type=='user' ) { re=req.body.name res.redirect('/user') }} else { res.sendFile(path.join(__dirname,'msg.html')) }} } }) } }) app.post("/changepassword", (req, res) => { if(req.body.oldP==""|| req.body.username==""|| req.body.email==""||req.body.newP==""){ return res.status(500).json({ message:"Make sure there isn't any empty field" }); } else{ connection.query('SELECT * FROM `user`' , (err, rows) => { for(let i=0;i<rows.length;i++){ if(rows[i].username==req.body.username && rows[i].email==req.body.email && rows[i].password==req.body.oldP && rows[i].type==req.body.type){ const query='UPDATE `user` SET `password`=? where `username`=?' connection.query(query,[req.body.newP,rows[i].username], (err, rows) => { if(err){ console.log("error")} else{ console.log("success") } }) return res.status(500).json({ message:"Password changed successfully!",})} else{ return res.json({ message:"Information entered is not correct!",}) } }})}}) app.post("/register", (req, res) => { if(req.body.password==""|| req.body.username==""|| req.body.email==""){ return res.status(500).json({ message:"Make sure there isn't any empty field" }); } else{ connection.query('SELECT * FROM `user`' , (err, rows) => { for(let i=0;i<rows.length;i++){ if(rows[i].email==req.body.email ){ return res.json({ message:"This email is registered!",}) } else if( rows[i].username == req.body.username ){ return res.json({ message:"This username is not available!",}) } else{ query='INSERT INTO `user`( `email`, `username`, `type`, `password`) VALUES (?,?,?,?)' connection.query(query,[req.body.email,req.body.username,req.body.type,req.body.password], (err, rows) => { if(err){ console.log("error")} else{ console.log("success") } }) return res.status(500).json({ message:"Account Registered Successfully!",})} }})}}) app.get('/files1',(req,res,next)=>{ var sql= 'SELECT * FROM `files`where `user_name`=? ' ; connection.query(sql,['user1'] ,(err, rows) => { if (err) { console.log("Error") } else { for(let i=0;i<rows.length;i++){ ac= JSON.stringify(rows) } t=JSON.parse(ac) console.log(t) res.json(t) }})}); app.get('/files',(req,res,next)=>{ var sql= 'SELECT * FROM `files` ' ; connection.query(sql,(err, rows) => { if (err) { console.log("Error") } else { for(let i=0;i<rows.length;i++){ ac= JSON.stringify(rows) } t=JSON.parse(ac) console.log(t) res.json(t) }})}); app.get('/file',(req,res,next)=>{ console.log(ty) console.log(sr) let ac,t var a="Author" var b="ProjectName" var c="Subject" var d="Keywords" var e="Program Year" var f="User" var sql= 'SELECT * FROM `files`where `user_name`=? ' ; connection.query(sql,['user1'] ,(err, rows) => { if (err) { console.log("Error") } else{ if(sr== a){ for(let i=0;i<rows.length;i++){ if(rows[i].author==ty ){ JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== b){ for(let i=0;i<rows.length;i++){ if(rows[i].project_name==ty ){ ac.push(JSON.stringify(rows[i])) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== c){ for(let i=0;i<rows.length;i++){ if(rows[i].subject==ty ){ JSON.stringify(rows[i]) } t=JSON.parse(ac) console.log(sr) console.log(sr) console.log(sr) res.json(t) console.log(sr) }} else if(sr== d){ for(let i=0;i<rows.length;i++){ if(rows[i].keywords==ty ){ ac.push(JSON.stringify(rows[i])) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== e && sr1==""){ for(let i=0;i<rows.length;i++){ if(rows[i].year==ty ){ ac.push(JSON.stringify(rows[i])) } t=JSON.parse(ac) console.log(t) res.json(t) }} else if(sr== e && sr1==c ){ for(let i=0;i<rows.length;i++){ if(rows[i].year==ty && rows[i].subject==ty1){ ac.push(JSON.stringify(rows[i])) } t=JSON.parse(ac) console.log(t) res.json(t) }} } }) }) app.get("/profile", (req, res, next) => { var sql = "SELECT * FROM `user` "; connection.query(sql, (err, rows) => { if(err){ console.log("error1") } else { ac= JSON.stringify(rows) t=JSON.parse(ac) console.log(t) res.json(t) }} )})
Editor is loading...