2ちゃんねるBOTの作り方 設計編

2ちゃんねるBOTの作り方 準備編 - GIOの日記

要件を固めよう

1.ニュー速VIPの全てのスレッドから画像を取得
2.シンプルに!
3.テストコードは書かない!

プログラム言語を決めよう

何でもいいです。
パフォーマンスを求めるならC、C++Javaで。
今回は読み書きの簡単なRubyを採用

処理の流れをもう一度確認

1.掲示板一覧ファイルを読み込む
2.対象の掲示板リンクを探す
3.対象のsubject.txtを読み込む
4.対象のスレッドを探す
5.DATファイルを読み込む
6.DATファイルをゴニョゴニョする

必要な機能を整理しよう

1.掲示板一覧からニュー速VIPのURLを取得
2.ニュー速VIPの全てのスレッド情報を取得
3.全てのスレッドから全ての画像URLを取得
4.全ての画像をダウンロード
5.同じ画像をダウンロードしないようにスレッド情報を保存

ディレクトリ構成でもきめてみよう

bot2ch/ ... アプリケーションルート
bot2ch/images/ ... ダウンロード画像の保存先
bot2ch/log/ ... スレッド情報の保存先
bot2ch/bot2ch.rb ... アプリケーション本体

クラス設計してみよう

とりあえずのインターフェースを決めてしまおう。
コードを書きながら柔軟に対応する感じに。

module Bot2ch
  class Menu
    def get_board
    end
  end
  class Board
    def get_threads
    end
  end
  class Thread
    def get_images
    end
  end
  class Downloader
    def download_image
    end
  end
  class App
    def execute
    end
  end
end

Rubyでget〜は変な感じだけど気にしない方向で。
思いつきで書いてるので、後から変わるかもしれませんが、
設計編おしまい!