diff --git a/src/index.ts b/src/index.ts index 4d92cef..581c2c7 100644 --- a/src/index.ts +++ b/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) diff --git a/src/lib.ts b/src/lib.ts new file mode 100644 index 0000000..0fa1fb6 --- /dev/null +++ b/src/lib.ts @@ -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 + } +} \ No newline at end of file