initialize
This commit is contained in:
commit
99b6232436
24 changed files with 3872 additions and 0 deletions
128
app.js
Normal file
128
app.js
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
var createError = require("http-errors");
|
||||
var express = require("express");
|
||||
var path = require("path");
|
||||
var cookieParser = require("cookie-parser");
|
||||
// var morgan = require("morgan");
|
||||
|
||||
var indexRouter = require("./routes/index");
|
||||
var usersRouter = require("./routes/users");
|
||||
// const { createLogger, format, transports } = require('winston');
|
||||
|
||||
const {
|
||||
logger,
|
||||
Log,
|
||||
getTestSpreadSheet,
|
||||
GoogleFunctions,
|
||||
PluginsManager,
|
||||
} = require("./lib/common");
|
||||
const { SyncText } = require("./lib/sync_text");
|
||||
const { CronJobs } = require("./cron-jobs");
|
||||
const { google } = require("googleapis");
|
||||
const { EventEmitter } = require("stream");
|
||||
|
||||
require("dotenv").config();
|
||||
|
||||
Log.debug(process.env.TEST_SHEET_ID);
|
||||
|
||||
var app = express();
|
||||
|
||||
// view engine setup
|
||||
app.set("views", path.join(__dirname, "views"));
|
||||
app.set("view engine", "jade");
|
||||
|
||||
app
|
||||
// .use(require("morgan")("combined", { stream: logger.stream }))
|
||||
.use(express.json())
|
||||
.use(express.urlencoded({ extended: false }))
|
||||
.use(cookieParser())
|
||||
.use(express.static(path.join(__dirname, "public")));
|
||||
|
||||
app.use("/", indexRouter);
|
||||
app.use("/users", usersRouter);
|
||||
|
||||
Log.debug(`running on port ${process.env.PORT}`);
|
||||
|
||||
// =========================================================================
|
||||
// CRON JOB (Trigger)
|
||||
// =========================================================================
|
||||
|
||||
var cronTasks =
|
||||
CronJobs.MAXIMUM_CRON_JOBS > 0 ? new Array(CronJobs.MAXIMUM_CRON_JOBS) : [];
|
||||
|
||||
const auth = GoogleFunctions.auth();
|
||||
const sheet = GoogleFunctions.SpreadSheets(auth);
|
||||
|
||||
// let heartbeatTask = CronJobs.doEveryMinute(() => {
|
||||
// Log.debug(`All running => ${JSON.stringify(cronTasks)}`);
|
||||
// cronTasks[0].exec_times += 1;
|
||||
// if(cronTasks[0].exec_times >= 1){
|
||||
// Log.debug("stop hb");
|
||||
// this.emit('stop');
|
||||
// }
|
||||
// }, 'hb');
|
||||
|
||||
// heartbeatTask.on('stop', () => heartbeatTask.stop());
|
||||
|
||||
// cronTasks[0] = {
|
||||
// task: heartbeatTask,
|
||||
// exec_times: 0
|
||||
// };
|
||||
|
||||
// getTestSpreadSheet(sheet);
|
||||
// const tha_sheets = GoogleFunctions.getAllSheetNamesByCountry(sheet, "tha", (sheetDetail) => {
|
||||
// return sheetDetail.data.sheets.map((sheet) => {
|
||||
// return {
|
||||
// name: sheet.properties.title,
|
||||
// id: sheet.properties.sheetId,
|
||||
// };
|
||||
// });
|
||||
// });
|
||||
|
||||
// GoogleFunctions.getCountrySheetByName(sheet, "tha", "PriceSlot1");
|
||||
// GoogleFunctions.getPriceSlotValues(sheet, "tha");
|
||||
|
||||
// v3 !!!!
|
||||
// GoogleFunctions.syncProfilePrice(sheet, "tha", false);
|
||||
//
|
||||
|
||||
// Test Taobin SyncText
|
||||
SyncText.run(sheet, "uae", false);
|
||||
|
||||
const pm = new PluginsManager(cronTasks, CronJobs);
|
||||
pm.load();
|
||||
|
||||
pm.checkScript();
|
||||
// pm.runScript("heartbeat.js");
|
||||
|
||||
// Expect variable from plugins
|
||||
let endpointMap;
|
||||
// Object.keys(pm.scripts).forEach((scriptName) => {
|
||||
|
||||
// });
|
||||
|
||||
for (let scriptName of Object.keys(pm.scripts)) {
|
||||
Log.debug(`running ${scriptName}`);
|
||||
eval(pm.scripts[scriptName]);
|
||||
pm.createEndpoint(app, express, scriptName, endpointMap);
|
||||
endpointMap = undefined; // reset
|
||||
}
|
||||
|
||||
// pm.loop()
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function (req, res, next) {
|
||||
next(createError(404));
|
||||
});
|
||||
|
||||
// error handler
|
||||
app.use(function (err, req, res, next) {
|
||||
// set locals, only providing error in development
|
||||
res.locals.message = err.message;
|
||||
res.locals.error = req.app.get("env") === "development" ? err : {};
|
||||
|
||||
// render the error page
|
||||
res.status(err.status || 500);
|
||||
res.render("error");
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
Loading…
Add table
Add a link
Reference in a new issue