一日分のツイートを1エントリ(?)にまとめて ChangeLog っぽい形式でSpradsheetに保存する。
2017-10-28 (土)
* tweet [Diary]:
00:00 hoge
01:15 fuga
02:30 MT @name @h0k0r0bi hogefuga
03:45 FV fugahoge
記録
IFTTT で自分のツイート、リプライ、ライクを spreadsheet に記録
-
Trriger
- Twitter
- New Tweet by you (retweets, @replies)
- New mention of you
- New liked tweet by you
- Twitter
-
Action
トリガーそれぞれに対して設定- Google drive
- Add row to spreadsheet
- Google drive
整形
GAS で整形。
- inputFormula(): ツイートの先頭に時間を付加する形式になる式を3列目に追加
- copyTweets(): 別シートに3列目をコピー
- clearSheet(): 記録シートをクリア
- inputDate(): 日付とエントリのタイトルを3列目に追加
function executePerDay() {
inputFormula();
copyTweets();
clearSheet('Sheet1');
inputDate();
}
function inputDate() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
var day = d.getDate();
var youbi = d.getDay();
var youbis = ['日', '月', '火', '水', '木', '金', '土'];
sheet.appendRow(["", "Sep"]);
sheet.appendRow(["", "", year + "-" + month + "-" + day + " (" + youbis[youbi] + ")"]);
sheet.appendRow(["", "Sep"]);
sheet.appendRow(["", "", "* tweet [Diary]:"]);
sheet.appendRow(["", "Sep"]);
}
function inputFormula() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var lastRow = sheet.getLastRow();
var range;
for (var i = 1; i <= lastRow; i++) {
range = sheet.getRange(i, 1);
if (range.getValue() == "") {
continue;
}
range = sheet.getRange(i, 3);
if (range.getValue() == "") {
range.setValue("=text(value((REGEXEXTRACT(A" + i + ",\"[^ ]+$\"))),\"HH:mm \") & B" + i);
}
}
}
function copyTweets() {
var fromSheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var lastRow = fromSheet.getLastRow();
var fromRange = fromSheet.getRange(1, 3, lastRow);
var values = fromRange.getValues();
var toSheet = SpreadsheetApp.getActive().getSheetByName('Sheet2');
var toLastRow = toSheet.getLastRow();
var toRange = toSheet.getRange(toLastRow + 2, 1, lastRow);
toRange.setValues(values);
}
function clearSheet(sheetName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
sheet.clearContents();
}
整形の実行トリガー
1日1回0時くらいに実行。