2005
Aug
31st
tDiaryの作者のただのただしさんのただのにっき(2005-06-28)にて、「言及リンクのないTrackBackの何がいけないのか」ということが述べられています。「関係のある話題を書いてるから自分のブログを見てほしい」という気持ちはわかるし、中には有用なものもあります。でも、トラックバック元のエントリに自分のブログへのリンクがないと、とにかく同じことを話題にしていれば誰でもよく、特に僕あるいは僕のブログを読んでくれている人へのものではないんだなと、なんだか一方的なものを感じてしまいます。
ハテナオヤさん(という言い方が増えてる?)のnaoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン
ということで、僕の使っている COREBlog でも、同様のことをするようにちょっと手を入れてみました。もっとましな方法があるようにも思うので、その辺は他の COREBlogger にお任せということで...。
下に元の Entry.py からの変更点を書きますが、変更した後のものを
http://matatabi.homeip.net/app/Entry_py_ban_no_link_tb
に置いておきます。
ハテナオヤさん(という言い方が増えてる?)のnaoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン
どっちが良いかという議論に決着を付けるのは難しそうです。が、リンクなしのトラックバックは嫌だなあという人のための手段を、システム的に提供してやりそれをどう使うかは本人に任せる、ということはできるでしょう。として、MT用のプラグインを公開されています。
ということで、僕の使っている COREBlog でも、同様のことをするようにちょっと手を入れてみました。もっとましな方法があるようにも思うので、その辺は他の COREBlogger にお任せということで...。
下に元の Entry.py からの変更点を書きますが、変更した後のものを
http://matatabi.homeip.net/app/Entry_py_ban_no_link_tb
に置いておきます。
いじるのは Entry.py というファイルです。このファイルの場所は環境によって違うかと思いますのであれですが、僕の環境では
いじるのは4点。
- urllib をインポート: トラックバック送信元のエントリをダウンロードするので。場所は他のいろいろをインポートした後のところ。
- グローバル変数 MY_URL を定義: 送信元のエントリにこれがある場合だけトラックバックを受け付けます。場所はグローバル変数がいくつか宣言されているところに Statics というところがあったので、ここに書けば良いかなと。
- リンクが含まれているか否かを判別する link_to_my_blog() 関数を宣言: 場所は僕のくせというかなんというかで、これを使う tbping() の上に書きました。 Entry クラス内であればどこでも良いんだろうな、きっと。
- link_to_my_blog() の呼び出し: tbping() 内でごにょごにょやって、最終的にトラックバックを受け付けるかどうかというところに追加しました。
/var/lib/zope/Product/COREBlog/Entry.pyでした。
いじるのは4点。
- urllib をインポート: トラックバック送信元のエントリをダウンロードするので。場所は他のいろいろをインポートした後のところ。
import urllib
- グローバル変数 MY_URL を定義: 送信元のエントリにこれがある場合だけトラックバックを受け付けます。場所はグローバル変数がいくつか宣言されているところに Statics というところがあったので、ここに書けば良いかなと。
MY_URL = 'http://matatabi.homeip.net/blog/setomits'
- リンクが含まれているか否かを判別する link_to_my_blog() 関数を宣言: 場所は僕のくせというかなんというかで、これを使う tbping() の上に書きました。 Entry クラス内であればどこでも良いんだろうな、きっと。
def link_to_my_blog(self, my_url, from_url):
f = urllib.urlopen(from_url)
p = f.read()
f.close()
return p.count(my_url)
- link_to_my_blog() の呼び出し: tbping() 内でごにょごにょやって、最終的にトラックバックを受け付けるかどうかというところに追加しました。
#finnaly,add trackback to Entry!
if self.link_to_my_blog(MY_URL, val['url']):
self.addTrackback(val['title'],val['excerpt'],val['url'],val['blog_name'])
else:
REQUEST.set('error_code',1)
REQUEST.set('message', "Sorry! Your entry has no link to me.")
# self.addTrackback(val['title'],val['excerpt'],val['url'],val['blog_name'])
Posted by setomits at 05:39 |
Comments: 2
blogツール違っても意外といけるものですね。
shunuhsさんのsh1.2 pyblosxom : trackback spamにも書きましたが単純なわりに効果ありますよね、きっと。