require('dotenv').config();

const logger = require('perfect-logger');
// import express from 'express';
const express = require('express')
const basicAuth = require('express-basic-auth')

const app = express();

let usersList = {
  "Sarah": "TEST",
  "Karl": "TEST"
}
const users = {
  users: usersList,
  challenge: true
}

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.get('/', basicAuth(users), (req, res) => {
  return res.send('Received a GET HTTP method');
});

app.listen(process.env.PORT, () =>
  console.log(`Example app listening on port ${process.env.PORT}!`),
);

const token = process.env.BOT_TOKEN;
const name = process.env.BOT_NAME;

// Configure Settings
logger.initialize(name + "_bot", {
  logLevelFile: 0,                    // Log level for file
  logLevelConsole: 0,                 // Log level for STDOUT/STDERR
  logDirectory: 'logs/',              // Log directory
  // customBannerHeaders: 'This is a custom banner'  // Custom Log Banner
});

const TelegramBot = require('node-telegram-bot-api');

const common = require('./data/bot/lib/common')
const questions = require('./data/bot/lib/questions')
const requests = require('./data/bot/lib/requests')
const bot_welcome = require('./data/bot/functions/welcomeMesage')
const bot_faq_whatAppToUse = require('./data/bot/functions/faq/whatAppToUse')
const bot_faq_subscription = require('./data/bot/functions/faq/subscriptions')
const bot_subStatus = require('./data/bot/functions/requests/updateSubStatus')
const shortcuts = require('./data/bot/lib/shorcuts')


let commands = require('./data/group/commands')
let navigation = require('./data/group/FAQ')
let chat = require('./data/group/chat')
let jointArray = navigation.concat(chat)


const bot = new TelegramBot(token, { polling: true });

bot.on('new_chat_members', (msg) => {
  bot_welcome.welcomeMessage(bot, msg, logger)
});

bot.on('message', (msg) => {
  if (msg.text && msg.text.toString().includes("/sub_status")) {
    questions.subStatus(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/football_today")) {
    requests.football_today(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/joke")) {
    requests.joke(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/updates_page")) {
    questions.updates_page(bot, msg, logger)
  }

  if (msg.text && msg.text.toString() === "- What player for my sub?") {
    bot_faq_whatAppToUse.main(bot, msg, logger)
  }
  bot_faq_whatAppToUse.appSwitch(bot, msg, logger)

  if (msg.text && msg.text.toString() === "- Subscription Options") {
    bot_faq_subscription.newPrices(bot, msg, logger)
  }

  for (const x of jointArray) {
    if (msg.text && msg.text.toString() === x.NAME) {
      common.chat(bot, msg, x.NAME, logger)
    }
  }

  for (const x of commands) {
    if (msg.text && msg.text.toString().includes(x.NAME)) {
      common.commands(bot, msg, x.NAME, logger)
    }
  }

  if (msg.text && msg.text.toString().includes("/password")) {
    match = msg.text.substring(10);
    questions.password(bot, msg, match, logger)
  }

  if (msg.text && msg.text.toString().toLowerCase().includes("set sub")) {
    bot_subStatus.setSubStatus(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/maintenance")) {
    shortcuts.maintenance(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/unlinked_code")) {
    shortcuts.unlinked_code(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/vpn")) {
    shortcuts.vpn(bot, msg, logger)
  }

  if (msg.text && msg.text.toString().includes("/installing_unlinked")) {
    shortcuts.installing_unlinked(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/app_videos")) {
    shortcuts.app_videos(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/webplayer")) {
    shortcuts.webplayer(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/what_player_to_use")) {
    shortcuts.what_player_to_use(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/plex")) {
    shortcuts.plex(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/ios")) {
    shortcuts.ios(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/android")) {
    shortcuts.android(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/request_vod")) {
    shortcuts.vodReq(bot, msg, logger)
  }
  // if (msg.text && msg.text.toString().includes("/firesticks")) {
  //   shortcuts.firesticks(bot, msg, logger)
  // }
  if (msg.text && msg.text.toString().includes("/sports")) {
    shortcuts.sports(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/tv_today")) {
    requests.tv_today(bot, msg, logger)
  }
  if (msg.text && msg.text.toString().includes("/install_bob15")) {
    shortcuts.bob15(bot, msg, logger)
  }
})