/
Damber
/
hakaton_telegram
Обзор
Документация
Войти
/
Damber
/
hakaton_telegram
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scenes/checkFile.js
54 строки
2 KB
Nikita
fix: errors
22 сен 2024, 09:25
22 сен 2024, 09:25
c4d16ba
Код
Авторство
О чём код?
import {Scenes, Markup} from "telegraf" import {Buttons} from "../classes/Buttons.js"; import {checkDocx} from "../src/checkDocx.js"; import fs from "fs" import axios from "axios"; import {generateReportV1} from "../src/generateReportV1.js"; import {start_message} from "../bot.js"; const checkFile = new Scenes.BaseScene("checkFile"); checkFile.enter(async (ctx, next) => { await ctx.reply("📝Отправте файл формата doc/docx", Markup.inlineKeyboard(Buttons.back('main'))) await next() }); checkFile.action('main', async (ctx, next) => { await ctx.scene.leave() await next() }) checkFile.on('message', async (ctx, next) => { const doc = ctx.update.message.document if(!doc) { await ctx.reply('Отправлен не файл, попробуйте снова') } else if(!doc.file_name.includes('.doc') && !doc.file_name.includes('.docx')) { await ctx.reply('Файл не верного формата, попробуйте снова') } else { const url = await ctx.telegram.getFileLink(doc.file_id) const buffer = await axios({url, responseType: 'arraybuffer'}) .then(res => res.data) .catch(e => { console.log(e.message) return undefined }) if(buffer){ const data = await checkDocx(buffer) const bufferFile = await generateReportV1(data) const fileName = Date.now()+'.docx' await fs.writeFileSync(fileName, bufferFile) await ctx.reply('В файле ниже, я выслал все замечания.', Markup.inlineKeyboard(Buttons.main())) await ctx.replyWithDocument({source: fileName, filename: 'Правки.docx'}) if(!data.title.check) { await ctx.replyWithDocument({source: "./assets/examples/title.docx" }) } await ctx.scene.leave() }else{ await ctx.reply('Файл не удалось прочитать, попробуйте снова') } } }) export {checkFile};