Skip to content

Instantly share code, notes, and snippets.

@LightBells
Created April 2, 2019 13:32
Show Gist options
  • Save LightBells/8eca45e7a34424721533448e33b77216 to your computer and use it in GitHub Desktop.
Save LightBells/8eca45e7a34424721533448e33b77216 to your computer and use it in GitHub Desktop.
Code.gs
var LINE_ACCESS_TOKEN = 'unQaRFjsqnnhwMbU0SEHsJGM6vWwtGtDhv8Z9LseWdp'
function makeRead(){
contestRegister();
importantNotify();
var myThreads = GmailApp.search('is:unread', 0, 100);
var myMessages = GmailApp.getMessagesForThreads(myThreads);
for (var i in myMessages){
for (var j in myMessages[i]){
myMessages[i][j].markRead();
}
}
}
function importantNotify() {
var FindSubject = 'is:important is:unread'
var myThreads = GmailApp.search(FindSubject,0,10);
var myMessages = GmailApp.getMessagesForThreads(myThreads)
for (var i in myMessages){
for (var j in myMessages[i]){
var strSubject = myMessages[i][j].getSubject();
var strMessage = myMessages[i][j].getPlainBody();
lineNotify(strSubject + '\n' + strMessage);
myMessages[i][j].markRead();
}
}
}
function contestRegister() {
var FindSubject = 'is:unread subject:(Atcoder * Contest ???)'
var myThreads = GmailApp.search(FindSubject,0,1);
var myMessages = GmailApp.getMessagesForThreads(myThreads)
var defaultCalendar = CalendarApp.getDefaultCalendar()
for (var i in myMessages){
for (var j in myMessages[i]){
var strSubject = myMessages[i][j].getSubject();
var strMessage = myMessages[i][j].getPlainBody();
var strDate = strMessage.match(/・開始時刻: (\d{1,2})月(\d{1,2})日(.曜日) (\d{2}):(\d{2})/);
var strTime = strMessage.match(/・コンテスト時間: (\d+)|(未定).*分/);
Logger.log(strTime);
if (Date!=null){
var eventDate = new Date();
eventDate.setMonth(Number(strDate[1])-1);
eventDate.setDate(Number(strDate[2]));
eventDate.setHours(Number(strDate[3]),Number(strDate[4]));
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}
if (!strMessage.includes('未定'))
var endTime = new Date(eventDate.getTime()+60000*Number(strTime[1]));
else
var endTime = new Date(eventDate.getTime()+60000*120);
var option = {
description:strMessage
}
defaultCalendar.createEvent(strSubject,eventDate,endTime,option);
if (!strMessage.includes('未定'))
lineNotify(strSubject + '\n' + strDate[0] + '\n' + strTime[0]);
else
lineNotify(strSubject + '\n' + strDate[0] + '\n');
myMessages[i][j].markRead();
}
}
}
}
function lineNotify(str){
var options =
{
"method" : "post",
"payload" : "message=" + str,
"headers" : {"Authorization" : "Bearer "+ LINE_ACCESS_TOKEN}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment