ruby - RSS 作成 - メインモジュール

 
1. 概要
2. モジュール

1. 概要

 まずは、メインモジュールからかな。  とは、言うものの、構成を考えながらなので少しずつ。

2. モジュール

 内容は徐々に変わっていくと思います。
#!/usr/bin/env ruby
=begin

=end

$LOAD_PATH << File.dirname(File.expand_path(__FILE__))

require('pry')
require('openssl')
require('Contents')
require('ExceptLog')
require('DBaccess')
require('ReadConf')
require('CheckParent')

begin
  OpenSSL::SSL.module_eval{ remove_const(:VERIFY_PEER) }
  OpenSSL::SSL.const_set( :VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE )

  readconf = ReadConf.new
  $parameter = readconf.execute(File.dirname(File.expand_path(__FILE__))) # コンフィグレーションファイルの読込

  database = DBaccess.new()
  database.connect($parameter[:database])                                 # 接続
  feed = database.feed                                                    # フィードテーブルの読込

  parent = CheckParent.new(feed['home']);

  tree     = { feed['home'] => 'UNKNOWN' }
  checked  = {}

  contents = Contents.new
  contents.feed=(feed)

  start = Time::now()
  puts("開始時刻               "+start.strftime("%Y年%m月%d日 %H:%M:%S"))

  parent.execute(feed['home'], tree, checked, contents)                   # コンテンツ収集

  collectend = Time::now()
  puts("コンテンツ収集完了時刻 "+collectend.strftime("%Y年%m月%d日 %H:%M:%S"))

  database.content=(contents.detail)                                      # コンテンツテーブル更新

  contenttend = Time::now()

  puts("コンテンツ登録完了時刻 "+contenttend.strftime("%Y年%m月%d日 %H:%M:%S"))

  #binding.pry

  Pathname.new(File.dirname(File.expand_path(__FILE__))+'/tree.dmp').open('wb') do | file |
    Marshal.dump(tree, file)
  end

  Pathname.new(File.dirname(File.expand_path(__FILE__))+'/contents.dmp').open('wb') do | file |
    Marshal.dump(contents.detail, file)
  end

rescue => error
  exeptlog = ExceptLog.new
  exeptlog.execute(self, error)
  exit 1
ensure

end

 このサイトを読んでいる方より、html 形式のサイトマップが欲しいという要望がありましたので、これで取得している tree 構造のコンテンツを .html 形式で出力する仕組みも作ろうかと考えています(2018年11月08日)。  末尾の方に Marshal.dump で2つのオブジェクトを出力する処理を加えました(2018年11月09日)。  サイトのツリー構造のオブジェクトと各コンテンツの情報を持つオブジェクトを出力しています。  これを html 形式のサイトマップを作成するのに流用します。  一連の流れで、サイトマップを作成することも可能ですが、本処理で、3000ページほどの内容を処理するのに 10分程度かかるので、サイトマップを作成するプログラムのデバッグに影響が出るため、切り離しました。
 
 
カウンタバックグラウンド