Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 24 additions & 12 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ const { GoogleSpreadsheet } = require("google-spreadsheet");
const creds = require("./config/zoom-recording-tracker-6a8bd724ca99.json");

/* DIRTY REGEX FOR PULLING THE URL AND PASSWORD */
const regex = /(?<=share this recording with viewers\:\n)(.*)|(?<=Passcode\:\n)(.*)/g;
//const regex = /(?<=share this recording with viewers\:\n[<]a href=["])(.*)|(?<=Passcode\:\n)(.*)/g;
const regex = /share this recording with viewers((.|\n)*)">((.|\n)*)(<\/a>)((.|\n)*)Passcode: (.*)/g;
/* ----------------------------- */
// readXML.loadDoc();

Expand Down Expand Up @@ -45,16 +46,27 @@ mailListener.on("error", function (err) {
mailListener.on("mail", async function (mail, seqno, attributes) {
let newMessage = "";
if (mail.from[0].address == conf.email && mail.subject == conf.catchSubject) {
let parsedMessage = mail.text.match(regex);
if (parsedMessage && parsedMessage.length === 2){
console.log("mail:", mail)
mail.html = mail.html.replace(/<br\/>/g, '')
console.log("***mail.html with linebreaks replaced***", mail.html)
// matchAll gives you regex groups, and then we convert to array:q
let parsedMessage = mail.html.matchAll(regex);
console.log("parsed message:", JSON.stringify(parsedMessage))
parsedMessage = [...parsedMessage]; // convert to array
console.log("parsed message array:", parsedMessage)
if (parsedMessage && parsedMessage[0].length > 8){
try {
let sheet = await sheetsConnect();
await updateRow(sheet, parsedMessage);
let password = parsedMessage[0][8];
let url = parsedMessage[0][3];
await updateRow(sheet, password, url);
} catch (err) {
console.log(err);
}

}
} else {
console.log("FAILED TO MATCH REGEX")
}
}
});

Expand All @@ -63,7 +75,7 @@ mailListener.on("mail", async function (mail, seqno, attributes) {
start = header column position (i.e. "URL" )
*/
function firstEmptyRow(sheet) {
for (let i = sheetParams.headerRow; i < sheet.gridProperties.rowCount; i++) {
for (let i = 5; i < sheet.gridProperties.rowCount; i++) {
let thisCell = sheet.getCell(i, sheetParams.urlCol);
if (thisCell.value === null) {
return i;
Expand All @@ -73,14 +85,14 @@ function firstEmptyRow(sheet) {
/*
using first empty row, populate with values passed from imap checker
*/
async function updateRow(sheet, parsedMessage, topic="UPDATE TOPIC") {
async function updateRow(sheet, password, url, topic="UPDATE TOPIC") {
try {
await sheet.loadCells("A:D");
let newRow = firstEmptyRow(sheet);
sheet.getCell(newRow, sheetParams.dateCol).value = new Date().getDateForHTML();
sheet.getCell(newRow, 1).value = require('./topic.json').TOPIC;
sheet.getCell(newRow, sheetParams.passCol).value = parsedMessage[1];
sheet.getCell(newRow, sheetParams.urlCol).value = parsedMessage[0];
sheet.getCell(newRow, 1).value = require('./config/topic.json').TOPIC;
sheet.getCell(newRow, sheetParams.passCol).value = password;
sheet.getCell(newRow, sheetParams.urlCol).value = url;
sheet.saveUpdatedCells();
} catch (err) {
console.log(err);
Expand All @@ -98,8 +110,8 @@ async function sheetsConnect() {
}
}
Date.prototype.getDateForHTML = function () {
return `${this.getUTCFullYear()}/${(this.getUTCMonth() + 1)
return `${this.toLocaleString('en-us', {weekday: 'long' })}, ${this.getUTCFullYear()}/${(this.getUTCMonth() + 1)
.toString()
.padStart(2, "0")}/${this.getUTCDate().toString().padStart(2, "0")}`;
.padStart(2, "0")}/${this.getDate().toString().padStart(2, "0")}`;
};

3 changes: 0 additions & 3 deletions topic.json

This file was deleted.