forked from sandoche/Gmail-Filters-Detection
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCode.gs
More file actions
71 lines (55 loc) · 2.22 KB
/
Code.gs
File metadata and controls
71 lines (55 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function buildAddOn(e) {
// Activate temporary Gmail add-on scopes.
var filters = Gmail.Users.Settings.Filters.list('me');
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.messageMetadata.messageId;
var message = GmailApp.getMessageById(messageId);
var body = message.getBody()
var sectionSelected = CardService.newCardSection()
.setHeader("<font color=\"#ea545b\"><b>Applicable Filters</b></font>");
var sectionUnselected = CardService.newCardSection()
.setHeader("<font color=\"#3DA80B\"><b>Unapplicable Filters</b></font>");
var checkboxGroupSelected = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.CHECK_BOX)
.setFieldName('labelsselected');
var checkboxGroupUnselected = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.CHECK_BOX)
.setFieldName('labelsunselected');
var countSelected = 0;
var countUnselected = 0;
for(var i = 0; i < filters.filter.length; i++) {
var query = filters.filter[i].criteria.query;
var regex = new RegExp('"(.*)"', 'gi');
var reg = regex.exec(query)
Logger.log(query + ' ' + reg);
if(reg) {
query = reg[1]
}
if (query && doesTextContainsString(body, query)) {
checkboxGroupSelected.addItem(query, query, doesTextContainsString(body, query));
countSelected++;
}
else if (query && !doesTextContainsString(body, query)) {
checkboxGroupUnselected.addItem(query, query, doesTextContainsString(body, query));
countUnselected++;
}
}
sectionSelected.addWidget(checkboxGroupSelected);
sectionUnselected.addWidget(checkboxGroupUnselected);
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('Gmail Why Filters')
.setImageUrl('http://images2.imagebam.com/f9/88/37/acf1091058702334.png'));
if (countSelected > 0) {
card = card.addSection(sectionSelected)
}
if (countUnselected > 0) {
card = card.addSection(sectionUnselected)
}
card = card.build();
return [card];
}
function doesTextContainsString(text, string) {
return text.toLowerCase().indexOf(string.toLowerCase()) > -1
}