bandcamp-discover 0.2.3 → 0.3.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
  SHA256:
3
- metadata.gz: b686b5e78a3a9a915a9f9b20bbf922b3bba2d3a540445f50c4c0a253fb46e2a6
4
- data.tar.gz: 5f635ae41d83978217382ab6ca9ac9023e6b5180bd89e637f495875c2a89f16c
3
+ metadata.gz: fd867e30e047c7464a7601b9cfa5cd49a7d757f73b6b395546b39ac9fc681134
4
+ data.tar.gz: c99a4a5b6c5bd6efe32983d22f58971dd24d38849514ccff5c5b66bde8d119f9
5
5
  SHA512:
6
- metadata.gz: 9d68c6025aef09fda9c0ae3c85290f81499bbf60939778dbcd2f99ab345484096af8fea62a9bca018df2ff5066c440e1e206db6f3b62d698ae5b81e80d78906e
7
- data.tar.gz: 816e48a8b67708bc28dadc7af01abae66c86c61c4824c32e65f528cb2d47082bb6db257e725e64a7849719ce7287ce5f2726f41c66441dc175c0444a8b690004
6
+ metadata.gz: ccbdc7e84878b732658a2d8f5732279fb650268bca8886ca0f21ddf6c070d9611ff4946f9a030a428fe708c1bd0a83f0939570e3370a583126e7adec1a541849
7
+ data.tar.gz: 051b67db17ce1acf900b088f440a8f52e92e3fe7475c3b6713c02b15d0a2f2b5c9e944d8fda52aaa8fd40c5bc083d6cb7d9f7a9824196d2e550ebbb6475c5fbe
@@ -8,9 +8,15 @@ module BandcampDiscover
8
8
  super do |page|
9
9
  page.goto(@url)
10
10
 
11
+ title = page.query_selector("meta[name=title]")[:content]
12
+
11
13
  # querying all tags in the bottom and returning their text node
12
14
  tags = page.query_selector_all("a.tag")
13
- tags.map { _1.inner_text }
15
+ tags.map!(&:inner_text)
16
+
17
+ player = page.query_selector("meta[property='og:video']")[:content]
18
+
19
+ [@url, title, tags, player]
14
20
  end
15
21
  end
16
22
  end
@@ -18,7 +18,7 @@ module BandcampDiscover
18
18
 
19
19
  if force || Analyzer.new(bio_text&.inner_html).label?
20
20
  return Sync do
21
- music_tags = Scrapers::Music.new(url: "#{@url}/music", browser: @browser, max_tasks: @max_tasks).scrape
21
+ albums, music_tags = Scrapers::Music.new(url: "#{@url}/music", browser: @browser, max_tasks: @max_tasks).scrape
22
22
 
23
23
  puts "done scraping #{@url}"
24
24
 
@@ -27,7 +27,8 @@ module BandcampDiscover
27
27
  name: name,
28
28
  location: location,
29
29
  bio: bio_text.inner_text,
30
- tags_with_weights: music_tags&.compact
30
+ tags_with_weights: music_tags&.compact,
31
+ albums: albums
31
32
  }
32
33
  end
33
34
  else
@@ -21,20 +21,24 @@ module BandcampDiscover
21
21
 
22
22
  semaphore = Async::Semaphore.new(@max_tasks)
23
23
 
24
- album_tags = album_links.take(20).map do |album_link|
24
+ albums = album_links.take(20).map do |album_link|
25
25
  semaphore.async do
26
26
  url = album_link[:href].start_with?("https://") ? album_link[:href] : "#{@base_url}#{album_link[:href]}"
27
27
  puts "starting to scrape #{url}"
28
28
 
29
- tags = Scrapers::Album.new(url: url, browser: @browser).scrape
29
+ album = Scrapers::Album.new(url: url, browser: @browser).scrape
30
30
 
31
31
  puts "done scraping #{url}"
32
32
 
33
- tags
33
+ album
34
34
  end
35
35
  end.map(&:wait)
36
36
 
37
- normalize_tally(album_tags.flatten.tally)
37
+ albums.map! do |album_url, album_title, album_tags, album_player|
38
+ { url: album_url, title: album_title, tags: album_tags, player_url: album_player }
39
+ end
40
+
41
+ [albums, normalize_tally(albums.map { _1[:tags] }.flatten.tally)]
38
42
  end
39
43
  end
40
44
 
@@ -1,3 +1,3 @@
1
1
  module BandcampDiscover
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bandcamp-discover
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian RUbisch
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-08-18 00:00:00.000000000 Z
10
+ date: 2025-08-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rake