Показать сообщение отдельно
  #2 (permalink)  
Старый 28.07.2022, 17:24
Интересующийся
Отправить личное сообщение для Ivan65913 Посмотреть профиль Найти все сообщения от Ivan65913
 
Регистрация: 28.07.2022
Сообщений: 16

..\controllers\main.js
const db = require('../db');
const fs = require('fs');
const path = require('path');
const config = require('../config.js');
class Main {
 
  async video(req, res, next) {
    const videoFolder = './static/video'
    let videos = []
 
    fs.readdirSync(videoFolder).forEach((file) => {
      let extension = path.extname(file)
      let filename = path.basename(file, extension)
 
      videos.push({
        file,
        filename: parseInt(filename),
      })
    })
 
    videos = videos.sort((a, b) => {
      return a.filename - b.filename
    })
 
 
 
    return res.render('video', {
      domain: config.express.domain,
      videos,
    })
  }
 
    async panomuseum(req, res) {
    const article = await db.article.getByID(req.params.lang);
    const sub = await db.article.getRoot(req.params.lang);
    const files = await db.files.getByOwnerId(req.params.lang);
 
    const lang = await db.lang.getById(req.params.lang);
 
    return res.render('panomuseum', {
      article,
      sub,
      files,
      lang
    });
  }
 
  async panomuseum2(req, res) {
    const article = await db.article.getByID(req.params.lang);
    const sub = await db.article.getRoot(req.params.lang);
    const files = await db.files.getByOwnerId(req.params.lang);
 
    const lang = await db.lang.getById(req.params.lang);
 
    return res.render('panomuseum2', {
      article,
      sub,
      files,
      lang
    });
  }
 
  async panotheatre(req, res) {
    const article = await db.article.getByID(req.params.lang);
    const sub = await db.article.getRoot(req.params.lang);
    const files = await db.files.getByOwnerId(req.params.lang);
 
    const lang = await db.lang.getById(req.params.lang);
 
    return res.render('panotheatre', {
      article,
      sub,
      files,
      lang
    });
  }
 
  async index(req, res) {
    const article = await db.article.getByID(req.params.lang);
    const sub = await db.article.getRoot(req.params.lang);
    const files = await db.files.getByOwnerId(req.params.lang);
 
 
    const lang = await db.lang.getById(req.params.lang);
    const timeout = await db.settings.getByID("timeout");
    const caption = await db.settings.getByID("caption");
 
 
    return res.render("index", {
      article,
      sub,
      files,
      lang,
      timeout,
      caption,
      domain: req.app.get("domain"),
    });
  }
 
  async menu(req, res) {
    return res.render("menu", {
      domain: req.app.get("domain"),
    });
  }
 
  async slideshow(req, res) {
    const slideshow = await db.files.getSlideshow();
    const timer = await db.settings.getByID("timer");
 
    return res.render("slideshow", {
      slideshow,
      timer,
      domain: req.app.get("domain"),
    });
  }
 
  async slide(req, res) {
    const slideshow = await db.files.getByID(req.params.id);
    const timer = await db.settings.getByID("timer");
 
    return res.render("slideshow", {
      slideshow: [slideshow],
      timer,
      domain: req.app.get("domain"),
    });
  }
 
  async article(req, res) {
    const article = await db.article.getByID(req.params.id);
    const sub = await db.article.getSub(req.params.id);
    const files = await db.files.getByOwnerId(req.params.id);
    const id = req.params.id;
    const lang = await db.lang.getById(req.params.lang);
    const timeout = await db.settings.getByID("timeout");
    const caption = await db.settings.getByID("caption");
 
    return res.render("index", {
      id,
      article,
      sub,
      files,
      lang,
      timeout,
      caption,
      domain: req.app.get("domain"),
    });
  }
 
  
  async lang(req, res) {
    const langs = await db.lang.getAll();
 
    let activeCount = 0;
 
    for (let lang of langs) {
      if (lang.value == 1) {
        activeCount++;
      }
    }
 
    if (activeCount == 0) {
      return res.redirect("/0");
    } else if (activeCount == 1) {
      for (let lang of langs) {
        if (lang.value == 1) {
          return res.redirect("/" + lang.id);
        }
      }
    }
 
    const timeout = await db.settings.getByID("timeout");
 
    return res.render("lang", {
      langs,
      timeout,
    });
  }
 
  async openSlide(req, res) {
    console.log("openSlide");
    let files = await db.files.getSyncSmartHome();
 
    parentIO.sockets.in("client").emit("goToUrl", {
      message: "/slide/" + files[parseInt(req.params.id)].id,
    });
 
    return res.json({
      success: true,
    });
  }
 
  async openSlideshow(req, res) {
    console.log("open slideshow");
 
    parentIO.sockets.in("client").emit("goToUrl", {
      message: "/slideshow",
    });
 
    return res.json({
      success: true,
    });
  }
}
 
module.exports = new Main();
Ответить с цитированием