Dev #12

Merged
redrockjs merged 2 commits from dev into main 2024-05-17 05:55:59 +00:00
2 changed files with 46 additions and 31 deletions
Showing only changes of commit f0f4d9479c - Show all commits

View File

@@ -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
View 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
}
}