BSD Hacks_
で紹介されていた。複数のホストでportupgradeだのをするのに一括してメンテできる。
公式サイトは
Tentakel Homepage - Tentakel - distributed command execution_
2005年04月19日(火) [長年日記]
[unix] sysutils/tentakel
Permalink: http://www.otsune.com/diary/2005/04/19/1.html#200504191
trackback

View blog reactions
Last Updated 2005-04-19 00:00:00 By
trackback
Last Updated 2005-04-19 00:00:00 By
[home][hns] hnsのTrackbackにメール送信機能を追加する
hns-tb.cgiに追加機能を書いた後で検索したら気が付いたけど、
yarさん_
がすでに作っていたよ……
しょうがないからTrackBack spam対策と、$emailなどをconfig.phから引っ張るように改造したもののdiffを置いておこう。
しょうがないからTrackBack spam対策と、$emailなどをconfig.phから引っ張るように改造したもののdiffを置いておこう。
--- hns-tb_cgi.txt Thu Feb 10 17:12:57 2005
+++ hns-tb.cgi Tue Apr 19 06:15:11 2005
@@ -1,4 +1,4 @@
-#! /usr/bin/perl
+#! /usr/local/bin/perl
# $Id: d20050419.hnf,v 1.16 2005/04/21 13:35:09 moo9500 Exp $
use strict;
use lib qw(lib);
@@ -7,11 +7,32 @@
use Jcode;
use SimpleDB::Scalar;
use vars qw($DataDir);
+use HNS::System;
require './config.ph';
$DataDir ||= "$HNS::System::DiaryDir/trackback/";
+sub sendmail($)
+{
+ my $msg = shift;
+ my $email = $HNS::System::UserMail;
+ my $tomail = $HNS::System::MesMail;
+ my $sendmail = '/usr/local/bin/sendmail -t -f';
+
+ my $mail = "";
+ $mail .= "To: $tomail\n";
+ $mail .= "From: $email\n";
+ $mail .= "Content-Type: text/plain; charset=iso-2022-jp\n";
+ $mail .= $msg;
+
+ Jcode::convert( \$mail, "jis");
+ open(OUT, "| $sendmail $tomail");
+ print OUT $mail;
+ close(OUT);
+ exit;
+}
+
sub html_convert
{
my ($str, $body_mode) = @_;
@@ -82,7 +103,7 @@
my ($id) = ($ENV{REQUEST_URI} =~ m!cgi/(\d{9}\d*)!);
-#error 'invalid id' unless($id =~ /\d+/);
+error 'invalid id' unless($id =~ /\d+/);
my $cgi = new CGI;
@@ -92,17 +113,6 @@
exit;
}
-$id = $cgi->param('tb_id') unless($id =~ /\d+/);
-error 'invalid id' unless($id =~ /\d+/);
-
-#my $id = "";
-#
-#my @params = $cgi->param();
-#foreach my $param (@params) {
-# $id = sprintf("%s%s\t%s\n", $id,$param,$cgi->param($param));
-#}
-
-
my $title = jcode($cgi->param('title'))->euc;
my $excerpt = jcode($cgi->param('excerpt'))->euc;
my $url = jcode($cgi->param('url'))->euc;
@@ -117,6 +127,11 @@
# URL が空だったら error;
error "URL is empty" unless($url);
+#block trackback spam
+if ($url =~ /casino/){
+error 'You are not allowed to send TrackBack pings';
+}
+
# 要約は 255 文字程度で折る
$excerpt = truncate_body($excerpt, 255);
@@ -130,8 +145,6 @@
print F "\n";
close F;
-system("chmod 666 $DataDir/$id");
-
print "Content-Type: text/xml\r\n\r\n";
print <<EOF;
<?xml version="1.0" encoding="iso-8859-1"?>
@@ -146,24 +159,14 @@
$last_modified = time;
untie $last_modified;
-my $mailto = 'ore@yar-3.net';
-my $sendmail = '/usr/lib/sendmail';
+ my $mail = "";
+ $mail .= "Subject: [hns] trackback $orig_blog_name $id\n";
+ $mail .= "\n";
+ $mail .= "title: $orig_title\n$orig_blog_name\n";
+ $mail .= "$orig_excerpt\n $orig_url\n";
+ $mail .= "-- \n";
+ $mail .= "trackback sender by $HNS::System::Author\n\n";
+ $mail .= "from $ENV{'REMOTE_HOST'} $ENV{'REMOTE_ADDR'}\n";
+ $mail .= "UA $ENV{'HTTP_USER_AGENT'} \n";
- my $msg = "";
- $msg .= "To: $mailto\n";
- $msg .= "From: $mailto\n";
- $msg .= "Content-Type: text/plain; charset=iso-2022-jp\n";
- $msg .= "Subject: trackback $orig_blog_name $id\n";
- $msg .= "\n";
- $msg .= "title: $orig_title\n$orig_blog_name\n";
- $msg .= "$orig_excerpt\n $orig_url\n";
- $msg .= "-- \n";
- $msg .= "trackback sender by yar-3\n\n";
- $msg .= "from $ENV{'REMOTE_HOST'} $ENV{'REMOTE_ADDR'}\n";
- $msg .= "UA $ENV{'HTTP_USER_AGENT'} \n";
-
-
- Jcode::convert( \$msg, "jis");
- open(OUT, "| $sendmail $mailto");
- print OUT $msg;
- close(OUT);
+sendmail($mail);
yarさんの汎用TrackBack送信フォームをhns専用にしてしまう:
tb-send.cgi_
をどうせならHNSからblog名とかを引っ張ってくる感じに。
--- tb-send.txt Wed Oct 27 08:01:11 2004
+++ tb.cgi Tue Apr 19 05:23:42 2005
@@ -1,10 +1,13 @@
-#!/usr/bin/perl
+#!/usr/local/bin/perl
# tb_send - Send Trackback Ping
use strict;
+use lib qw(lib);
use CGI;
use HTTP::Request::Common;
use LWP::UserAgent;
+use HNS::System;
+require './config.ph';
my $query = CGI->new();
$query->charset('utf-8');
@@ -35,7 +38,7 @@
<form>
Ping URL: <input type="text" name="ping_url" size="30" /><br />
Title: <input type="text" name="title" size="30" /><br />
-Blogname: <input type="text" name="blog_name" size="30" value="dobu nikki"/><br />
+Blogname: <input type="text" name="blog_name" size="30" value="$HNS::System::Title"/><br />
Blog URL: <input type="text" name="url" size="30" /><br />
Excerpt: <input type="text" name="excerpt" size="50" /><br />
<input type="submit" value="Send" />
.htaccessとかに
<Files "tb.cgi"> AuthType Basic AuthName "Trackback Form" AuthUserFile /home/ほげ/.htpasswd-tb AuthGroupFile /dev/null require valid-user </Files>などと書いておいてhtpasswdでBASIC認証しておくのが良いかもしれない。
まぁ手動TrackBackなので素人にはオススメできないのは確かだな……:
cgiを呼んだら$HNS::System::DiaryDirの今日の日付の*.hnfを見て、LNEWとかLINKのurl先にNet::TrackbackとかでアクセスしてTrackback Auto Discoveryをして。discover($url)で配列にぶちこんだら本文を$excerptに入れたFormを表示するって感じか。
[ コメントする ]
Permalink: http://www.otsune.com/diary/2005/04/19/2.html#200504192
trackback

View blog reactions
Last Updated 2005-04-19 00:00:00 By
trackback
Last Updated 2005-04-19 00:00:00 By
[home][hns] hnsをmod_rewriteで1記事単位に
はてなブックマークでリンクされたときのためにTITLEに記事の見出しが入らないのを何とかなんねぇかなぁ。などと夢想。
実は hnsのmod_rewrite化_ でYYYY/mm/dd/n.html形式でNEW,LNEW単位のアクセスが出来るようにはなっている。
だからこのテクニックを2002年の段階で解説している Naney's Diary:2002年10月23日 No.4_ の記事もちゃんと個別にリンクすることができる。
あとはtheme.phの微修正をすればよい。%newにセクション番号が入るのでそれを%dayの後に追加するだけ。
実は hnsのmod_rewrite化_ でYYYY/mm/dd/n.html形式でNEW,LNEW単位のアクセスが出来るようにはなっている。
だからこのテクニックを2002年の段階で解説している Naney's Diary:2002年10月23日 No.4_ の記事もちゃんと個別にリンクすることができる。
あとはtheme.phの微修正をすればよい。%newにセクション番号が入るのでそれを%dayの後に追加するだけ。
package HNS::Diary::Template;
$BaseTemplate{dynamic} = "$HNS::System::MyDiaryURI%year/%month/%day/%new.html";
jikenbo+を使っていてsidebarを出しているときは「YYYY年mm月dd日」だけYYYY/mm/dd.htmlにしたいのでDayTemplateを指定しなおす。
package HNS::Tools::HeadLine;
$BaseTemplate{dynamic} = "$HNS::System::MyDiaryURI%year/%month/%day/%new.html";
$DayTemplate = qq(<br><a href="$HNS::System::MyDiaryURI%year/%month/%day.html" class="black">%year年%month月%day日</a>);
もちろんmod_rewriteしているだけなので、既存のurlはまったく問題なくアクセス可能。[ コメントする ]
Permalink: http://www.otsune.com/diary/2005/04/19/3.html#200504193
trackback

View blog reactions
Last Updated 2005-04-19 00:00:00 By
trackback
Last Updated 2005-04-19 00:00:00 By
この記事へのトラックバック[1]
- otsuneの日記(パブリックコメント用に開放中):hnsのTrackBackテスト
- http://www.otsune.com/diary/2005/04/19/2.html#200504192
[2ch][neta] 祭りが起こると職人によってFlashムービーが作られるけど
あれはWebのまとめサイトで文章による説明だけだと「たくさん言葉が書いてあって読む気しねぇーよ」という層が結構居るから作るんだって。
Flashにして解説ムービーにすることで、そういう「ブラウザで長文を読む気がしない」という人たちにも絵と音楽つきで主張が伝えられると。
なるほどねー。
ブラウザで文章を読むのがけっこう平気だからその視点は気がつかなんだ。
まぁ一番の原因は「作りたいからFlashを作った」ということだろうけど。
Flashにして解説ムービーにすることで、そういう「ブラウザで長文を読む気がしない」という人たちにも絵と音楽つきで主張が伝えられると。
なるほどねー。
ブラウザで文章を読むのがけっこう平気だからその視点は気がつかなんだ。
まぁ一番の原因は「作りたいからFlashを作った」ということだろうけど。
コメントを読む(2) [ コメントする ]
- Re: 祭りが起こると職人によってFlashムービーが作られるけど by Ono 2005/04/19 21:27
- 逆にテキストに慣れた体だと、素のブラウザでFlashを流されても テキストデータのよう...
- Re: 祭りが起こると職人によってFlashムービーが作られるけど by 適宜 2005/04/19 21:36
- 私にとっては、テキストデータとかちゃんと読みたいのに flashだとガンガン流されてし...
Permalink: http://www.otsune.com/diary/2005/04/19/4.html#200504194
trackback

View blog reactions
Last Updated 2005-04-19 00:00:00 By
trackback
Last Updated 2005-04-19 00:00:00 By
[home][hns] lib/HNS/Tools/RSS.pmの改良処理
どうもdescriptionのエンティティ処理が甘いとbloglinesで読めないみたいなので修正。
s/&/&/g;をs/"/"/g;の上に追加する。
[ コメントする ]
Permalink: http://www.otsune.com/diary/2005/04/19/5.html#200504195
trackback

View blog reactions
Last Updated 2005-04-19 00:00:00 By
trackback
Last Updated 2005-04-19 00:00:00 By



[ コメントする ]