-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.gs
86 lines (76 loc) · 2.98 KB
/
main.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
86
function onOpen(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var menuItems = [
{name: "加入事件",functionName: "addEvents"}
];
sheet.addMenu('建立日曆事件', menuItems);
}
function addEvents(){
// 讀取「會議列表」
var Meet = SpreadsheetApp.openById(GoogleSheetToken_Meetlist);
var sheet_List = Meet.getSheetByName('會議列表');
var range = sheet_List.getDataRange();
var values = range.getValues();
// 讀取「通訊錄」
var Directory = SpreadsheetApp.openById(GoogleSheetToken_Contactlist);
var values1 = Directory.getRange('通訊錄!G2:G26').getValues();
var guests = '';
for (var i = 0; i < values1.length; i++){
guests = guests + ',' + values1[i][0];
}
for (var i = 1; i < values.length; i++){
var Status = sheet_List.getRange(i+1,9).getValues();
if (Status != '已發布'){
// 建立 Google Calendar 事件
var calendar = CalendarApp.getCalendarById(GoogleCalendarToken);
var eventTitle = '[' + values[i][2] + '] ' + values[i][1];
var startTime = values[i][5];
var endTime = values[i][6];
var eventColor = 11;
var eventTime = 60;
var options = {description: values[i][3], location: values[i][4],sendInvites: true, guests:guests};
var event = calendar.createEvent(eventTitle, startTime, endTime, options).setColor(eventColor).addPopupReminder(eventTime);
var eventId = event.getId();
// 變更狀態
sheet_List.getRange(i+1,9).setValue('已發布');
sheet_List.getRange(i+1,10).setValue(eventId);
// 建立訊息格式
var startTime_format = Utilities.formatDate(values[i][5], 'GMT+8' , 'yyyy/MM/dd HH:mm');
var LineText = '';
LineText =
'✗ 受文者:全體幹部(含顧問)\n' +
'✗ 主旨:' + eventTitle + '\n' +
'✗ 時間:' + startTime_format + '\n' +
'✗ 地點:' + values[i][4] + '\n' +
'✗ 形式:' + values[i][3] + '\n\n' +
'☀ 會議紀錄/大綱:' + '\n' +
'https://hackmd.io/@HackerSir/第七屆會議記錄' + '\n\n' +
'☀ 會議請假表單:' + '\n' +
'https://url.hackersir.org/leave' + '\n\n' +
'☀ 無法參與請『務必』填寫請假表單' + '\n\n' +
'🔥 看完請至 GoMail 收信,並選擇自己的出席情況 ( ´Д`)y━・~~';
sendToLine(LineText);
sendToDiscord(LineText);
}
}
}
// 建立 Line Notify 通知
function sendToLine(LineText){
var token = lineToken;
var options =
{
"method":"post",
"headers":{"Authorization":"Bearer " + token},
"payload":{'message':'\n' + LineText}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}
// 建立 Discord Webhook 通知
function sendToDiscord(LineText) {
var discordUrl = discordToken;
var options = {
method: "post",
payload:{content: '[會議公告]\n\n' + LineText}
};
var response = UrlFetchApp.fetch(discordUrl, options);
}