no-image

Twitter検索を特定キーワード+昨日や〇日前など相対日で検索できるブックマークレ ット

Twitter検索は相対日検索(〇日前)などに対応していないのでブックマークレットで作りました。

javascript: 以降のコードをコピーして、ブックマークのURL欄に貼り付けて登録すると使えます。
営業日をまたいで検索できるようになっています。
例えば1日前(daysを-1にしたとき)を月曜日に取得したときは、金曜日以降のツイートを検索してくれます。

この辺、あんまりちゃんと作ってないので、コメントで要望いただければ改良します。

javascript:
var days = -1; /* 何日前からのツイートを表示するか*/
var keyword = 'キーワード'; /* 検索キーワード */
var date = new Date();
var date_str = datetostr(workday(date,days), 'Y-MM-DD', false); var url = 'https://twitter.com/search?q='+ keyword +' since%3A' + date_str + '&src=typed_query&f=live';
document.location.href=encodeURI(url);

/* 日付を決まった表示型に変更する関数 */
function datetostr(date, format, is12hours) {
var weekday = ["日", "月", "火", "水", "木", "金", "土"];
if (!format) {
format = 'YYYY/MM/DD(WW) hh:mm:dd';
}
var year = date.getFullYear();
var month = (date.getMonth() + 1);
var day = date.getDate();
var weekday = weekday[date.getDay()];
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();

var ampm = hours < 12 ? 'AM' : 'PM';
if (is12hours) {
hours = hours % 12;
hours = (hours != 0) ? hours : 12;
}

var replaceStrArray = {
'YYYY': year,
'Y': year,
'MM': ('0' + month).slice(-2),
'M': month,
'DD': ('0' + day).slice(-2),
'D': day,
'WW': weekday,
'hh': ('0' + hours).slice(-2),
'h': hours,
'mm': ('0' + minutes).slice(-2),
'm': minutes,
'ss': ('0' + seconds).slice(-2),
's': seconds,
'AP': ampm,
};

var replaceStr = '(' + Object.keys(replaceStrArray).join('|') + ')'; var regex = new RegExp(replaceStr, 'g');

ret = format.replace(regex, function (str) {
return replaceStrArray[str];
});

return ret;
}
/* 営業日を避ける関数 */
function workday(date, days) {
var daysAgo = new Date(date.setDate(date.getDate() + days)); var return_date;
if (daysAgo.getDay() == 0 ) {
if (days < 0) {
return_date = daysAgo.setDate(daysAgo.getDate() - 2); } else {
return_date = daysAgo.setDate(daysAgo.getDate() + 1); }
} else if (daysAgo.getDay() == 6) {
if (days < 0) {
return_date = daysAgo.setDate(daysAgo.getDate() - 1); } else {
return_date = daysAgo.setDate(daysAgo.getDate() + 2); }
} else {
return_date = daysAgo;
}
return_date = new Date(return_date);
return return_date;
}
pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus