Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //RJ Alcoriza - Ad-Lib Digital
- //Email parser for ad-weave
- //resource: https://developers.google.com/apps-script/reference/gmail
- var LABEL_PENDING = "pending";
- var LABEL_PARSED = "parsed";
- function processPending_(sheet) {
- // Get out labels by name
- var label_pending = GmailApp.getUserLabelByName(LABEL_PENDING);
- var label_parsed = GmailApp.getUserLabelByName(LABEL_PARSED);
- // The threads currently assigned to the 'pending' label
- var threads = label_pending.getThreads();
- // Process each thread in turn
- for (var t in threads) {
- var thread = threads[t];
- // Get the messages on the thread
- var messages = thread.getMessages();
- for (var mss in messages) {
- //added function to parse unread messages in case the platform isn't creating new threads
- if(messages[mss].isUnread()){
- var emailBody = messages[mss].getBody();
- var emailSubject = messages[mss].getSubject();
- //Parse Subject for campaign creator:
- var campaignCreatorRaw = emailSubject.match(/\w*by\s.+\w*:/g).toString();
- var campaignCreator = campaignCreatorRaw.substring(3,campaignCreatorRaw.length-12)
- //Parse Subject for market:
- var marketRaw = emailSubject.match(/:\s.+/g).toString();
- var market = marketRaw.substring(2,marketRaw.length);
- //Parse mail body for campaign name:
- var campaignNameRaw = emailBody.match(/<li>Campaign\s.+[<]/g).toString();
- var campaignName = campaignNameRaw.substring(4,campaignNameRaw.length-1)
- //Add the email contents to sheet
- sheet.appendRow([campaignCreator,market,campaignName]);
- //Mark the message to read to avoid parsing it again
- messages[mss].markRead();
- }
- }
- // Set to 'parsed' by changing the thread label
- thread.removeLabel(label_pending);
- thread.addLabel(label_parsed);
- }
- }
- function scrapeEmail() {
- var ss = SpreadsheetApp.openById("1-RVBkAIica94tLn83mevG5653iRMgiyxLy46iM6EGiA");
- var sheetNm = ss.getSheetByName('mails_raw');
- processPending_(sheetNm);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement