refactor: move to lib.ts
This commit is contained in:
35
src/index.ts
35
src/index.ts
@@ -3,6 +3,8 @@ const {ImapFlow} = require('imapflow');
|
|||||||
const simpleParser = require('mailparser').simpleParser
|
const simpleParser = require('mailparser').simpleParser
|
||||||
const {Telegraf} = require('telegraf');
|
const {Telegraf} = require('telegraf');
|
||||||
|
|
||||||
|
import {parseMessage} from './lib'
|
||||||
|
|
||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
|
|
||||||
const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);
|
const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);
|
||||||
@@ -41,36 +43,7 @@ const main = async () => {
|
|||||||
const parsed = await simpleParser(email)
|
const parsed = await simpleParser(email)
|
||||||
//console.log('📌', chalk.cyan('Message:'), chalk.yellow(parsed.text));
|
//console.log('📌', chalk.cyan('Message:'), chalk.yellow(parsed.text));
|
||||||
|
|
||||||
let messageArr = parsed.text.slice().split('\n').filter((el: string) => el !== '')
|
let {title, groupName, subject, user, estimatedDate, estimatedTime} = parseMessage(parsed.text)
|
||||||
|
|
||||||
const title =
|
|
||||||
messageArr[1]
|
|
||||||
.slice()
|
|
||||||
.split(' ')
|
|
||||||
.at(-1)
|
|
||||||
|
|
||||||
const groupName =
|
|
||||||
messageArr[1]
|
|
||||||
.slice()
|
|
||||||
.replace('В АС СТП на Вашу группу Адлер ', '')
|
|
||||||
.replace(' назначено обращение', '')
|
|
||||||
.split(' ')
|
|
||||||
.slice(0, -1)
|
|
||||||
.join(' ')
|
|
||||||
|
|
||||||
const user = messageArr[4]
|
|
||||||
|
|
||||||
const subject = messageArr[6]
|
|
||||||
|
|
||||||
const estimatedDate =
|
|
||||||
messageArr[7]
|
|
||||||
.slice()
|
|
||||||
.split(' ')[3]
|
|
||||||
|
|
||||||
const estimatedTime =
|
|
||||||
messageArr[7]
|
|
||||||
.slice()
|
|
||||||
.split(' ')[4]
|
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`📌 Новое обращение: ${title}`, '\n',
|
`📌 Новое обращение: ${title}`, '\n',
|
||||||
@@ -87,7 +60,7 @@ const main = async () => {
|
|||||||
`${subject}\n` +
|
`${subject}\n` +
|
||||||
`Время выполнения: ${estimatedDate} ${estimatedTime}\n`
|
`Время выполнения: ${estimatedDate} ${estimatedTime}\n`
|
||||||
|
|
||||||
if (parsed.text) {
|
if (preparedMessage) {
|
||||||
bot.telegram.sendMessage(process.env.TELEGRAM_GROUP_ID, preparedMessage)
|
bot.telegram.sendMessage(process.env.TELEGRAM_GROUP_ID, preparedMessage)
|
||||||
.then()
|
.then()
|
||||||
.catch(console.error)
|
.catch(console.error)
|
||||||
|
|||||||
42
src/lib.ts
Normal file
42
src/lib.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
export function parseMessage(message: string) {
|
||||||
|
|
||||||
|
let messageArr = message.slice().split('\n').filter((el: string) => el !== '')
|
||||||
|
|
||||||
|
const title =
|
||||||
|
messageArr[1]
|
||||||
|
.slice()
|
||||||
|
.split(' ')
|
||||||
|
.at(-1)
|
||||||
|
|
||||||
|
const groupName =
|
||||||
|
messageArr[1]
|
||||||
|
.slice()
|
||||||
|
.replace('В АС СТП на Вашу группу Адлер ', '')
|
||||||
|
.replace(' назначено обращение', '')
|
||||||
|
.split(' ')
|
||||||
|
.slice(0, -1)
|
||||||
|
.join(' ')
|
||||||
|
|
||||||
|
const user = messageArr[4]
|
||||||
|
|
||||||
|
const subject = messageArr[6]
|
||||||
|
|
||||||
|
const estimatedDate =
|
||||||
|
messageArr[7]
|
||||||
|
.slice()
|
||||||
|
.split(' ')[3]
|
||||||
|
|
||||||
|
const estimatedTime =
|
||||||
|
messageArr[7]
|
||||||
|
.slice()
|
||||||
|
.split(' ')[4]
|
||||||
|
|
||||||
|
return {
|
||||||
|
title,
|
||||||
|
groupName,
|
||||||
|
user,
|
||||||
|
subject,
|
||||||
|
estimatedDate,
|
||||||
|
estimatedTime
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user