billboard-top-100 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77c0383099b18c58a6211032ed94060204c1e489
4
- data.tar.gz: b5abee0f7f955ebffb2d6be1dc3f3dbef238b013
3
+ metadata.gz: 277267783532ecb5cc48dec7f1f8eda7df003599
4
+ data.tar.gz: 5fc7d145c7b85903bd2fdc6ef26d04ea3499b541
5
5
  SHA512:
6
- metadata.gz: c3f5456ae1cacdc52beaa81aa62eb30e9b2824613403a3ff599afcdba4cc1fdf65e683802d2e51bd9b8eb38eca47c7ec72aab704379af7fa211254f20e21357b
7
- data.tar.gz: 2fbd572a6bfa69c2e257fa8a86b40653856c87fbd72e7df8de6afd1d0a3563a5f09d5776090dc552a36e5f1d1bdce8e863f22a0ca3795109122751419839e42e
6
+ metadata.gz: 8583ebe3a58d758931707cd2eb1b13db509096948a804bbddfbaa2b375b0cc113e8a9480817954afcec530d75f6afe6b3298b6e8efd14b8a159521736154b256
7
+ data.tar.gz: 1ce37ba701ddae413918b71faab838635875e0287dcc79af29c65383f3f4b969a89f78c3a5f925009d704df1d9af02eb9a3d8a1c15bab742ad6252806979bcbd
@@ -0,0 +1,13 @@
1
+ class Album
2
+ attr_accessor :title
3
+ attr_accessor :artist
4
+ attr_accessor :rank
5
+ attr_accessor :image
6
+
7
+ def initialize(title, artist, rank, image)
8
+ @title = title
9
+ @artist = artist
10
+ @rank = rank
11
+ @image = image
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ class Artist
2
+ attr_accessor :name
3
+ attr_accessor :rank
4
+ attr_accessor :image
5
+
6
+ def initialize(name, rank, image)
7
+ @name = name
8
+ @rank = rank
9
+ @image = image
10
+ end
11
+ end
@@ -1,6 +1,8 @@
1
- require 'HTTParty'
2
- require 'Nokogiri'
1
+ require 'httparty'
2
+ require 'nokogiri'
3
3
  require 'track'
4
+ require 'artist'
5
+ require 'album'
4
6
 
5
7
  class BillboardTop100
6
8
  def getTop100(date = "")
@@ -18,7 +20,7 @@ class BillboardTop100
18
20
  titles.push(title.text)
19
21
  end
20
22
  parser.css('.chart-row__artist').each do |artist|
21
- artists.push(artist.text.to_s.squeeze(" ")[2..artist.to_s.length - 1].gsub("\n", ""))
23
+ artists.push(artist.text.to_s.squeeze(" ")[1..artist.to_s.length - 1].gsub("\n", ""))
22
24
  end
23
25
  parser.css('.chart-row__image').each do |cover|
24
26
  if cover.to_s.include? 'background-image'
@@ -33,4 +35,62 @@ class BillboardTop100
33
35
  end
34
36
  return tracks
35
37
  end
38
+
39
+ def getArtist100(date = "")
40
+ url = 'http://www.billboard.com/charts/artist-100'
41
+ if date.length > 0
42
+ url += '/' + date
43
+ end
44
+ artists = []
45
+ names = []
46
+ images = []
47
+ page = HTTParty.get(url)
48
+ parser = Nokogiri::HTML(page)
49
+ parser.css('.chart-row__artist').each do |artist|
50
+ names.push(artist.text.to_s.squeeze(" ")[1..artist.to_s.length - 1].gsub("\n", ""))
51
+ end
52
+ parser.css('.chart-row__image').each do |image|
53
+ if image.to_s.include? 'background-image'
54
+ images.push(image.to_s.split('url(')[1].to_s.split(')')[0])
55
+ else
56
+ images.push(image.to_s.split('imagesrc="')[1].to_s.split('">')[0])
57
+ end
58
+ end
59
+ for i in 0..99
60
+ artist = Artist.new(names[i], i + 1, images[i])
61
+ artists[i] = artist
62
+ end
63
+ return artists
64
+ end
65
+
66
+ def getBillboard200(date = "")
67
+ url = 'http://www.billboard.com/charts/billboard-200'
68
+ if date.length > 0
69
+ url += '/' + date
70
+ end
71
+ albums = []
72
+ artists = []
73
+ titles = []
74
+ images = []
75
+ page = HTTParty.get(url)
76
+ parser = Nokogiri::HTML(page)
77
+ parser.css('.chart-row__song').each do |title|
78
+ titles.push(title.text.to_s.squeeze(" ")[0..title.to_s.length - 1].gsub("\n", ""))
79
+ end
80
+ parser.css('.chart-row__artist').each do |artist|
81
+ artists.push(artist.text.to_s.squeeze(" ")[1..artist.to_s.length - 1].gsub("\n", ""))
82
+ end
83
+ parser.css('.chart-row__image').each do |image|
84
+ if image.to_s.include? 'background-image'
85
+ images.push(image.to_s.split('url(')[1].to_s.split(')')[0])
86
+ else
87
+ images.push(image.to_s.split('imagesrc="')[1].to_s.split('">')[0])
88
+ end
89
+ end
90
+ for i in 0..199
91
+ album = Album.new(titles[i], artists[i], i + 1, images[i])
92
+ albums[i] = album
93
+ end
94
+ return albums
95
+ end
36
96
  end
metadata CHANGED
@@ -1,16 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: billboard-top-100
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rishi Masand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Retrieve top 100 songs from Billboard's "The Hot 100"
11
+ date: 2017-10-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.15.6
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.15.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.1
41
+ description: Retrieve top 100 lists from Billboard
14
42
  email: masandrishi@gmail.com
15
43
  executables: []
16
44
  extensions: []
@@ -18,6 +46,8 @@ extra_rdoc_files: []
18
46
  files:
19
47
  - lib/billboard-top-100.rb
20
48
  - lib/track.rb
49
+ - lib/artist.rb
50
+ - lib/album.rb
21
51
  homepage: http://rubygems.org/gems/billboard-top-100
22
52
  licenses:
23
53
  - MIT
@@ -28,17 +58,17 @@ require_paths:
28
58
  - lib
29
59
  required_ruby_version: !ruby/object:Gem::Requirement
30
60
  requirements:
31
- - - ">="
61
+ - - '>='
32
62
  - !ruby/object:Gem::Version
33
63
  version: '0'
34
64
  required_rubygems_version: !ruby/object:Gem::Requirement
35
65
  requirements:
36
- - - ">="
66
+ - - '>='
37
67
  - !ruby/object:Gem::Version
38
68
  version: '0'
39
69
  requirements: []
40
70
  rubyforge_project:
41
- rubygems_version: 2.4.8
71
+ rubygems_version: 2.0.14.1
42
72
  signing_key:
43
73
  specification_version: 4
44
74
  summary: Billboard Hot 100