Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- // Получаем название файла с логами.
- const fileName = process.argv[2];
- if (!fileName) {
- console.error("Нужно указать путь до файла с логами");
- process.exit(1);
- }
- // Получаем содержимое файла
- let fileContent = fs.readFileSync(fileName, 'utf8');
- fileContent = fileContent.replace(/\r\n/g, "\n");
- let jobs = [];
- // Пример строки, которую будем искать:
- // Completed job b9681316-f55b-7402-6e65-725aa8a68b2c {
- // result: false,
- // status: 'user_hang_up',
- // serviceStatus: null,
- // callBackDetails: null
- // }
- // {
- // recordUrl: 'https://dasha-call-records-public-beta.s3.amazonaws.com/822ed978-3ba9-4267-bf07-ed01e3e2a0a4/call.mp3'
- // }
- const regexp = /recordUrl: '([a-zA-Z0-9\-_\/\.:]+)'\n}\nCompleted job ([a-zA-Z0-9\-]+) {\n.*\n *status: '([a-zA-Z0-9\-_]+)'/g;
- while (match = regexp.exec(fileContent)) {
- const job = match[2];
- const status = match[3];
- const recordUrl = match[1];
- // Пытаемся найти телефон у Job'ы
- // Пример строки, которую будем искать:
- // '85704394-adba-d556-39ce-ef3047c6c874': { prevStatus: null, attempts: 0, phone: '79646472017' },
- const re = new RegExp(`'${job}': { .*, phone: '([0-9]+)' }`);
- const phoneMatch = re.exec(fileContent);
- if (!phoneMatch) {
- console.error(`Не найден телефон у Job'ы ${job}`);
- }
- const phone = phoneMatch
- ? phoneMatch[1]
- : null;
- jobs.push({job, status, phone, recordUrl});
- }
- for (let index = 0; index < jobs.length; index++) {
- const job = jobs[index]
- console.log(`${job.status}\t${job.phone}\t${job.recordUrl}`)
- }