Class: Nicos::Mylist

Inherits:
Object
  • Object
show all
Includes:
Connector::SetWait
Defined in:
lib/classes/mylist.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Connector::SetWait

#setWait

Constructor Details

#initialize(mylist_id) ⇒ Mylist

Returns a new instance of Mylist.



14
15
16
17
18
# File 'lib/classes/mylist.rb', line 14

def initialize (mylist_id)
  @mylist_id  = mylist_id    
  @movies     = []
  @available  = false
end

Instance Attribute Details

#authorString

作成者の名前

取得可能なメソッド Mylist::getInfo

Returns:

  • (String)


267
268
269
# File 'lib/classes/mylist.rb', line 267

def author
  @author
end

#availableBoolean

このインスタンスがgetInfo等によって正常に情報を取得できている場合、trueとなる。 各種メソッドの実行には、これがtrueであることが要求される。

Returns:

  • (Boolean)


179
180
181
# File 'lib/classes/mylist.rb', line 179

def available
  @available
end

#create_timeFixnum

マイリスト作成日時

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


236
237
238
# File 'lib/classes/mylist.rb', line 236

def create_time
  @create_time
end

#default_sortFixnum

ソート順の設定

ソート順の設定 取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


228
229
230
# File 'lib/classes/mylist.rb', line 228

def default_sort
  @default_sort
end

#descriptionString

マイリストの説明文

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (String)


210
211
212
# File 'lib/classes/mylist.rb', line 210

def description
  @description
end

#icon_idFixnum

アイコンの色?

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


252
253
254
# File 'lib/classes/mylist.rb', line 252

def icon_id
  @icon_id
end

#moviesArray<Movie>

マイリストが含む動画インスタンスの配列

getInfo等のメソッドを利用した際に、そのマイリストが含む動画の インスタンスが配列として自動的に作られ、moviesに収められる。

Returns:



274
275
276
# File 'lib/classes/mylist.rb', line 274

def movies
  @movies
end

#mylist_idFixnum

マイリストID

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


187
188
189
# File 'lib/classes/mylist.rb', line 187

def mylist_id
  @mylist_id
end

#publicFixnum

公開設定

調査中 取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


219
220
221
# File 'lib/classes/mylist.rb', line 219

def public
  @public
end

#sort_orderFixnum

現在のソート順

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


260
261
262
# File 'lib/classes/mylist.rb', line 260

def sort_order
  @sort_order
end

#titleString

マイリストのタイトル

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (String)


202
203
204
# File 'lib/classes/mylist.rb', line 202

def title
  @title
end

#update_timeFixnum

マイリストの更新日時

取得可能なメソッド Mylist::getInfo

Mylist::getHtmlInfo

Returns:

  • (Fixnum)


244
245
246
# File 'lib/classes/mylist.rb', line 244

def update_time
  @update_time
end

#user_idFixnum

ユーザID

取得可能なメソッド Mylist::getHtmlInfo

Returns:

  • (Fixnum)


194
195
196
# File 'lib/classes/mylist.rb', line 194

def user_id
  @user_id
end

Instance Method Details

#getHtmlInfoObject



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/classes/mylist.rb', line 134

def getHtmlInfo
  @available = false

  res = connect( 
    Nicos::Connector::MylistHtml.new(),
    :html )
  parsed = parse(res[:result]) do |result|
    Nicos::Parser::Html::mylist(result[:body])
  end

  { 
    :parsed  => parsed, 
    :status  => res[:status][:status],
    :retry   => res[:status][:retry]
  }      
end

#getInfoFixnum

マイリストのAtomフィードから、マイリストとそれに含まれる動画の情報を取得する。

Returns:

  • (Fixnum)

    Trigram法による、



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/classes/mylist.rb', line 117

def getInfo
  @available = false

  res = connect( 
    Nicos::Connector::MylistAtom.new(), 
    :atom )
  parsed = parse(res[:result]) do |result|
    Nicos::Parser::Xml::mylistAtom(result[:body])
  end

  { 
    :parsed  => parsed, 
    :status  => res[:status][:status],
    :retry   => res[:status][:retry]
  }      
end

#getSimilarityFixnum

自分に含まれている動画のタイトルをすべての組み合わせにおいて比較し、 類似度の平均を返す。

Returns:

  • (Fixnum)

    編集距離に基づく類似度。上限は1、下限はなし。



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/classes/mylist.rb', line 74

def getSimilarity
  l = @movies.length - 1
  sim = 0.0
  simAry = []
  count_o = 0
  count_i = 0
  
  @movies.each do |movie|
    puts "\s" + movie.title
  end

  if @movies.length >= 2 
    while count_o <= l do
      count_i = count_o + 1
      while count_i <= l do
        simAry.push(
          sim(
            @movies[count_i].title, 
            @movies[count_o].title,
            3
          )
        )
        count_i += 1
      end
      count_o += 1
    end
  
    t = 0
    simAry.each { |_sim| t += _sim }
    similarity = t / simAry.length
  elsif @movies.length == 1
    similarity = 1
  else
    similarity = 0
  end
      p similarity
  ( similarity * 100 ).round / 100.0 
end

#set(paramObj) ⇒ Object

Nicos::Movie#set を参照。



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/classes/mylist.rb', line 152

def set(paramObj)
  paramObj.each_key do |key|
    param = paramObj[key]
    case key
    when "mylist_id",  :mylist_id     then @mylist_id = param.to_i
    when "user_id",    :user_id       then @user_id = param.to_i
    when "title",      :title         then @title = param
    when "description",:description   then @description = param
    when "public",     :public        then @public = param.to_i
    when "default_sort",:default_sort then @default_sort = param.to_i
    when "create_time",:create_time   then @create_time = param.to_i
    when "update_time",:update_time   then @update_time = param.to_i
    when "icon_id",    :icon_id       then @icon_id = param.to_i
    when "sort_order", :sort_order    then @sort_order = param.to_i
    when "movies",     :movies        then @movies = param
    when "updated",    :updated       then @update_time = param
    when "author",     :author        then @author = param
    end
  end   
end