Skip to content

Instantly share code, notes, and snippets.

@tajuszk
Created November 6, 2020 23:03
Show Gist options
  • Save tajuszk/b75f6cc57952246a35d6b6c79613ed28 to your computer and use it in GitHub Desktop.
Save tajuszk/b75f6cc57952246a35d6b6c79613ed28 to your computer and use it in GitHub Desktop.
/**
いいね or RT 機能
① 検索ワードをスプレッドシートから取得する
② 検索ワードをTwitterで検索する(たくさん取れてしまうので「直近10分間」の検索を10分毎に行う)
③ ツイートに いいね or RT をする
④ 他に検索ワードがあれば②に戻る
*/
function main () {
// ① 検索ワードをスプレッドシートから取得する
var searchWords = pickUpSearchWords();
// searchWordsの中身は
// [ [ '投稿内容', 'いいね or RT', '最終TweetId', '実行回数'] , [ '投稿内容', 'いいね or RT', '最終TweetId', '実行回数'],....,]
// という形式になっているので1つずつ見ていく
for (var i = 0, il = searchWords.length; i < il; i++ ) {
var searchWord = searchWords[i][0];
var type = searchWords[i][1];
var lastTweetId = searchWords[i][2];
// !!!!!! 追加 !!!!!!!
var limit = searchWords[i][3];
// ② Twitterで検索する
var tweetList = findTweets(searchWord, lastTweetId);
var count = 0
// ③ 複数件ツイートを取得されるので for を使って1つずつツイートを取り出し いいね or RT をする
for (var j = 0, jl = tweetList.length; j < jl; j++ ) {
var tweet = tweetList[j];
if (tweet.id_str > lastTweetId) {
lastTweetId = tweet.id_str;
}
// !!!!!! 追加 !!!!!!!
if (count == limit) {
// lastTweetIdを出来るだけ新しくしたい場合は continue;
// 次回以降の実行で続きのツイートを使いたい場合は break;
continue;
}
count++;
if (type == 'いいね') {
putFavorite (tweet);
} else if (type == 'RT') {
putRetweet (tweet);
}
}
// 最新のツイートIDを保存して重複処理をしないようにする
var titleRow = 1; // 『検索ワード』とか書いている部分の行数
var lastTweetIdCol = 3; // 『最終TweetId』の列までなので3列目まで
var updateCell = sheetData.getRange(i + 1 + titleRow, lastTweetIdCol, 1, 1); // i = 0 の時1行目なので+1してる
updateCell.setValue(lastTweetId);
}
}
// 検索ワードをスプレッドシートから取得する
function pickUpSearchWords () {
var titleRow = 1; // 『検索ワード』とか書いている部分の行数
var startRow = 1 + titleRow; // 1行目は『検索ワード』とか書いているので2行目から
var startCol = 1;
var endRow = sheetData.getLastRow() - titleRow; // 最後の行まで(2行目から始まっているので-1している)
// !!!!!! 変更 !!!!!!!
var endCol = 4; // 『実行回数』の列までなので4列目まで
// 一括で取得する
var cells = sheetData.getRange(startRow, startCol, endRow, endCol).getValues();
// cellsの中身は
// [ [ '投稿内容', 'いいね or RT', '最終TweetId', '実行回数'] , [ '投稿内容', 'いいね or RT', '最終TweetId', '実行回数'] ,....,]
// という形式になる
return cells;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment