del.icio.usがアップグレード
URLもhttp://del.icio.us/からhttp://delicious.com/に。URLは前のほうが好きだったんだがなぁ。それと、一部機能がJavaScriptが有効じゃないと使えないのはダメだろ。
んで、APIも微妙に変わってるようなので、手元のスクリプトを一部修正した。
SBMCommentsViewer
880行目~906行目を以下のように修正。
var delicious_rss = "http://delicious.com/rss/url/";
var delicious_url = "http://delicious.com/";
var delicious_favicon = "http://delicious.com/favicon.ico";
var delicious_page = "http://delicious.com/url/" + MD5_hexhash(uri.replace(/%23/g, '#'));
function dlLoadRSS() {
GM_xmlhttpRequest({
method: "GET",
url: delicious_rss + MD5_hexhash(uri.replace(/%23/g, '#')),
onload: function(response) {
var r;
var comments = [];
//var tags = [];
if (r=response.responseText.match(/<item>[\s\S]*?<\/item>/mg)) {
comment_area.addCount(r.length, delicious_favicon, delicious_page);
var len = (r.length < MAX_GET_COUNT) ? r.length : MAX_GET_COUNT;
for (var i=0; i<len; i++){
r[i].match(/<item>\s*<title>[^<]+<\/title>\s*<pubDate>([^<]*)<\/pubDate>[\s\S]*?<link>[^<]+<\/link>\s*<dc:creator><!\[CDATA\[([^\]]+)\]\]><\/dc:creator>[\s\S]*?(?:<description>([^<]*)<\/description>\s*)?((?:\s*<category[^>]*?>[^<]*?<\/category>)*)\s*<\/item>/ );
var date = RegExp.$1;
var user = RegExp.$2;
var comment = RegExp.$3;
var categories = RegExp.$4;
var tags = [];
date.match( /^[a-z]+, (\d+) ([a-z]+) (\d{4}) (\d\d):(\d\d):(\d\d).*?$/i );
var d = RegExp.$1;
var yyyy = RegExp.$3;
var hh = RegExp.$4;
var mm = RegExp.$5;
var ss = RegExp.$6;
var m = RegExp.$2;
m = m.replace( /Jan/i, "01" )
.replace( /Feb/i, "02" )
.replace( /Mar/i, "03" )
.replace( /Apr/i, "04" )
.replace( /May/i, "05" )
.replace( /Jun/i, "06" )
.replace( /Jul/i, "07" )
.replace( /Aug/i, "08" )
.replace( /Sep/i, "09" )
.replace( /Oct/i, "10" )
.replace( /Nov/i, "11" )
.replace( /Dec/i, "12" )
;
date = new Date(yyyy, m, d, hh, mm, ss );
if(categories){
categories.replace( /<category[^>]*?>([^<]*?)<\/category>/g,
function( $0, tag ) { tags.push( tag ); }
);
}
if(comment.match(/<p class="description">([^<]+)<\/p>/)){
comment = comment.replace(/^\s+|\s+$/g, "");
}
ついでにlivedoorClipのユーザー名の位置が微妙に変わったので修正。
1028行目(上の修正を当てた後は1047行目)を以下のように修正。
var userName = userA.href.replace( /^.*\//, "" );
sbmcomments.rb
このサイトのエントリについたコメントを取得するやつ。元のソースで使っていたREXMLが利かなくなったのでsimple-rssで取得するようにした。
def get_delicious_comments( url )
posts = []
host = 'feeds.delicious.com'
path = '/v2/rss/url/' + Digest::MD5.hexdigest( url )
body = Net::HTTP.start( host, 80 ).get( path ).body
rss = SimpleRSS.new( body )
rss.items.each do |item|
if item.description != nil
post = {
:date => "",
:user => item.dc_creator,
:cmnt => item.description,
:site => "del.icio.us"
}
posts.push( post )
end
end
return posts
end
del.icio.usからの取得部分をこんな感じに直したんだが、今度は肝心のGet URLsが500でどうしたもんかと。
追記
SBMCommentsViewerの作者の方にスクリプトをgistに上げていただいたので、修正版をダウンロードできます。
sbmcommentsviewer.user.js(リンク先はgist内)
さらに変更が入ったりしたらgist: 3883の右端にあるrevisionかforkを追えばいいハズ。
Info
Navigation
- 関連のあるエントリ
- 2008-05-31 スクリプト色々更新
- 2007-12-19 Operaのユーザースクリプトを管理するツールをVisualuRubyで作った
- 2008-01-15 OperaUserScriptManager v0.20
- 2008-01-29 OperaUserJavascriptManager v0.31
- 2008-01-25 OperaUserJavascriptManager v0.30
- 新しいエントリ(日付順)
- 救急救命 カドゥケウス2 オールクリア
- 古いエントリ(日付順)
- 救急救命 カドゥケウス2 体験版 ファーストインプレッション
SBM Comments
asiamoth- お、del.icio.usってURLが変わっていたのか! 必須グリモンのSBMCommentsViewerが動かなくて困っていたので、さっそく修正した。
Comment
投稿したコメントは公開されません。サイトオーナーのみが閲覧できます。
返信等を希望する場合は、コメント内に連絡先のメールアドレスかサイトのURLを入力してください。
2008
0803