hns - 日記自動生成システム - Version 2.19.7

void GraphicWizardsLair( void ); //

otsune GWL
FreeBSD, AfterEffects, RETAS, animo, DigitalAnime, Linux, Mac OS, Win2k

[Who is otsune?] [title] [message] [Policy] [注目エントリー] [top]
Twitter Status :


Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい

検索式:

先月 2005年04月 来月
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


2005年04月19日(火) [長年日記]

#1 [unix] sysutils/tentakel

BSD Hacks_ で紹介されていた。複数のホストでportupgradeだのをするのに一括してメンテできる。
公式サイトは Tentakel Homepage - Tentakel - distributed command execution_
Permalink: http://www.otsune.com/diary/2005/04/19/1.html#200504191
trackback
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2005-04-19 00:00:00 By otsune

#2 [home][hns] hnsのTrackbackにメール送信機能を追加する

hns-tb.cgiに追加機能を書いた後で検索したら気が付いたけど、 yarさん_ がすでに作っていたよ……
しょうがないから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);

2 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認証しておくのが良いかもしれない。

2 まぁ手動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
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2005-04-19 00:00:00 By otsune

#3 [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の後に追加するだけ。
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
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2005-04-19 00:00:00 By otsune

この記事へのトラックバック[1]

otsuneの日記(パブリックコメント用に開放中):hnsのTrackBackテスト
http://www.otsune.com/diary/2005/04/19/2.html#200504192

#4 [2ch][neta] 祭りが起こると職人によってFlashムービーが作られるけど

あれはWebのまとめサイトで文章による説明だけだと「たくさん言葉が書いてあって読む気しねぇーよ」という層が結構居るから作るんだって。
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
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2005-04-19 00:00:00 By otsune

#5 [home][hns] lib/HNS/Tools/RSS.pmの改良処理

どうもdescriptionのエンティティ処理が甘いとbloglinesで読めないみたいなので修正。
s/&/&amp;/g;
をs/"/&quot;/g;の上に追加する。
Permalink: http://www.otsune.com/diary/2005/04/19/5.html#200504195
trackback
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2005-04-19 00:00:00 By otsune