Gistrec

Untitled

Mar 30th, 2021 (edited)
319
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const fs = require('fs');
  2.  
  3. // Получаем название файла с логами.
  4. const fileName = process.argv[2];
  5. if (!fileName) {
  6.     console.error("Нужно указать путь до файла с логами");
  7.     process.exit(1);
  8. }
  9.  
  10. // Получаем содержимое файла
  11. let fileContent = fs.readFileSync(fileName, 'utf8');
  12. fileContent = fileContent.replace(/\r\n/g, "\n");
  13.  
  14. let jobs = [];
  15. // Пример строки, которую будем искать:
  16. // Completed job b9681316-f55b-7402-6e65-725aa8a68b2c {
  17. //    result: false,
  18. //    status: 'user_hang_up',
  19. //    serviceStatus: null,
  20. //    callBackDetails: null
  21. //  }
  22. //  {
  23. //    recordUrl: 'https://dasha-call-records-public-beta.s3.amazonaws.com/822ed978-3ba9-4267-bf07-ed01e3e2a0a4/call.mp3'
  24. //  }
  25. const regexp = /recordUrl: '([a-zA-Z0-9\-_\/\.:]+)'\n}\nCompleted job ([a-zA-Z0-9\-]+) {\n.*\n *status: '([a-zA-Z0-9\-_]+)'/g;
  26. while (match = regexp.exec(fileContent)) {
  27.     const job = match[2];
  28.     const status = match[3];
  29.     const recordUrl = match[1];
  30.  
  31.     // Пытаемся найти телефон у Job'ы
  32.     // Пример строки, которую будем искать:
  33.     // '85704394-adba-d556-39ce-ef3047c6c874': { prevStatus: null, attempts: 0, phone: '79646472017' },
  34.     const re = new RegExp(`'${job}': { .*, phone: '([0-9]+)' }`);
  35.     const phoneMatch = re.exec(fileContent);
  36.     if (!phoneMatch) {
  37.         console.error(`Не найден телефон у Job'ы ${job}`);
  38.    }
  39.    const phone = phoneMatch
  40.        ? phoneMatch[1]
  41.        : null;
  42.  
  43.    jobs.push({job, status, phone, recordUrl});
  44. }
  45.  
  46. for (let index = 0; index < jobs.length; index++) {
  47.    const job = jobs[index]
  48.    console.log(`${job.status}\t${job.phone}\t${job.recordUrl}`)
  49. }
Comments
  • User was banned
Add Comment
Please, Sign In to add comment