Class: Niconico::Live::Client
- Inherits:
-
Object
- Object
- Niconico::Live::Client
- Defined in:
- lib/niconico/live/client.rb,
lib/niconico/live/client/search_result.rb,
lib/niconico/live/client/search_filters.rb
Defined Under Namespace
Modules: SearchFilters Classes: SearchResult
Instance Method Summary collapse
-
#initialize(agent) ⇒ Client
constructor
A new instance of Client.
- #remove_timeshifts(ids) ⇒ Object
- #search(keyword, filters = []) ⇒ Object
Constructor Details
Instance Method Details
#remove_timeshifts(ids) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/niconico/live/client.rb', line 17 def remove_timeshifts(ids) post_body = "delete=timeshift&confirm=#{Util::fetch_token(@agent)}" if ids.size == 0 return end ids.each do |id| id = Util::normalize_id(id, with_lv: false) # mechanize doesn't support multiple values for the same key in query. post_body += "&vid%5B%5D=#{id}" end @agent.post( 'http://live.nicovideo.jp/my.php', post_body, 'Content-Type' => 'application/x-www-form-urlencoded' ) end |
#search(keyword, filters = []) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/niconico/live/client.rb', line 34 def search(keyword, filters = []) filter = filters.join('+') page = @agent.get( 'http://live.nicovideo.jp/search', track: '', sort: 'recent', date: '', kind: '', keyword: keyword, filter: filter ) results_dom = page.at('.result_list') items = results_dom.css('.result_item') search_results = items.map do |item| title_dom = item.at('.search_stream_title a') next nil unless title_dom id = title_dom.attr(:href).scan(/lv[\d]+/).first title = title_dom.text.strip description = item.at('.search_stream_description').text.strip SearchResult.new(id, title, description) end search_results.compact end |