Bonjour!

« コメント欄の「この情報を登録する」に自動でチェックを | トップページ | Amazonで見ている本をbk1で検索するbookmarklet改改 »

2006-05-22

ココログ過去記事編集用bookmarkletその3

自分のココログを見ている最中に編集画面を簡単に開くためのbookmarkletです。(旧ココログ専用)

----
全プラン対応版作りました。
----

以下のリンクをブックマーク(お気に入り)に登録しておけば、自分の記事を見ているときにブックマークをクリックするだけで記事の編集画面が簡単に開けるようになります。

ココログ編集

今回のバージョンでは、ブックマークをクリックすると以下のように動作します。

- 記事別ページの場合、その記事の編集画面が別窓で開きます。
- 複数の記事があるページの場合、各記事のタイトルの後に Edit というリンクが付きます。それをクリックすれば、該当記事の編集画面が別窓で開きます。

Firefox 1.5.0.3, IE 5.01, IE6.0で動作確認。

# Opera 8ではブラウザが落ちるので確認できません(T_T)。そろそろ原因を調べないとダメだなあ…

なお、今回のバージョンでは、ページ内に埋め込まれた新アクセス解析用のデータを流用するようにしたので、旧ココログの人でもまだ使えない人があるかもしれません。

# そのため、ページが読み込み終わった頃じゃないと動かないので、その点ではちょっと使い勝手が悪くなってしまいました…

----

今回は、ココログの密かな仕様変更(?)にあわせた修正(プラスα)です。

風柳さんの記事:

風柳亭 - 別館:書庫のある庵 -: 【ココログ】ページ内目次:記事の編集画面へのリンクを修正

によると、複数の記事があるページ(トップページなど)に埋め込まれている記事ID(エントリーID)の書式が変更になったようで、以前作ったbookmarkletも動かなくなってしまっていたので、修正しました。

ついでに、複数記事における挙動をちょっと簡略化して、IE6でも動くようにしてみました。

風柳さんの上記リンク先の「ページ内目次」bookmarkletがあれば、このbookmarkletなんてもう全然不要なんですが、ココログのHTMLソース内にCCAX_IDという新アクセス解析用のグローバル変数CCAX_IDができていることに偶然気付いたので、公開することにしました。

# ココログフリーでは、このCCAX_IDってのがないので、無理ですね…

« コメント欄の「この情報を登録する」に自動でチェックを | トップページ | Amazonで見ている本をbk1で検索するbookmarklet改改 »

ウェブログ・ココログ関連」カテゴリの記事

コメント

facetさん、どうもです。

ちょっと補足を。

| 複数の記事があるページ(トップページなど)に埋め込まれている記事ID(エントリーID)の書式が変更になったようで

埋めこまれている記事ID(id付きAタグ)自体は変わっていないのですが(id="a[頭に0付きの記事ID]")、この頭に0付きの記事IDを指定してココログの記事編集画面を呼ぼうとするとエラーとなるようになってしまったのでした(先週までは0付きでも呼べたはず)。

| グローバル変数CCAX_IDができていることに偶然気付いたので

そうそう、密かに追加されているのですよね。
でも必ず載っているわけでもなさそうなので、今のところ見送っています(まぁ、登録されている場合だけ参照するようにすれば良いのですが)。

風柳さん、どうもです。

詳しくは風柳さんの記事を参照してくださいというつもりで端折って書いてしまったので、お手数をお掛けしてしまいましたね。すみません。補足、ありがとうございました。

あと、CCAX_IDの流用は、先行投資ということで(笑)

しかし、CCAX_IDをもっと上にしてくれたら使いやすくていいのに。
(自己中w)

facetさん、どうもです。

いえいえ、こちらこそ記事のご紹介有り難うございます。

そうそう、アクセス解析用のタグなんだし、もっと前に持ってきてくれないと……。
#どうせならヘッダに埋めこめばよいと思うのですが

ところで、ページ中に記事毎のURL・トラックバックURL、タイトル・概要等を記述した RDF が埋めこまれていているのは……あれ?前からでしたっけ?
これ、HTMLのコメントとして記述されているのですが、そうするとDOMじゃ取れないのかな~、試していないけれども。

で、なんで記事IDが入っていないのだろう……。
#一番足りない情報が記事ID→記事URLの対応ではないかと思う今日このごろ(記事編集画面から記事に直接飛ぶ手段がないし)

>そうそう、アクセス解析用のタグなんだし、もっと前に持ってきてくれないと……。
>#どうせならヘッダに埋めこめばよいと思うのですが

でもまあGoogleAnalyticsもページの最後の方にに置いてねと言っているし、データの正確性を重視する場合はこうなるんだろうなという気がしました。

# つか、ココログバナーのところに仕込んでくれればユーザが位置を変更できて幸せになれるのに、という気も。

>ところで、ページ中に記事毎のURL・トラックバックURL、タイトル・概要等を記述した RDF が埋めこまれていているのは……あれ?前からでしたっけ?

ですね。

>これ、HTMLのコメントとして記述されているのですが、そうするとDOMじゃ取れないのかな~、試していないけれども。

Firefoxだと取れますね(dataプロパティとかで)。
IEでは取れない気がします。

なので、汎用のを作ろうとすると、httpXMLRequestのresponseTextを正規表現で、とかになっちゃうんでしょうか。

>で、なんで記事IDが入っていないのだろう……。

激しく同意(笑)

>#一番足りない情報が記事ID→記事URLの対応ではないかと思う今日このごろ(記事編集画面から記事に直接飛ぶ手段がないし)

ですね。私もよくそう思ってました。

で、気になったので今ちょっと調べてみたところ、XML-RPCを使えば取れそうに思いました。

tsupoさん作の「Movable Type で使える XML-RPC API」によると、

metaWeblog.getPost
http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html#w13

あたり。

で、JavaScriptならこれをhttpXMLRequestしてresponseXMLのpermalinkを取る、みたいな感じでしょうか?

ただ、これだとusernameとpasswordが必要みたいなので、他人のは取れないですね。

でも、たとえば、管理画面の記事編集画面に該当記事へのリンクを張ってくれるBookmarklet/Greasemonkey…なんてものなら作れそうですね。(よさげ)

…というか、こんなのpasswordなんかなくても逆引きできていいんでは?という気がしますよねえ。他の方法はないんですかね…

facetさん、どうもです。

GoogleAnalyticsだとそうなんですか。
AccessAnalyzer.Comだと、

| 解析ミスを防ぐためにはHTMLソースのなるべく上部に貼り付けて下さい。

となっているのですけどね。

#私のところみたいに、最初の方でリダイレクトさせてたりするとそうなんだろうなぁ(ヲ

| XML-RPCを使えば取れそうに思いました。

はい、実は perl ではすでに試しています(笑)。
#metaWeblog.getRecentPostsとmt.getTrackbackPings の組合せで、一応トラックバック一覧は取得できる(時間がかかりますが。というか、動作の軽い mt.getRecentPostTitles の方に permlink等の情報も含めて欲しい……)

ただ、perlだとココログの編集画面を取ってくるのが面倒で、こちらは実装してません。

JavaScriptからはXML-RPCを呼ぶ方法を調べ切れておらず、こちらもまだです(いくつかサンプルはあるんですけどね、解析できていない)。

月別バックナンバーの方で記事IDとpermlinkの一覧を取得して、これをどこかに保存して使いまわしできればいいのですけどねぇ。

実は特定の記事にこの情報(IDとlinkの対応など)をTrackback Pingしておくことで、その記事を擬似データベースとして使う、などということを考えたりしてたのですが、、、。
ココログのトラックバックの反応が遅すぎる&同一記事への連続トラックバックが制限されていることから挫折してたりします(苦笑)。

忍者のアクセス解析では、「一瞬の訪問者まで網羅的に取りたい場合は上の方に、滞留している(コンテンツを見ている)人を正確に取りたい場合は下の方に。」みたいな説明だったような気がします。(勝手解釈かも)

>#私のところみたいに、最初の方でリダイレクトさせてたりするとそうなんだろうなぁ(ヲ

ココログの新アクセス解析って、風柳さんちで動くんですか?(^^;

>| XML-RPCを使えば取れそうに思いました。
>はい、実は perl ではすでに試しています(笑)。

あ。もしかして最新記事のPerlのはそういう…
# Perlは苦手なので見てませんが。

同じXML-RPCでもAPIの違いによって速いとか遅いとかあるんですね。そりゃそうか。一長一短、なかなかうまくいかないですね。

>JavaScriptからはXML-RPCを呼ぶ方法を調べ切れておらず、こちらもまだです(いくつかサンプルはあるんですけどね、解析できていない)。

私もそのうち調べようと思ってて、これまた絶賛放置中(笑)

>月別バックナンバーの方で記事IDとpermlinkの一覧を取得して、これをどこかに保存して使いまわしできればいいのですけどねぇ。

そうそう。私もそれは考えました。nifty会員なら@homepageという手もあるんですけどね(面倒ですけど)。

>実は特定の記事にこの情報(IDとlinkの対応など)をTrackback Pingしておくことで、その記事を擬似データベースとして使う、などということを考えたりしてたのですが、、、。

なるほど。いいですね。Greasemonkeyで常時Trackbackにして、とかもできそう。ふむ。

あ、でも、別ドメインだとhttpXMLRequest使えないんだっけ。…ん?…ということは、管理画面とブログも別ドメイン…。ん?どうなるんだろう。うーむ。

私は、ファイルマネージャ的なものを作れないかなあ…なんて考えてました。tsupoさんのcocoUppleみたいなことができるんだから、できそうですよね。(難しそうですけど)(やっぱりXML-RPCなのかな)

>ココログのトラックバックの反応が遅すぎる&同一記事への連続トラックバックが制限されていることから挫折してたりします(苦笑)。

まったく困ったもので(^^;

facetさん、どうもです。

| ココログの新アクセス解析って、風柳さんちで動くんですか?(^^;

あー、ねぇ(^^;。まぁ、あの位置から変わらないのなら、整形後のURLしか取れないのでしょうね。
まぁ、この機能にははなからそれ程期待していないのでまあいいか、という話も……(苦笑)。

| 最新記事のPerlのはそういう

いえ、あれはどちらかというとお仕事絡みで、CSVファイル→XMLファイル変換用に使ったのの覚書です。

テキスト文書の整形にはそれなりに便利なんですよね、Perlって。私としては文法的にはJavaScriptの方が書きやすいのですが、ファイルの読込&保存が簡単にできないと、不便でしかたないので……。

| 同じXML-RPCでもAPIの違いによって速いとか遅いとか

というか、データ量の違いですね。mt.getRecentPostTitles は本文は取得しないのでその分速いわけで。帯域にも優しい、のだそうです。
#でも、URLくらいは含めておいてよ……

こういうインデックス取得系のAPIがほとんど用意されていない(あってもほとんど使えない)という設計思想が、どうにも理解し難いのですけれど……。

| nifty会員なら@homepage

@homepage は Perl とかでもライブラリが全然準備されていないみたいなので、使いにくくて仕方がありません……いちいち必要なファイルをチェックしてインストールなんてやってらんない……(著名なライブラリは入れ方が書かれたサイトがありますけどね)。

| あ、でも、別ドメインだとhttpXMLRequest使えないんだっけ。

はい。この制限、痛いですよねぇ。
同一ドメイン上にCGIサーバがあれば、まだなんとかなるんですけど……。

iframeの場合でも別ドメインのページを読み込んだ場合は、表示は出来てもJavaScriptからは中身にアクセスできませんよね(このアクセス出来ない具合もIEとFirefoxで違っていたりする……)。
なので、最近作ったトラックバック送信用スクリプトではちょっとトリッキーなことをして、送信完了の確認をしていたり。

ちなみに、トラックバック静的データベース構想(笑)の場合、自分自身のブログ記事に対して打つつもりだったので……『最近のトラックバック』が役たたずになるという罠も(笑)。
#プロだとブログを複数持てるので、ひとつをトラックバック専用にしてもいいかな、とか思ったのだけれど……それ以前に、プロだとテンプレートいじれるので、インデックス作るのも簡単だったり(苦笑)

| 管理画面とブログも別ドメイン…。

XML-RPCサーバと管理画面とは同一ドメインなので、管理画面からXML-RPC APIをhttpXMLRequestで叩いて取り出すことは可能なはず。

管理画面では、permalink以外の必要な情報はありそうなので、あとはXML-RPC APIでpermalinkさえ取れれば、いろいろ応用できそうです。

ついでに、記事IDとpermalinkの関連づけを、記事として投稿してしまえば(これは管理画面経由でもXML-RPCでも出来そう)、その記事をデータベースとして、ブログ側からも使えるなぁ、とか。

いろいろ考えてはいるんですけどねー。

>| ココログの新アクセス解析って、風柳さんちで動くんですか?(^^;
>あー、ねぇ(^^;。

w 私も使わないのでどうでもいいというw

>| 最新記事のPerlのはそういう
>いえ、あれはどちらかというとお仕事絡みで、

違いましたか。

>テキスト文書の整形にはそれなりに便利なんですよね、Perlって。

元々そのための言語ですものね。

>| 同じXML-RPCでもAPIの違いによって速いとか遅いとか
>というか、データ量の違いですね。

ああ、なるほど。了解です。

>#でも、URLくらいは含めておいてよ……
>こういうインデックス取得系のAPIがほとんど用意されていない(あってもほとんど使えない)という設計思想が、どうにも理解し難いのですけれど……。

ですよねえ(^^;

>| nifty会員なら@homepage
>@homepage は Perl とかでもライブラリが全然準備されていないみたいなので、使いにくくて仕方がありません……

そうなんですよね。

>| あ、でも、別ドメインだとhttpXMLRequest使えないんだっけ。
>はい。この制限、痛いですよねぇ。
>同一ドメイン上にCGIサーバがあれば、まだなんとかなるんですけど……。

ブログですからしょうがないかなと私は思ってますが。

>iframeの場合でも別ドメインのページを読み込んだ場合は、表示は出来てもJavaScriptからは中身にアクセスできませんよね(このアクセス出来ない具合もIEとFirefoxで違っていたりする……)。

そうなんですか。iframeは別ドメインでもOKかと思ってました…

>なので、最近作ったトラックバック送信用スクリプトではちょっとトリッキーなことをして、送信完了の確認をしていたり。

そういうのをサクサクと思いつける所が凄いなといつも思います。

>ちなみに、トラックバック静的データベース構想(笑)の場合、自分自身のブログ記事に対して打つつもりだったので……『最近のトラックバック』が役たたずになるという罠も(笑)。

確かに(笑)

>| 管理画面とブログも別ドメイン…。
>XML-RPCサーバと管理画面とは同一ドメインなので、管理画面からXML-RPC APIをhttpXMLRequestで叩いて取り出すことは可能なはず。

ああ、そうか。この場合考えるべきは管理画面とXML-RPCでしたね。ならOKですね。

>管理画面では、permalink以外の必要な情報はありそうなので、あとはXML-RPC APIでpermalinkさえ取れれば、いろいろ応用できそうです。

ですね。…つか、permalinkの情報さえ埋め込んでくれてればこんな苦労はないものを。(^^;

>ついでに、記事IDとpermalinkの関連づけを、記事として投稿してしまえば(これは管理画面経由でもXML-RPCでも出来そう)、その記事をデータベースとして、ブログ側からも使えるなぁ、とか。

これが私の考えていたのと同じかな。XMP-RPC経由ならサイドバーとかの不要な情報も取らずにすみますね。

管理画面経由ってのはよくわかりませんでしたがどういうイメージですか?(手動更新?)

あ。
metaWeblog.newMediaObject
ってのが、データベース用途で使えるのでは?という気が。
(ココあっぷるは、これ?)
あ、でも、記事の日付を昔に設定しちゃえばgetもあるしその方がいいのかな。

…いや、XML-RPCを分かってないので的外れなことをほざいているかもしれませんが(^^;

# …と、こんなレスの仕方をしていると、長くなる一方(笑)

facetさん、どうもです。

| >同一ドメイン上にCGIサーバがあれば、
| ブログですからしょうがないかなと私は思ってますが。

まあそうですね。
さすがにこれは贅沢に過ぎるというものですか。

| iframeは別ドメインでもOKかと

実は私も最初そのように勘違いしていました。なにせ、目では見えますからねぇ(苦笑)。
#実際試してみて初めて思い知ったという……

| permalinkの情報さえ埋め込んでくれてれば

激しく同意。
というか、どうせ記事IDは一意なんだから、permalinkが記事IDを元に規則的に作られていれば問題ないのに……なんでわざわざ無理やり名前を付けるかな。

せめて、記事IDを指定すれば該当記事にリダイレクトされるようなインタフェースが欲しいところ。
#コメントならhttp://app.cocolog-nifty.com/t/comments?__mode=red&id=(コメントID)でコメント元にリダイレクトされる仕組みがあるのに

| 管理画面経由

単純に、記事投稿フォームと同様のものをJavaScriptででっち上げてポストするだけ(^^;。
#JavaScriptでXML-RPC APIをたたけるなら、そっちの方が簡単ですね。

| metaWeblog.newMediaObject

データを登録するにはこれがベストでしょうね。余計な情報がつかないし。

base64 encode しないといけないので面倒かも……と思いましたが、
http://www.onicos.com/staff/iz/amuse/javascript/expert/
あたりを使用すれば大丈夫、かな。

仰るとおり、get出来ないのが難点ですが。
でも、登録するデータをJavaScript(JSON)化しておけば、scriptタグでそのファイルを指定して読み込めば必要なデータが得られそうだし。これなら、ドメイン関係ないし……。
#などとアイデアは湧いてくるのですけどねぇ。時間が欲しい……

風柳さん、ども。

iframeがダメってことは、やはり残る牙城はscriptタグだけってことで、ということはつまりhtml2jsonみたいなサービスがあれば…
…あった↓(^^;
http://www.drk7.jp/MT/archives/001011.html
これ、xml2jsonですけど、ココログはXHTMLだから「ちゃんと書いてれば」OKのはず。
ほとんどダメだったりしてw

>なんでわざわざ無理やり名前を付けるかな。

英語だとURLが覚えやすくてメリットがあったというのが理由でしょう。が、MTを日本語に対応させる段階で崩壊した、と。その時の設計で記事IDにすれば良かったんでしょうけどね。

そういえば昔はもっと単純だったんですけど、今はランダム的なファイル名になってますね。スパム対策なのかな。

>#コメントならhttp://app.cocolog-nifty.com/t/comments?__mode=red&id=(コメントID)でコメント元にリダイレクトされる仕組みがあるのに

! そんなものがあったとは。

>| 管理画面経由
>単純に、記事投稿フォームと同様のものをJavaScriptででっち上げてポストするだけ(^^;。

なるほど、そういう感じでしたか。

>| metaWeblog.newMediaObject
>base64 encode

先人さまさま、ですね。

>仰るとおり、get出来ないのが難点ですが。
>でも、登録するデータをJavaScript(JSON)化しておけば、

ですね。やっぱり時代はJSON、ですか。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/1941/10093846

この記事へのトラックバック一覧です: ココログ過去記事編集用bookmarkletその3:

» ココログ過去記事編集用Bookmarklet 4 (全プラン対応版) [facet-divers]
今見ている自分の過去記事を編集したくなった時にこのブックマークレットを使うと、ワンクリックで編集画面を開くことができるようになります。 ▼ブックマークレットの使 [続きを読む]

« コメント欄の「この情報を登録する」に自動でチェックを | トップページ | Amazonで見ている本をbk1で検索するbookmarklet改改 »

contact

検索

無料ブログはココログ
2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

BANNERS