-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgmail_system.gs
85 lines (83 loc) · 2.66 KB
/
gmail_system.gs
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
function mail_arrange() {
var labels = [
{
"filter":"((from:"
+([
].join("|"))
+")) AND !label:script/filter/r1d,d7d",
"read":"1d",
"del":"7d"
},
{
"filter":"from:[email protected] subject:....",
"read":"7d",
"archive":"1m"
},
{
"filter":"from:[email protected]",
"read":"2d",
"archive":"7d"
},
{
"filter":"from:[email protected]",
"read":"2d",
"delete":"14d"
}
];
for (var i in labels) {
params = labels[i];
// Logger.log(labels);
action(params);
}
}
function action(label) {
if ("read" in label) {
var query = (label.filter +" label:unread older_than:" + label.read);
Logger.log("read: "+query);
var threads = GmailApp.search(query);
Logger.log("found " + threads.length + " threads:");
for(var i = 0; i < Math.floor(threads.length/100); i++) {
var this_batch = threads.splice(0, Math.min(threads.length, 100));
GmailApp.markThreadsRead(this_batch);
}
};
if ("del" in label) {
var query = (label.filter +" label:read older_than:" + label.del + " !in:trash");
Logger.log("delete: "+query);
var threads = GmailApp.search(query);
Logger.log("found " + threads.length + " threads:");
for(var i = 0; i <= Math.ceil(threads.length/100); i++) {
var this_batch_size = Math.min(threads.length, 100);
var this_batch = threads.splice(0,this_batch_size);
GmailApp.moveThreadsToTrash(this_batch);
}
};
if ("archive" in label) {
var query = (label.filter +" label:read older_than:"+ label.archive +" in:inbox");
Logger.log("archive: "+query);
var threads = GmailApp.search(query);
Logger.log("found " + threads.length + " threads:");
for(var i = 0; i <= Math.ceil(threads.length/100); i++) {
var this_batch_size = Math.min(threads.length, 100);
var this_batch = threads.splice(0, this_batch_size);
GmailApp.moveThreadsToArchive(this_batch);
}
}
if ("important" in label) {
var query = (label.filter +" label:read older_than:"+ label.archive +" in:inbox");
Logger.log("archive: "+query);
var threads = GmailApp.search(query);
Logger.log("found " + threads.length + " threads:");
for(var i = 0; i <= Math.ceil(threads.length/100); i++) {
var this_batch_size = Math.min(threads.length, 100);
var this_batch = threads.splice(0, this_batch_size);
GmailApp.moveThreadsToImportant(this_batch);
}
}
}