EiEich

Untitled

Jun 16th, 2021
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Group = require(__dirname + '/schema_group.js')
  2. module.exports = function(waw) {
  3.     waw.dataUrlToLocation = function(dataUrl, loc, file, cb){
  4.         var base64Data = dataUrl.replace(/^data:image\/png;base64,/, '').replace(/^data:image\/jpeg;base64,/, '');
  5.         var decodeData = new Buffer(base64Data, 'base64');
  6.         waw.fs.mkdirSync(loc, { recursive: true });
  7.         waw.fs.writeFile(loc+'/'+file, decodeData, cb);
  8.     }
  9.     var router = waw.router('/api/group');
  10.     router.post("/avatar", function(req, res) {
  11.         Group.findOne({
  12.             _id: req.body._id
  13.         }, function(err, group){
  14.             group.avatarUrl = '/api/group/avatar/' + group._id + '.jpg?' + Date.now();
  15.             console.log(group.avatarUrl);
  16.             waw.parallel([function(next) {
  17.                 group.save(next);
  18.             }, function(next) {
  19.                 waw.dataUrlToLocation(req.body.dataUrl, __dirname + '/files/', group._id + '.jpg', next);
  20.             }], function() {
  21.                 res.json(group.avatarUrl);
  22.             });
  23.         });
  24.     });
  25.     router.get("/avatar/:file", function(req, res) {
  26.         res.sendFile(__dirname + '/files/' + req.params.file);
  27.     });
  28.     router.get("/default.png", function(req, res) {
  29.         res.sendFile(__dirname + '/files/avatar.svg');
  30.     });
  31.     var base = __dirname+'/app/dist/memo';
  32.     waw.use(function(req, res, next) {
  33.         let host = req.get('host').toLowerCase();
  34.         if(req.url.indexOf('/api/')==0) return next();
  35.         if(waw.config.memo && waw.config.memo.urls.indexOf(host)>=0){
  36.             if(req.url.indexOf('.')>-1){
  37.                 res.sendFile(base+req.url);
  38.             }else{
  39.                 let pages = waw.config.memo.pages.split(' ');
  40.                 for (var i = 0; i < pages.length; i++) {
  41.                     if(req.url.indexOf(pages[i])>=0){
  42.                         return res.sendFile(base+'/index.html');
  43.                     }
  44.                 }
  45.                 next();
  46.             }
  47.         }else{
  48.             next();
  49.         }
  50.     });
  51. };
Add Comment
Please, Sign In to add comment