bremen 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 987e03779501f1b43cc0702ec8d3e2315f513fed
4
- data.tar.gz: 8a78ebca2f9fc3110e298bd3192c99ef3f33f36a
3
+ metadata.gz: 9e74839d7d457ec1ed46c65c82444f33f62c75d9
4
+ data.tar.gz: fbdafe69f7f70a0b3a1480abcf61f3dca2dd8899
5
5
  SHA512:
6
- metadata.gz: ffac9107f2da27c277441e6f1d40573132eaf620af55c7e8543849da3d1982d122f7499014094e9db4031b318350c1b36b9028b314b7aedf9b3c0ad18c1a91aa
7
- data.tar.gz: ff5a508db79895b47f08c86488807266405dc219512218870305c2a39d3432afa1579e9a160816ba6e3eaed245fd48c7a518496338503c7551ef4e167cb516c0
6
+ metadata.gz: 3aefb2b8221d5ec9c834c4c6ec95a064a33b40d3ada1a7a9351123049388c49c20057a4c787c3d33a3a54d430a8ebd20eeee9d60a3fb676fec275fe06947b3d0
7
+ data.tar.gz: b9d650b0c844d9057460b164cb1d31ccafed870251b804fcb170693926b8b72b1c8c4cacb3a900e9fbae289b5967b83115c61e1c890b557248d2c7aa5f82ac89
@@ -1,3 +1,5 @@
1
+ language: ruby
1
2
  rvm:
3
+ - 2.1
2
4
  - 2.0.0
3
5
  - 1.9.3
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 itzki
1
+ Copyright (c) 2012 deeeki
2
2
 
3
3
  MIT License
4
4
 
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Bremen [![Build Status](https://travis-ci.org/itzki/bremen.png)](https://travis-ci.org/itzki/bremen)
1
+ # Bremen [![Build Status](https://travis-ci.org/deeeki/bremen.png)](https://travis-ci.org/deeeki/bremen) [![Coverage Status](https://coveralls.io/repos/deeeki/bremen/badge.png)](https://coveralls.io/r/deeeki/bremen) [![Code Climate](https://codeclimate.com/github/deeeki/bremen.png)](https://codeclimate.com/github/deeeki/bremen) [![Gem Version](https://badge.fury.io/rb/bremen.png)](http://badge.fury.io/rb/bremen)
2
2
 
3
3
  **Bremen** provides common search interface for some music websites. it supports YouTube, SoundCloud, MixCloud and Nicovideo
4
4
 
@@ -20,7 +20,9 @@ Or install it yourself as:
20
20
 
21
21
  As far as SoundCloud concerned, you need to set your app's client id before using.
22
22
 
23
- Bremen::Soundcloud.client_id = 'your_client_id'
23
+ ```ruby
24
+ Bremen::Soundcloud.client_id = 'your_client_id'
25
+ ```
24
26
 
25
27
  Alternately, you can set 'SOUNDCLOUD_CLIENT_ID' environment variable.
26
28
 
@@ -1,24 +1,26 @@
1
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'bremen/version'
5
5
 
6
- Gem::Specification.new do |gem|
7
- gem.name = "bremen"
8
- gem.version = Bremen::VERSION
9
- gem.authors = ["itzki"]
10
- gem.email = ["itzki.h@gmail.com"]
11
- gem.description = %q{integrated searcher of audio tracks on music sites}
12
- gem.summary = %q{Bremen provides common search interface for some music websites. it supports YouTube, SoundCloud, MixCloud and Nicovideo}
13
- gem.homepage = "https://github.com/itzki/bremen"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "bremen"
8
+ spec.version = Bremen::VERSION
9
+ spec.authors = ["deeeki"]
10
+ spec.email = ["deeeki@gmail.com"]
11
+ spec.summary = %q{integrated searcher of audio tracks on music sites}
12
+ spec.description = %q{Bremen provides common search interface for some music websites. it supports YouTube, SoundCloud, MixCloud and Nicovideo}
13
+ spec.homepage = "https://github.com/deeeki/bremen"
14
+ spec.license = "MIT"
14
15
 
15
- gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
19
20
 
20
- gem.add_development_dependency 'guard-minitest', ['>= 0']
21
- gem.add_development_dependency 'rb-fsevent', ['>= 0']
22
- gem.add_development_dependency 'terminal-notifier-guard', ['>= 0']
23
- gem.add_development_dependency 'rake'
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+ spec.add_development_dependency 'rake', '~> 10'
23
+ spec.add_development_dependency 'coveralls', '~> 0'
24
+ spec.add_development_dependency 'guard-minitest', '~> 2'
25
+ spec.add_development_dependency 'terminal-notifier-guard', '~> 1'
24
26
  end
@@ -55,18 +55,18 @@ module Bremen
55
55
  end
56
56
 
57
57
  def convert_multiply response
58
- return [] if response.scan(%r{<div class="mb16p4">}).flatten.first
58
+ return [] if response.scan(%r{<div class="videoList01">}).flatten.first
59
59
 
60
- response.scan(%r{<div class="thumb_col_1">\n<!---->\n(.*?)\n<!---->\n</div></div>}m).flatten.map do |html|
61
- uid = html.scan(%r{<table [^>]+ summary="(.+)">}).flatten.first
62
- min, sec = html.scan(%r{<p class="vinfo_length"><span>([\d:]+)</span></p>}).flatten.first.to_s.split(':')
63
- created_at = Time.parse(html.scan(%r{<strong>(.+:\d\d)</strong>}).flatten.first.to_s.gsub(/\xE5\xB9\xB4|\xE6\x9C\x88|\xE6\x97\xA5/n, '')).utc
60
+ response.scan(%r{<li class="item" [^>]+ data-enable-uad="1">\n(.*?)\n </li>}m).flatten.map do |html|
61
+ uid = html.scan(%r{<div class="itemThumb" [^>]+ data-id="(.+)">}).flatten.first
62
+ min, sec = html.scan(%r{<span class="videoLength">([\d:]+)</span></div>}).flatten.first.to_s.split(':')
63
+ created_at = Time.parse(html.scan(%r{<span class="time">(.+:\d\d)</span>}).flatten.first.to_s.gsub(/\xE5\xB9\xB4|\xE6\x9C\x88|\xE6\x97\xA5/n, '')).utc
64
64
  new({
65
65
  uid: uid,
66
66
  url: "#{BASE_URL}watch/#{uid}",
67
- title: CGI.unescape(html.scan(%r{<a [^>]+ class="watch" [^>]+>(.+)</a>}).flatten.first.to_s),
67
+ title: CGI.unescape(html.scan(%r{<p class="itemTitle">\n\s+<a [^>]+>(.+)</a>}).flatten.first.to_s),
68
68
  length: min.to_i * 60 + sec.to_i,
69
- thumbnail_url: html.scan(%r{<img src="([^"]+)"[^>]*class="img_std96" ?/?>}).flatten.first,
69
+ thumbnail_url: html.scan(%r{<img [^>]+data-original="([^"]+)"[^>]*data-thumbnail [^>]+/?>}).flatten.first,
70
70
  created_at: created_at,
71
71
  updated_at: created_at,
72
72
  })
@@ -1,3 +1,3 @@
1
1
  module Bremen
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
@@ -1,44 +1,41 @@
1
1
  <html>
2
2
  <body>
3
- <div class="thumb_col_1">
4
- <!---->
5
- <table width="624" cellpadding="4" cellspacing="0" summary="sm11111111">
6
- <tr valign="top">
7
- <td><div id="item1" style="display:none;" onMouseover="showOBJ('thumb_uad_msg_sm11111111')" onMouseout="hideOBJ('thumb_uad_msg_sm11111111')">
8
- <div id="thumb_uad_msg_sm11111111" style="display:none; position:absolute;">
9
- <p id="item1_uad_comment" class="uad_comment"><span style="color:#666;">-</span></p>
10
- </div>
11
- </div>
12
- <div id="item1_thumb" class="uad_thumbfrm">
13
- <table cellspacing="0" cellpadding="0">
14
- <tr>
15
- <td onMouseover="showOBJ('thumb_uad_msg_sm11111111')" onMouseout="hideOBJ('thumb_uad_msg_sm11111111')">
16
- <p><a href="watch/sm11111111"><img src="http://tn-skr4.smilevideo.jp/smile?i=11111111" alt="" class="img_std96"></a></p>
17
- <p class="vinfo_length"><span>1:01</span></p>
18
- </td>
19
- <td class="font10" align="right"><div style="width:92px; overflow:hidden; padding-left:4px;"><nobr>Views: <strong class="vinfo_view">111</strong><br></nobr>
20
- <nobr>Comments: <strong class="vinfo_res">1</strong><br></nobr>
21
- <nobr>My Lists: <a href="mylistcomment/video/sm11111111" style="color:#393F3F;"><strong class="vinfo_mylist">9</strong></a><br></nobr>
22
- <nobr>Ads: <a href="http://uad.nicovideo.jp/ads/?vid=sm11111111" style="color:#393F3F;"><strong id="item1_uad_point_number" class="vinfo_uadp">0</strong></a><br></nobr>
23
- </div></td>
24
- </tr>
25
- </table>
26
- </div>
27
- </td>
28
- <td style="background:url('http://res.nimg.jp/img/common/thumb/split_line.png') no-repeat bottom left; padding-bottom:6px;">
29
- <div style="width:412px; overflow:hidden;">
30
- <p class="font12 thumb_num">
3
+ <div class="contentBody video uad videoList01">
4
+ <ul class="list">
5
+
6
+ <li class="item" data-video-item data-id="sm11111111" data-enable-uad="1">
7
+ <div class="videoList01Wrap">
8
+ <p class="itemTime"><span class="time">14/06/15 00:00</span><span class="separate">投稿</span></p>
9
+ <div class="uadWrap">
10
+ <div class="itemThumbBox"><div class="itemThumb" data-video-thumbnail data-id="sm11111111"><a href="/watch/sm11111111?ref=search_key_video" class="itemThumbWrap" data-link
11
+ ><img src="http://res.nimg.jp/images/noimage.png" title="" alt="" class="noImage"><img class="jsLazyImage thumb" src="images/1x1.gif" data-original="http://tn-skr2.smilevideo.jp/smile?i=11111111.M" alt="Title" data-thumbnail style="
12
+
13
+ "></a></div><span class="videoLength">1:01</span></div>
14
+
15
+ <div class="balloon recent active" data-uad-comment style="display:none"></div>
16
+ </div>
17
+ </div>
31
18
 
19
+ <div class="itemContent">
20
+ <p class="itemTitle">
21
+ <a title="Title" href="/watch/sm11111111?ref=search_key_video">Title</a>
22
+ </p>
23
+ <div class="wrap">
24
+ <p title="This is a description." class="itemDescription">This is a description.</p>
25
+ <p class="itemComment">Comment</p>
26
+ </div>
27
+ <div class="itemData">
28
+ <ul class="list">
29
+ <li class="count view">再生<span class="value">111</span></li>
30
+ <li class="count comment">コメ<span class="value">1</span></li>
31
+ <li class="count mylist">マイ<span class="value"><a href="/mylistcomment/video/sm11111111">1</a></span></li>
32
+ <li class="count ads">宣伝<span class="value"><a href="http://uad.nicovideo.jp/ads/?vid=sm11111111" data-uad-point>0</a></span></li>
33
+ </ul>
34
+ </div>
35
+ </div>
32
36
 
33
- Uploaded on: <strong>Nov 11, 2012, 00:00</strong>
34
- </p>
35
- <p class="font16" style="margin:2px 0;"><nobr><a href="watch/sm11111111" class="watch" title="Title">Title</a></nobr></p>
36
- <p class="vinfo_description" title="This is a description.">This is a description.</p>
37
+ </li>
38
+ </ul>
37
39
  </div>
38
- </td>
39
- </tr>
40
- </table>
41
- <!---->
42
- </div></div>
43
40
  </body>
44
41
  </html>
@@ -1,6 +1,8 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/pride'
3
3
  require 'bremen'
4
+ require 'coveralls'
5
+ Coveralls.wear!
4
6
 
5
7
  def fixture path
6
8
  File.read("#{File.dirname(__FILE__)}/fixtures/#{path}")
metadata CHANGED
@@ -1,80 +1,95 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bremen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
- - itzki
7
+ - deeeki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-21 00:00:00.000000000 Z
11
+ date: 2014-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: guard-minitest
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rb-fsevent
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10'
41
41
  - !ruby/object:Gem::Dependency
42
- name: terminal-notifier-guard
42
+ name: coveralls
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: guard-minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: integrated searcher of audio tracks on music sites
68
+ version: '2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: terminal-notifier-guard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
83
+ description: Bremen provides common search interface for some music websites. it supports
84
+ YouTube, SoundCloud, MixCloud and Nicovideo
70
85
  email:
71
- - itzki.h@gmail.com
86
+ - deeeki@gmail.com
72
87
  executables: []
73
88
  extensions: []
74
89
  extra_rdoc_files: []
75
90
  files:
76
- - .gitignore
77
- - .travis.yml
91
+ - ".gitignore"
92
+ - ".travis.yml"
78
93
  - Gemfile
79
94
  - Guardfile
80
95
  - LICENSE.txt
@@ -105,8 +120,9 @@ files:
105
120
  - spec/fixtures/youtube_multi.json
106
121
  - spec/fixtures/youtube_single.json
107
122
  - spec/spec_helper.rb
108
- homepage: https://github.com/itzki/bremen
109
- licenses: []
123
+ homepage: https://github.com/deeeki/bremen
124
+ licenses:
125
+ - MIT
110
126
  metadata: {}
111
127
  post_install_message:
112
128
  rdoc_options: []
@@ -114,21 +130,20 @@ require_paths:
114
130
  - lib
115
131
  required_ruby_version: !ruby/object:Gem::Requirement
116
132
  requirements:
117
- - - '>='
133
+ - - ">="
118
134
  - !ruby/object:Gem::Version
119
135
  version: '0'
120
136
  required_rubygems_version: !ruby/object:Gem::Requirement
121
137
  requirements:
122
- - - '>='
138
+ - - ">="
123
139
  - !ruby/object:Gem::Version
124
140
  version: '0'
125
141
  requirements: []
126
142
  rubyforge_project:
127
- rubygems_version: 2.0.3
143
+ rubygems_version: 2.3.0
128
144
  signing_key:
129
145
  specification_version: 4
130
- summary: Bremen provides common search interface for some music websites. it supports
131
- YouTube, SoundCloud, MixCloud and Nicovideo
146
+ summary: integrated searcher of audio tracks on music sites
132
147
  test_files:
133
148
  - spec/bremen/base_spec.rb
134
149
  - spec/bremen/mixcloud_spec.rb