Headline-Tickerの取得記事一覧を見るSeaHorseスクリプト
時間を無駄にしてきたので
SleipnirでのRSSといえばHeadline-Readerばかりが話題になりがちですね。
かくいう私も愛用しておりますけど。
ただそれと同じくらいHeadline-Tickerにも普段お世話になっています。
ただ、個人的に問題があって作業しながら横目でチラッと見て、手が空いたときにマウスホイールでスクロールして探すってことがよくあります。
でも、そんな時に限って見つからない1周しても見つからない。
さらに、10数秒前に見かけた記事でも割とあるので困りものです。
というわけで、一覧を出力するSeeaHorseスクリプトを書きました。
インスト後に"about:Headline-Ticker-Feed-List"開いてみてね。
Headline-TickerFeedList.user.js
// ==UserScript== // @name Headline-Ticker Feed List // @author 破楽戸.* // @include about:Headline-Ticker-Feed-List // @type SleipnirScript // ==/UserScript== (function() { document.body.removeChild(document.body.firstChild); var d = document.createElement("div"); d.style.width = Math.floor(document.body.clientWidth / 350) * 350 + "px"; d.style.margin = "0 " + (((document.body.clientWidth - Math.floor(document.body.clientWidth / 350) * 350) / 2) - 10) + "px"; document.body.appendChild(d); var pnir = sleipnir.api; var bool = true; var fso = sleipnir.CreateObject("Scripting.FileSystemObject"); var strm = sleipnir.CreateObject("ADODB.Stream"); var prefs = pnir.AppPath+"..\\prefs\\plugins.ini"; if(!fso.FileExists(prefs)) { bool = false; } strm.type = 2; strm.charset = "utf-8"; strm.open(); strm.loadFromFile(prefs); var ini = strm.readText(-1); strm.close(); var ls = ini.split(/\r\n/); for(var i = 0; i < ls.length; i++){ var l = ls[i]; if(l.match(/^Extension\d*=HeadlineTickerExtension\.fx/) != null) { bool = true; break; }else if(l.match(/^Extension\d*=HeadlineToolbarExtension\.fx/) != null) { bool = true; break; }else { bool = false; } } if(bool) { var path = UserFolder + "headlineticker\\temp\\headlineticker.tic"; if(fso.FileExists(path)){ strm.type = 2; strm.charset = "utf-8"; strm.open(); strm.loadFromFile(path); var text = strm.readText(-1); strm.close(); var lines = text.split(/\r\n/); for(var i = 0; i < lines.length; i++){ var line = lines[i]; var txt = line.split("\t"); var div = document.createElement("div"); div.style.border = "3px solid #94a6c0"; div.style.background = "ffffcc"; div.style.fontSize = "90%"; div.style.margin = "15px"; div.style.padding = "0.5em"; div.style.width = "320px"; div.style.height = "240px"; div.style.float = "left"; div.style.overflow = "auto"; /* txt[0] : 取得時間(TDateTime型) txt[1] : サイト txt[2] : タイトル txt[3] : RSS URI txt[4] : ???? txt[5] : 概要 */ if(txt[2].match(/^(PR:|AD:)/) == null){ var d_num = txt[0].length != 0 ? numberToDate(parseInt(txt[0])) : "--月--日"; var t_num = txt[0].length != 0 ? numberToTime(parseFloat(txt[0]) - parseInt(txt[0])) : "--時--分"; var summary = txt[5]; if(summary.length==0) { summary = "概要はありません(´・ω・`)"; } div.innerHTML = txt[1]+" "+d_num+" "+t_num+"<br /><a href='"+txt[3]+"'>◇"+txt[2]+"◇</a><br /><br />"+summary; d.appendChild(div); } } }else { alert("ファイルが存在しないよ!"); } }else { alert("Headline-Ticker がインストールされてないかオフになっているよ"); } function numberToDate(n) { var num = new Date(new Date("1899/12/30").getTime() + n * 24 * 60 * 60 * 1000); return wrapDigits(num.getMonth()+1) + "月" + wrapDigits(num.getDate()) + "日"; } function numberToTime(n) { var num = n,cnt = -1,m = 1/(24*60); while(num >= 0) { num -= m; cnt++; } return wrapDigits(parseInt(cnt/60)) + ":" + wrapDigits(parseInt(cnt%60)); } function wrapDigits(num) { num = String(num); return (num.length < 2) ? new Array((2 - num.length) + 1).join("0") + num : num; } }());
時間の計算ミスってて1分くらいずれる場合があるんだけど気にしない。
そういや、TDateTime型って"1989/12/30 00:00:00"から始まるのね。
たまに出る謎の日付「12月30日」の理由がやっと分かった。