Class RDtitle
In: rdstyle.rb
Parent: Object

RDtitle

タイトル取得と全情報管理するクラス

RD-X3/RD-X5/RD-X6兼用

このクラスを起動する事で全タイトル情報を取得する。

all メソッドでタイトル情報(個々はRDmemberクラス)の入った配列を操作出来る。

USAGE

  1. 起動する(同時に全タイトル情報を取得/少し時間かかります)
     rdstyle = RDtitle.new(host, user, password)
    
  2. 例えば、csv形式で全データ出力
     print rdstyle.to_csv
    

Methods

Classes and Modules

Class RDtitle::RDchapterform

Public Class methods

RDのネットdeナビにログインし、データを取得する。

host ホスト名 user ユーザー名 password パスワード

[Source]

# File rdstyle.rb, line 62
  def initialize(host, user, password)

    # RDhttpクラスを初期化して

    @rdhttp = RDhttp.new(host, user, password)
    @db = Array.new
    @dbf = Array.new
    @db_n2m = Hash.new

    # get_rootにより全タイトル情報を取得する

    get_root()
    set_no2member()
  end

Public Instance methods

全録画データを返す (RDmemberの入った配列)

[Source]

# File rdstyle.rb, line 77
  def all
    return @db
  end

全フォルダデータを返す (フォルダーのRDmemberの入った配列)

[Source]

# File rdstyle.rb, line 83
  def all_folder
    return @dbf
  end

タイトルの変更 memberはRDmemberオブジェクト newtitleは新規タイトル文字列

[Source]

# File rdstyle.rb, line 134
  def change_title(member, newtitle)
    src = @rdhttp.getcontents(member.uri)
    if src =~ /^ERROR/
      raise src
    end

    cform = parse_chapter(src)
    cform.change_title(newtitle)
    response = @rdhttp.post_cform(cform)
    response = Kconv.tosjis(response.gsub(/\\r|\\n/, ""))
    if response =~ /正常に登録/ or response =~ /actfnc\(\)/
      member.title = newtitle
    end
    return response

    #   STDERR << "[RDtitle] ERROR on change_title\n"

    #   exit

    #end


  end

チャプターを取得する

[Source]

# File rdstyle.rb, line 125
  def get_chapter(no)
    #STDERR << @db[1].uri << "\n"

    src = @rdhttp.getcontents(@db[1].uri)
    parse_chapter(src)
  end

フォルダ内タイトルの取得 folderはフォルダを表すRDmemberクラス

[Source]

# File rdstyle.rb, line 113
  def get_folder(folder)
    #STDERR << folder.uri << "\n"

    src = @rdhttp.getcontents(folder.uri)

    src.scan(/^c1[\S\s]+?$/) do |scan| #/

      member = java2member(scan)
      member.set_folder(folder)
      @db << member
    end
  end

ルートタイトル一覧の取得とフォルダ内のファイルも取得 データは@db等に格納される

[Source]

# File rdstyle.rb, line 94
  def get_root
    src = @rdhttp.getcontents("/title/b_title.htm")
    #エラー時は,エラーを発生させて終了

    if src =~ /^ERROR/
      raise src
    end
    
    case @rdhttp.rdtype 
    when "x5"
      get_root_rdx5(src)
    when "x3"
      get_root_rdx3(src)
    end

  end

番号入力からメンバー情報を返す

[Source]

# File rdstyle.rb, line 88
  def no2member(no)
    return @db_n2m[no.to_i]
  end

全データをcsv化する

[Source]

# File rdstyle.rb, line 156
  def to_csv
    buf = ""
    @db.each do |item|
      buf << item.to_csv
    end
    return buf
  end

[Validate]