Category Archives: PROGRAM - Page 4

ぴくぴくダウンローダ for Java(仮) beta版 公開

今まで設定ファイルを手書きで編集しておりましたが、全てGUIで簡単に設定できるようになりました。
GUIでの利用も設定も全ての機能をWindowsでもMacでもLinuxでも利用する事が可能です。

下記の動作環境さえ満たしていればWindows以外のOSでもダブルクリックで起動し動きます。

新アイコン

推奨環境:Core2Duo以降のデュアルコアCPU搭載のパソコン
動作環境:Windows MacOSX Linux でJavaが動作する環境

今回のバージョンアップで一応、予定していた大きな機能はすべての機能を実装しました。

使い方
圧縮ファイルをダウンロードして、適当な場所で展開してください。

実行方法
それぞれの環境の実行形式にあったファイルを実行してください。

設定方法
ウインドウにある”基本設定”をクリックし、必要な項目を全て記述して”適用”をクリックしてください。
※ 設定内容は設定ファイル(pget.conf)に平文で保存されます。設定ファイルの取り扱いは十分にご注意ください。

ユーザIDとは下記のURLの○の数字の部分です。(アルファベットや名前ではありません)
http://www.pixiv.net/member_illust.php?id=○○○○○○○○

Windowsでの動作イメージ

MacOSXでの動作イメージ

Linuxでの動作イメージ

ダウンロード
こちらのダウンロードページよりダウンロードをお願い致します。

プログラムの利用に関して
ライセンスは現在検討中です。おそらくオープンソース化すると思いますが、現段階では逆コンパイル、改造、再配布は禁止させて頂きます。なお、ソフト自体ウエイトを固定するなど多くの負荷対策を行なっておりますがPixivのサイトに負荷を掛けないよう常識の範囲での利用をお願い致します。あと、サイト・雑誌での紹介大歓迎です。

ぴくぴくダウンローダ for Java(仮) テスト版 公開

画像、漫画、小説をキーワード検索または作者のID(URLに付く番号)にて収集が可能になっております。
検索の際は最低ブックマーク数はもちろん、巡回開始ページ、巡回終了ページを指定できるようになっております。

推奨環境:Core2Duo以降のデュアルコアCPU搭載のパソコン
動作環境:Windows MacOSX Linux でJavaが動作する環境

一通りの機能は実装しておりますが、このプログラムはテスト版です。テスト版の意味が理解できる人のみご利用ください。

使い方
ZIPファイルをダウンロードして、適当な場所で展開してください。

アカウント設定
pget.confをテキストエディタで開き編集してください。最低限の項目しかないので迷わないと思いますが、Pixivのユーザー名とパスワードは必ず記述してください。

実行方法
それぞれの環境の実行形式にあったファイルを実行してください。

それぞれの環境での実行の様子は下記のとおりです。

Windows(Windows7)での動作中のイメージ

Mac(Mac OSX Lion)での動作中のイメージ

Linux(Ubuntu 11.10)での動作中のイメージ

こちらのダウンロードページよりダウンロードをお願い致します。

ライセンスは現在検討中です。おそらくオープンソース化すると思いますが。。。
現段階では逆コンパイル、改造、再配布は禁止させて頂きます。

現在、ソフト名・アイコン(PNG形式)募集中です
サイト・雑誌での紹介大歓迎です。

ぴくぴくダウンローダ for Java(仮) テスト版 公開(GUI未対応)

先日、開発・サポートを終了したぴくぴくダウンローダに変わりうる全く新しいダウンローダです。
基本的なコンセプトのPixivのサーバに優しく、単純を受け継いでいく予定ですが、今までのぴくぴくダウンローダとは全く異なるものになる予定です。

マルチプラットフォームを今まで以上に意識しているのでWindows以外のOSでも複雑な導入作業なしで実行できるようになっています。

現在、まだコマンドベースでしか操作できなですが、ここでの反応を見ながら開発していきたいと考えております。

動作環境:Windows MacOSX Linux でJavaが動作する環境

現在、まだコマンドプロンプトを知らない人、使ったことがない人には難しいかもしれません。
あとテスト版の意味が理解できる人のみご利用ください。

実行方法
ZIPファイルをダウンロードして、適当な場所で展開してください。
するとpget.confとpget.jarが出てくると思います。解凍ソフトによってはjarファイルまで展開してしまうものもあるのでご注意ください。

pget.confには最低限の項目しかないので迷わないと思いますが、Pixivのユーザー名とパスワードは必ず記述してください。

準備が済んだら下記のようにコマンドプロンプトでpget.jarのあるフォルダに移動し、実行してみてください。

> cd 展開したフォルダまでのパス
> java -jar pget.jar I_search 検索ワード 0 2 1 10

プログラムの引数は下記の通りです。

画像収集
・検索モード(I_search)
[検索ワード / 最低ブックマーク数 / モード(画像:0・漫画:1・総合:2) / 開始ページ番号 / 終了ページ番号]
・ID指定モード(I_id)
[ID / 開始ページ番号 / 終了ページ番号]

小説収集
・検索モード(N_search)
[検索ワード / 最低ブックマーク数 / 開始ページ番号 / 終了ページ番号]
・ID指定モード(N_id)
[ID / 開始ページ番号 / 終了ページ番号]

ライセンスは現在検討中です。おそらくオープンソース化すると思いますが。。。
現段階では逆コンパイル、改造、再配布は禁止させて頂きます。

このバージョンは古いです。最新版をダウンロードしてください。

動いた・動かなかった・意見などがあれば気軽にコメントしてください。

完成版のイメージは下記のような感じになる予定です。なおWindowsでもMacでもLinuxでも同じようなデザインのGUIで利用できるようにする予定です。

(現在作成中・・・もうしばらくお待ちください。)

ぴくぴくダウンローダ Ver β C01.03 Windows UNIX (MacOSX Linux) 対応

更新が遅れて大変申し訳ございません。

ぴくぴくダウンローダ Ver β C01.02を一部修正しました。

更新内容
Pixivの仕様変更に対応しました。一部報告があった画像を取り漏らすバグも解消したかと思われます。

当ソフトの特徴
・ブラウザでリンクを開かなくても自動で条件(タグ検索、ブックマーク数、絵師さんのID)を指定することで画像を収集します。

・最初HTMLファイルのみを取得し作品へのリンクを解析するためダウンロードする画像(Pixivへのアクセス)は最小限で低負荷です。

・一度ダウンロードした作品はコミックはフォルダ分けされ管理されます。指定されたフォルダにある画像は多重ダウンロードを行いません。

・バッチファイル等にコマンドを記述し指定した時間に実行させることも可能です。(絵師さんの新しい作品を定期的に収集し同期します。)

Norton Internet Securityをお使いの方へ
当ソフトが誤検出され、削除されるという報告を受けております。当プログラムを実行する場合、保護機能を一時的に停止してご利用ください。

動作例)
Windows 7 (検索ワード,ミク ブックマーク数,5以上)

MacOSX 10.6 (検索ワード,ミク)

Download
こちらのダウンロードページよりダウンロードをお願い致します。

ぴくぴくダウンローダ Ver β C01.02 Windows UNIX (MacOSX Linux) 対応

ぴくぴくダウンローダ Ver β C01.01でのバグを一部修正しました。

更新内容
コミックの2ページを読み飛ばしてしまうバグを修正

当ソフトの特徴
・ブラウザでリンクを開かなくても自動で条件(タグ検索、ブックマーク数、絵師さんのID)を指定することで画像を収集します。

・最初HTMLファイルのみを取得し作品へのリンクを解析するためダウンロードする画像(Pixivへのアクセス)は最小限で低負荷です。

・一度ダウンロードした作品はコミックはフォルダ分けされ管理されます。指定されたフォルダにある画像は多重ダウンロードを行いません。

・バッチファイル等にコマンドを記述し指定した時間に実行させることも可能です。(絵師さんの新しい作品を定期的に収集し同期します。)

Norton Internet Securityをお使いの方へ
当ソフトが誤検出され、削除されるという報告を受けております。当プログラムを実行する場合、保護機能を一時的に停止してご利用ください。

Download
こちらのダウンロードページよりダウンロードをお願い致します。

動作例)
Windows 7 (検索ワード,ミク ブックマーク数,5以上)

MacOSX 10.6 (検索ワード,ミク)

ぴくぴくダウンローダ Ver β C01.01 Windows UNIX (MacOSX Linux) 対応

ぴくぴくダウンローダ Ver β 03.03でのバグを一部修正しました。

更新内容
cielavenir様のPixivの仕様変更対応バージョンを元に改良
ブックマーク数の指定に再対応しました

当ソフトの特徴
・ブラウザでリンクを開かなくても自動で条件(タグ検索、ブックマーク数、絵師さんのID)を指定することで画像を収集します。

・最初HTMLファイルのみを取得し作品へのリンクを解析するためダウンロードする画像(Pixivへのアクセス)は最小限です。低負荷です。

・一度ダウンロードした作品はコミックはフォルダ分けされ管理されます。指定されたフォルダにある画像は多重ダウンロードを行いません。

・バッチファイル等にコマンドを記述し指定した時間に実行させることも可能です。(絵師さんの新しい作品を定期的に収集し同期します。)

Download
こちらのダウンロードページよりダウンロードをお願い致します。

動作例)
Windows 7 (検索ワード,ミク ブックマーク数,5以上)

MacOSX 10.6 (検索ワード,ミク)

オブジェクト指向 Perl プログラミング 設定用クラスのひな形

Perlでオブジェクト指向なプログラミングを行う時設定ファイルの扱いに困った。confファイルでも使おうかと思ったが、Settingクラスを作ってやったところ思いの外使い勝手が良かったので公開してみる。

Settingクラスは値の設定だけでなく外部の設定ファイルへのアクセスを行うメソッドを定義しておくことでメールのテンプレートや、禁止ワード等幅広い用途で外部の設定ファイルを素早く使う事ができる。

Settingクラス(Setting.cgi)のひな形

package Setting; # クラスのパッケージ名を宣言

sub new {
	my $class = shift;
	my $self= {
		# 設定項目を適当に作る
		setting1 => 'mogempoge',
		setting2 => 'hogehoge.txt',
		setting3 => 'hoguhogu.txt'
	};
	return bless $self , $class;
};

# テンプレートを記述したファイルから内容を読み取り変数に格納し、返すメソッド
sub read_config{
	my $self = shift; #クラスプロパティ
	$self->{ ConfigFile } = $_[0] if( @_ );
	
	open(my $fh, "<", $self->{ ConfigFile }) || die("Can not open file $self->{ ConfigFile }");
	my $file_contents;
	while( my $line = readline $fh ){ 
		$file_contents .= $line;
	}
	return $file_contents;
}

# 改行で区切られたワードを記述したファイルから内容を読み取り配列に格納し、返すメソッド
sub read_words {
	my $self = shift; #クラスプロパティ
	$self->{ ConfigFile } = $_[0] if( @_ );
	
	open(my $fh, "<", $self->{ ConfigFile }) || die("Can not open file $self->{ ConfigFile }");
	my @word_contents;
	while( my $line = readline $fh ){ 
		chomp($line); # 改行を削除
		push(@word_contents, $line);
	}
	return \@word_contents;
}

1;

mainクラス(Test.cgi)のひな形

#!/usr/bin/perl
BEGIN{ $| = 1; print "Content-type: text/html\n\n"; open(STDERR, ">&STDOUT"); }
# オプション関連の宣言
use strict;
use warnings;

# クラスを宣言
require "Setting.cgi";
require "Function.cgi";

# パッケージ名宣言
package main;

my $f_obj = Function->new();
$f_obj->function();

その他クラス(Function.cgi)で設定ファイルを読み込む場合のひな形

package Function; # クラスのパッケージ名を宣言

# コンストラクタを定義する時にSettingクラスを継承してあげる。
sub new {
	# 引数を受ける
	my ( $class, @args ) = @_;
	my %args = ref $args[0] eq 'HASH' ? %{ $args[0] } : @args;
	my $self = { %args }; #クラスプロパティ
	# オブジェクト生成
	$self = Setting->new();
	return bless $self , $class;
};

sub function{
	my $self = shift; #クラスプロパティ
	# "setting1"の値を表示する
	print $self->{ setting1 };
	# テンプレート"setting2"の内容を変数で受け取り表示する
	print $self->read_config( $self->{ setting2 } );
	# ワードリスト"setting3"の一覧を配列で受け取り表示する
	print $self->read_words( $self->{ setting3 } );
}

対ボット+外国人用 平仮名+和製漢字CAPTCHA Perl用ライブラリ

―――――――――――――――――――――――――――――――――――――
【ソフト名】かんたん日本語画像認証(アルファベットも可)
【著作権者】ORBIT
【制作日】2011年07月05日
【種 別】Perlモジュール
【連絡先】https://www.orsx.net/blog/
【配布元】https://www.orsx.net/blog/
【圧縮形式】zip
【動作環境】Perl5とImage::Magick、sazanami-gothicをインストールしたLinux
Windows系OSでは動作しない事が確認されております。
【開発環境】
CentOS5.6 perl, v5.8.8
―――――――――――――――――――――――――――――――――――――
≪著作権および免責事項≫

 本ソフトはフリーソフトです。自由にご使用ください。なお,著作権は作者
であるORBITが保有しています。

 このソフトウェアを使用したことによって生じたすべての障害・損害・不具
合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、
一切の責任を負いません。各自の責任においてご使用ください。

・はじめに
 新しいフォームを作った時の副産物の公開です。わずか数行で画像認証機能
を実装することが可能です。
 海外のスパム・人間、共に日本特有の和製漢字・平仮名は入力できないこと
に着目し今回の日本語画像認証を作成しました。

・ファイル構成
readme.txt 当取説ファイル
JCaptcha.pm 本ソフト
background.jpg 画像認証用の下地となる画像ファイル
tmp/imgs/ 作成済みの画像ファイルを保存するディレクトリ

sazanami-gothic.ttf
↑さざなみゴシック(フォント) ライセンスの関係上同封しておりません。

・導入方法
efont プロジェクト日本語トップページ – SourceForge.JP
http://sourceforge.jp/projects/efont/
よりさざなみフォントをダウンロードし、sazanami-gothic.ttfのみ取り出し
ファイル構成のようにJCaptcha.pmと同じディレクトリに格納する。

 画像認証機能を追加したい対象のプログラムと同じディレクトリに上記、
ファイル構成を設置する。

・利用方法
下記の使用例を参考にプログラムに組み込んでください。

簡単な使用例

#!/usr/bin/perl

# 当モジュールを呼び出し
use JCaptcha;

# オブジェクトの生成
my $obj = JCaptcha->new(
		Key    => RX, # 鍵を指定
		Lang   => JP, # 言語を指定(JP/ENG)
		Length => 5   # 文字の長さを指定
	);

# 認証画像作成用メソッドを呼び出す
my $tmp1 = $obj->makeimgcode(); # 認証用画像を作成し、その画像までのパスを受ける
print "$tmp1\n"; # 認証画像までのパスを受け取る

#==============================================#
# 画像を表示し、入力を行う処理を書いてください #
#==============================================#

# 認証
# 入力された文字列で認証を行い、正しければ"1"間違っていれば"0"を受ける
#(受け渡す文字列はフラグ無しUTF-8とする)
my $tmp2 = $obj->enimgcode('入力を受けた文字列');
print "$tmp2\n"; # if文などで認証の成功失敗を判別する

・履歴

2011年09月05日 Ver 1.0.0 公開

作成された画像認証用画像の一例

ライセンス形態:GPL
Download:JCaptcha

ぴくぴくダウンローダ Ver β 03.03 Windows UNIX (MacOSX Linux) 対応

ぴくぴくダウンローダ Ver β 03.03でのバグを一部修正しました。

更新内容
絵師さんのID指定時に次のページに移動しない事があるようなので修正しました。
(Pixivの仕様が変わったため?不明です)

当ソフトの特徴
・ブラウザでリンクを開かなくても自動で条件(タグ検索、ブックマーク数、絵師さんのID)を指定することで画像を収集します。

・最初HTMLファイルのみを取得し作品へのリンクを解析するためダウンロードする画像(Pixivへのアクセス)は最小限です。低負荷です。

・一度ダウンロードした作品はコミックはフォルダ分けされ管理されます。指定されたフォルダにある画像は多重ダウンロードを行いません。

・バッチファイル等にコマンドを記述し指定した時間に実行させることも可能です。(絵師さんの新しい作品を定期的に収集し同期します。)

Download
こちらのダウンロードページよりダウンロードをお願い致します。

動作例)
Windows 7 (検索ワード,ミク ブックマーク数,5以上)

MacOSX 10.6 (検索ワード,ミク)

Perlで簡易WEBサーバを書く

なんとなく書いてみました。リファラやユーザエージェントとかそんなものは環境変数として取得できませんしForkもしません。とりあえず動かして一対一でHTMLファイルや画像ファイルを表示するだけです。ファイヤウォールを外せば他のパソコンからも閲覧できたりします。(危ないのでやらないようにw)

#!/usr/bin/perl -w
use FindBin;
use Socket qw/sockaddr_in inet_ntoa/;
use HTTP::Daemon;
use HTTP::Status;
 
# バッファリングしない
local $| = 1;
# 公開パス
my $public_path = "$FindBin::Bin"."/public_html";
my %in; # ブラウザからデータを受け取るハッシュを初期化

my $daemon = HTTP::Daemon->new(LocalAddr => '',LocalPort => "8080");
print "START SERVER $public_pathn";

while (my ( $client, $peer_addr ) = $daemon->accept){ # メインループ

    my ( $port, $iaddr ) = sockaddr_in($peer_addr); # PortとIPを取得する
    my $remote_addr = inet_ntoa($iaddr); # バイナリ状態のIPを変換する
    print "Access IP: $remote_addrn";

    while (my $request = $client->get_request){ # リクエスト処理ループ

        if ($request->method eq 'GET'){

            my $resource = $request->url->path;

            # GETで送られてきた情報を取得
            my $get_request = $request->url;
            my $get_data = ""; $get_data = $1 if($get_request =~ m/.*?(.+)/);
            &get_form($get_data) if($get_data);
            
            print "---> PATH: $resource GET: $get_datan";
            foreach my $key (keys (%in)){print "------> HASH: $key -> $in{$key}n";}

            if($resource =~ m/^/-_-/){ # インフォメーションページ
                my $header = HTTP::Headers->new( 'Content-Type' => 'text/html' );
                my $res = HTTP::Response->new( 200, 'OK', $header );
                $client->send_response($res);
                print $client "日本語でおk? PATH: $resource GET: $get_data IP: $remote_addrn";
            }elsif($resource =~ m//$/){ # ファイル名を省略していたらとりあえず"index.html"を表示する
                $client->send_file_response($public_path.$resource."index.html");
            }else{ # それ以外はファイルを探して表示
                $client->send_file_response($public_path.$resource);
            }

        }

    }

    $client->close;

}

sub get_form{
	%in = (); my ($get_data) = @_ ;
	foreach my $data (split(/&/, $get_data)) {
		my ($key, $value) = split(/=/, $data);

		$value =~ s/+/ /g;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg;
		$value =~ s/t//g;

		$in{"$key"} = $value;
	}
}

ブラウザで適当にhttp://127.0.01:8080/-_-/ でアクセスすれば下記のような返答があると思います。
日本語でおk? PATH: /-_-/ GET: IP: 127.0.0.1