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 {Telegraf} = require('telegraf');
|
||||
|
||||
import {parseMessage} from './lib'
|
||||
|
||||
require('dotenv').config()
|
||||
|
||||
const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);
|
||||
@@ -41,36 +43,7 @@ const main = async () => {
|
||||
const parsed = await simpleParser(email)
|
||||
//console.log('📌', chalk.cyan('Message:'), chalk.yellow(parsed.text));
|
||||
|
||||
let messageArr = parsed.text.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]
|
||||
let {title, groupName, subject, user, estimatedDate, estimatedTime} = parseMessage(parsed.text)
|
||||
|
||||
console.log(
|
||||
`📌 Новое обращение: ${title}`, '\n',
|
||||
@@ -87,7 +60,7 @@ const main = async () => {
|
||||
`${subject}\n` +
|
||||
`Время выполнения: ${estimatedDate} ${estimatedTime}\n`
|
||||
|
||||
if (parsed.text) {
|
||||
if (preparedMessage) {
|
||||
bot.telegram.sendMessage(process.env.TELEGRAM_GROUP_ID, preparedMessage)
|
||||
.then()
|
||||
.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