const express = require('express')

const bodyParser = require('body-parser')

const { getDevicesId, regeditKey, validate } = require('../dll/index')

const path = require('path')

const cors = require('cors');

const fs = require('fs')

const app = express()

const { getHtml, xorFileAssets } = require('./xorFileContent')

app.use(cors())

console.log('package:', path.join(__dirname, '../package'));

app.use(express.static(path.join(__dirname, '../app/build')));

app.use(express.static(path.join(__dirname, '../package')));

app.use(bodyParser.urlencoded({ extended: false }));

app.use(bodyParser.json());

app.get('/html', function(req, res) {
  res.setHeader('Content-Type', 'text/html');
  res.sendFile(path.join(__dirname, '../app/build/index.html'))
})

app.get('/file', function(req, res) {
  
  app.use(express.static(path.join(__dirname, '../files/' + req.query.name)));
  
  const s4s10 = xorFileAssets('../files/lk7hBDCE7WRVGEX7UQ7zweT0ELrX/data/pres/s4s10.png')

  res.setHeader('Content-Type', 'text/html');
  
  res.send(getHtml('../files/' + req.query.name))
})

app.get('/filelist', function (req, res) {
  const files = fs.readdirSync(path.join(__dirname, '../files'));
  console.log('Files in the folder:');
  let fileNames = []
  fileNames.forEach(fileName => fileNames.push(fileName));
  res.send({
    code: 200,
    data: files,
    msg: '获取成功'
  })
})

app.get('/devicesId', function(req, res ) {
  const id = getDevicesId()
  res.send({
    code: 200,
    data: id,
    msg: 'DevicesId'
  })
})

// app.get('/data/pres/s4s10.png', function(req, res) {
//   console.log('我触发吗,额');
//   res.set('Content-Type', 'image/png');
//   const s4s10 = xorFileAssets('../files/lk7hBDCE7WRVGEX7UQ7zweT0ELrX/data/pres/s4s10.png')
//   console.log('s4s10:',Buffer.from(s4s10, 'base64'));
//   res.send(Buffer.from(s4s10, 'base64'))
// })

app.post('/login', function (req, res) {
  const devicesId = req.body.devicesId
  const code = req.body.code
  console.log('devicesId:', devicesId);
  console.log('code:', code);
  const r = regeditKey(devicesId, code)
  res.send({
    code: 200,
    data: r,
    msg: r == 1 ? '激活成功' : '激活失败'
  })
})

app.post('/validate', function(req, res ) {
  const r = validate()
  res.send({
    code: 200,
    data: r,
    msg: r == 1 ? '校验通过' : '校验失败'
  })
})

app.listen(3004, () => {
  console.log('Server is running on port 3004');
})