nakashima723 / P2Pcrwlr

P2Pクローラ
https://twitter.com/nakashima723
Other
0 stars 0 forks source link

監視対象ファイルの保存場所と、フォルダ構成について #13

Open nakashima723 opened 1 year ago

nakashima723 commented 1 year ago

今のところ以下のような形で考えています。

ルートフォルダ以下には、まずP2Pクライアントごとに、監視対象をファイル名別に格納するフォルダを並べます。 (Torrentクライアント以外に対応する予定は今のところありませんが、一応)

ルートフォルダ  ―Torrent   ―監視対象フォルダA   ―監視対象フォルダB   ―監視対象フォルダC ......  ―Winny   ―監視対象フォルダD ......  ―Share

さらに、「Torrent」以下の監視対象フォルダの内容はこのようになっています。 IPアドレス別に、証拠ピース・ログファイル格納用フォルダがある形です。

監視対象フォルダA(名前は取得対象となっているファイルの名前+torrentがアップされた日付)  ―torrentファイル  ―123-456-789-000(証拠ピース格納用フォルダ)   ―証拠ピース001   ―証拠ピース002   ―complete数、シード状況など?を記録したログファイル  ―999-876-543-210   ―(以下同様)

1つの監視対象フォルダごとに、格納されているtorrentファイルは1つだけです。

このようにする理由ですが、例えばnyaaとTokyo tokyokanで、別の日付にまったく同一のtorrentファイルがアップされていることがあります。サイト別にフォルダを分けたりすると、証拠採取の処理が重複していしまいます。

そこでtorrentファイル内の対象ファイル名をもとに、監視フォルダを生成します。新しいtorrentファイルを取得したときは、まず対象ファイル名でサーチします。

そして「同じファイル名のフォルダがすでに存在した場合は、格納済みのtorrentと新しく取得したtorrentのファイルハッシュを比較して判断する」「もし同じ名前の別ファイルなら、別フォルダに振り分ける」という処理を行います。これなら証拠が重複せず、人が判断して弾く必要もなくなります。

tenax66 commented 1 year ago

この構成だと、現在pythonのモジュールとして使っているtorrentフォルダと監視対象格納フォルダとしてのTorrentがかぶってしまいそうなので、証拠格納用のフォルダの方をもう一階層深くするのはどうでしょう。

例えば、evidence フォルダを間に挟むことにして

ルート
┣ torrent(pythonのモジュール)
┣ xxx.py
┗ evidence
    ┣Torrent
    ┃  ┣ torrentファイル
    ┃  ┣ 123-456-789-000
    ┃  ┗ 999-876-543-210
    ┗Winny

のような感じはいかがでしょうか。

tenax66 commented 1 year ago

pull request #12 にあった

現在のフォルダ構成だと torrent/tests ではなく tests フォルダを指定する必要があった

というコメントについても、上記の構成を採用すればtorrent/testsフォルダのままで大丈夫になると思います。 (pythonのモジュールとしてのtorrentフォルダとダウンロード先としてのTorrentフォルダを区別し、モジュール側のフォルダ構成は自由にできるようにする)

nakashima723 commented 1 year ago

ありがとうございます!とりあえずそのような感じにしてみました。

ただし evidence>torrent 以下に入るフォルダは、上のとおりIP別ではなくて

監視対象ファイル名+日付のフォルダ
 ┣ torentファイル
 ┣ 123-456-789-000
 ┃┣ 各種ログ(シード状態、complete数の履歴など)
 ┃┣ 収集されたピース
 ┃┗ 収集されたピース
 ┗ 999-876-543-210 ...

のようにしたいと考えています。 証拠採取システム側からは各フォルダ内のtorrentを読んでもらって、定期的にピース収集とログの記録を行ってもらいます。

scraper.pyは「ルート>Torrent」フォルダに格納し、そこからで動くようにしましたので適当な検索語(「雑誌」とか)で試してみてください。

test_download_torrent.py まわりは変更していませんが、これのダウンロード先も上記のフォルダ構成に準じてもらえると、今後のピースファイル収集テストに繋げやすいかもしれません。scraper.pyで集めたtorrentファイルは、そのままだと基本アウトになっちゃいますし……

tenax66 commented 1 year ago

ありがとうございます! Torrenttorrentがpythonのフォルダとして両方あるのは混乱するので、scraper.pyを格納するフォルダはたとえばscrapingのような名前にしたほうがよいのではないかと思います。 (ナカシマ先生が開発しているほうとわたしが開発しているほうでフォルダを分けて整理したい意図)

ちなみに、pythonのプロジェクトのフォルダ名は、

全て小文字の短い名前、アンダースコアは使わない が公式のガイドラインとなっています。

参考: https://qiita.com/shiracamus/items/bc3bdfc206b39e0a75b2

スクリーンショット 2023-03-26 17 47 15
nakashima723 commented 1 year ago

オッ了解です というか「torrent」と「Torrent」は統合されるのかと思ってたら、されなかった(ローカルでは同じフォルダになってました)

とりあえず私が触っていくやつは「crowler」フォルダに格納しました!これでスッキリや

tenax66 commented 1 year ago

ありがとうございます!