wxDev-C++(mingw)の勉強がてら作った小物ツール。 ニコニココメントをマージするためのものです。
BOON SUTAZIOのお供に、、なったらいいな
(てことで、ここまとめサイトですが、公開場所がないのでこの場所借りてます)
残していた実装や修正を行いまして、RCを取って正式版としました。 HPを作りましたのでそちらに最新版を置いときます。(といってもreadmeの写しな体裁ですが)
qnd.info http://qnd.info.googlepages.com/home
ここは道標代わりに残しておきますが、問題出ましたらさくっと消してください。
以下、情報としては古いので注意です。
【重要】ここにあるものは古いバージョンです。
最新バージョン NicoNico XML File to Merge Version Version 0.02 RC 20080115-01
DLL 1
DLL 2
(アップロード制限のためファイル分けてます)
IN1:10万コメント IN2:10万コメント OUT:20万コメント
10万 + 10万 = 20万 = 60 秒
各 10 万件のコメントファイル2つのマージ処理にかかる時間 約 60 秒 (in1読込 約 20秒 in2読込 約 20 秒 出力 約 20秒)
テストPC CPU:AMD Athlon64 3G メモリ:1G
PC性能やその他なんやかやで上下します
Usage: nxml2merge [Options]
Options (全て省略可能)
-o --output (初期値 outfile.xml)
出力 XML File
-i1 --infile1 (初期値 infile1.xml)
入力 XML File1, 出力 XML File のベース
-i2 --infile2 (初期値 infile2.xml)
入力 XML File2, ベースに追加
-at --addtime (初期値 0)
入力 XML File2 のコメント時間に一律加算する秒 (1秒=100)
-rn --renumbering (初期値 0, 0:NO 1:YES)
XML内のNoを1番から振り直すか
※このオプションは入力File1,2での同一NOに対する扱いも決定します
0=file2の同一Noコメントを無視 1=Noを変更して出力対象に
-ml --messagelevel (初期値 2, 0:なし 1:処理時間だけ 2:経過も)
処理中のメッセージ表示頻度
-sb --sortby (初期値 date, 指定可能列: fileno, date, no, vpos, user_id)
出力 XML File のソート順序指定
複数指定はコンマ(,)で区切る, 逆順指定可能 (desc)
列:fileno はinfile1,infile2の出力順を指定 (renumbering 時に有効)
例. -sb "user_id, date desc"
(ユーザID昇順で日付逆順毎に出力)
-bc --booncomment (初期値 無し)
BOON SUTAZIO用のXMLコメント(VIDEO ID)をその有無に関わらず手動付与
例. -bc "sm1234567"
(<!-- BoonSutazioData=sm1234567 --> を出力XMLに付与)
※未実装 -ni --ngid (初期値 無し)
入力File1,2 共に user_id 固定値でNG指定 (出力対象としない)
例. -ni "abcdefghijklmn"
※未実装 -nc --ngcomment (初期値 無し)
入力File1,2 共に コメント欄の内容を正規表現でNG指定 (出力対象としない)
例. -nc "^[wWwW].+$"
※未実装 -sf --singlefile (初期値 無し)
入力 XML File1 のみで各変換処理を行い出力する
-h --help
ヘルプ表示 (このメッセージ)
-v --version
バージョン表示
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111111" mail="shita" no="18" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントひとつ</chat> <chat date="1111111111" no="19" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントふたつ</chat> <chat date="1111111111" no="20" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> </packet>
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111111" no="20" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> <chat date="1111111111" mail="shita" no="21" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントよっつ</chat> <chat date="1111111111" no="22" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントいつつ</chat> </packet>
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm2222221 --> <packet><thread last_res="0" resultcode="0" thread="2222222221" ticket="0x5678abcd"/> <view_counter video="0"/> <chat date="1111111100" no="20" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントむっつ</chat> <chat date="1111111102" mail="shita" no="21" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントななつ</chat> <chat date="1111111103" no="22" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントやっつ</chat> </packet>
元動画は同じだが、取得時期の違い等でコメントが複数ある
% nxml2merge.exe -i2 infile2-1.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111111" mail="shita" no="18" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントひとつ</chat> <chat date="1111111111" no="19" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントふたつ</chat> <chat date="1111111111" no="20" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> <chat date="1111111111" mail="shita" no="21" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントよっつ</chat> <chat date="1111111111" no="22" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントいつつ</chat> </packet>
% nxml2merge.exe -i2 infile2-2.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111102" mail="shita" no="21" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントななつ</chat> <chat date="1111111103" no="22" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントやっつ</chat> <chat date="1111111111" mail="shita" no="18" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントひとつ</chat> <chat date="1111111111" no="19" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントふたつ</chat> <chat date="1111111111" no="20" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> </packet>
元動画は違うものだが、パート分け等でファイル結合したもの
% nxml2merge.exe -rn 1 -at 1800 -i2 infile2-1.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111111" mail="shita" no="1" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントひとつ</chat> <chat date="1111111111" no="2" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントふたつ</chat> <chat date="1111111111" no="3" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> <chat date="1111111111" no="4" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="2912">コメントみっつ</chat> <chat date="1111111111" mail="shita" no="5" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="2911">コメントよっつ</chat> <chat date="1111111111" no="6" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="2912">コメントいつつ</chat> </packet>
% nxml2merge.exe -rn 1 -at 1800 -i2 infile2-2.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- BoonSutazioData=sm1111111 --> <packet> <thread last_res="0" resultcode="0" thread="1111111111" ticket="0x1234abcd"/> <view_counter video="0"/> <chat date="1111111100" no="1" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="2912">コメントむっつ</chat> <chat date="1111111102" mail="shita" no="2" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="2911">コメントななつ</chat> <chat date="1111111103" no="3" thread="2222222221" user_id="abcdefghijklmnopq1234567890" vpos="2912">コメントやっつ</chat> <chat date="1111111111" mail="shita" no="4" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1111">コメントひとつ</chat> <chat date="1111111111" no="5" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントふたつ</chat> <chat date="1111111111" no="6" thread="1111111111" user_id="abcdefghijklmnopq1234567890" vpos="1112">コメントみっつ</chat> </packet>
ニッチツールをバージョンアップしました。 ttp://www29.atwiki.jp/bsmw/pages/23.html NicoNico XML File to Merge Version 0.02 RC 20080110-01 -- 開発環境を ruby から wxDev-C++(mingw) に変更 --- 環境変化によるバグ確率高し -- ruby版と同等機能を実装 -- ソートオプション実装 -- BOON用XMLコメント手動出力実装 1M以上のアップロードは怒られたのでファイルを分けてます。 続きはまた今度やります。 >>274 まだ未実装分がありますが、ソートオプションは実装したので、ひとまず公開します。 環境を変えたんで、人柱度アップでアレなのですが、よかったら使ってみてください。 >>829 InFile1もInFile2も全部一緒にして日付ソートかけてから出力しますので、 残念ながら、1の後2というような動作にはなりません。 今回の実装でソートを追加しましたので、その指定で # nxml2merge -sb "fileno, date" みたいな感じで指定してやれば希望通りの動きになるはずです。
BOONアップデートで盛り上がってる所からは程遠い内容ですが ニッチツールをひっそりとバージョンアップ。 DLLを更新したのでDLL1,2と本体をDLして下さい。 前版でもあった意図しないリプレース問題ですが、 今回ので解決したと思います、多分。 残り実装予定のシングルファイルオプションはまた今度。 NicoNico XML File to Merge Version 0.02 RC 20080115-01 -- &lt; や &gt;等 特殊文字が変換されたままだったのを修正 -- user_idの完全一致によるNG指定オプション実装 -- コメントの正規表現によるNG指定オプション実装
2011-02-14
2010-12-15
2010-06-09
2009-10-05
2009-02-14
2008-12-16
2008-11-07
2008-10-18
2008-09-13
2008-08-05
2008-06-27
2008-05-12
2008-05-10
2008-05-06
2008-03-02
2008-02-27
2008-01-17
2008-01-15
2008-01-07