sutazekarate 0.0.9 → 0.0.11

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: d634c436128b74a8c862220ff7b580d25257cae676e63dbec3644fd2b0f13fe8
4
- data.tar.gz: 71c32e15098702df9dc23b2cc9bba33e6ac3d02f11b68fdb6111385519ae429b
3
+ metadata.gz: 9affd5ab82a716e54b9e0d6eb78ae74c3898327e0d32949588dd36218a163e46
4
+ data.tar.gz: baa04e8b11ad761622ae6dd004e5baffff30f3663deb2de5f80f2224f4e06d7c
5
5
  SHA512:
6
- metadata.gz: cf52132698ba781788f20d3b4dfc2dc2a5c90ea5495aacfc9e778303b5df4eb47251f639ea9bc9fc2be31f72d356530f0d5653ee98cd33afc7b33b7c634afd6c
7
- data.tar.gz: bd0e81a7c1e77f38cdaa2333c0c9d6b554427f4cb0febe896dc48441b3c6eee38f08d18afaf8fa94406a97ada1e91204986ac8ffa9407ca71b7b98041031bd4b
6
+ metadata.gz: 188676dca6c78d765ca754a0520f7371f4bab32a2ed9413dd431d14c931a3e2ff8ea87a6f2cbc751573b37fffad343a9ad2ea9c4c248e9dc9129b26e7bde8b78
7
+ data.tar.gz: 3aba9d16de529537c4b8aa00db065fa84665849fa0f473296c2a5bf85399d0186175e30706779c5940fa111146b2ccc44f9bc217ab965a29454dcce4320ac27f
@@ -13,6 +13,7 @@ module Sutazekarate
13
13
  include Concurrent::Async
14
14
 
15
15
  attribute :id
16
+ attribute :image_url
16
17
  attribute :starts_at
17
18
  attribute :name
18
19
  attribute :club
@@ -20,6 +21,7 @@ module Sutazekarate
20
21
  attribute :note
21
22
  attribute :registration_starts_at
22
23
  attribute :registration_ends_at
24
+ attribute :attachments
23
25
 
24
26
  def categories
25
27
  @categories ||= begin
@@ -55,6 +57,45 @@ module Sutazekarate
55
57
  end
56
58
  end
57
59
 
60
+ def self.find(id)
61
+ logger.debug("Fetching competition with id #{id}")
62
+
63
+ response = HTTP.get("https://www.sutazekarate.sk/sutaze_sutazinf.php?sutaz=#{id}")
64
+ html = Nokogiri::HTML5.fragment(response.body.to_s)
65
+
66
+ image_path = html.search('img.img-responsive.no-margin').attr('src').value
67
+ image_url = "https://www.sutazekarate.sk/#{image_path}"
68
+ name = html.search('h3.section-title-inner').text.strip.rpartition(' - ').first
69
+ club = html.search('.table1 tr:nth-child(1) td:nth-child(2)').text.strip
70
+
71
+ starts_at = Date.parse(html.search('.table1 tr:nth-child(2) td:nth-child(2)').text.strip)
72
+
73
+ registration_info = html.search('.table1 tr:nth-child(4) td:nth-child(2)').text.strip
74
+ registration_starts_at, registration_ends_at = registration_info.split(' - ').map do |date|
75
+ Date.parse(date)
76
+ end
77
+
78
+ attachments = html.search('.table1 tr').reduce([]) do |acc, row|
79
+ acc += row.search('td:nth-child(2) a[target="_blank"]').map do |a|
80
+ "https://www.sutazekarate.sk/#{a.attr('href')}"
81
+ end
82
+ .grep_v(/\.php/)
83
+
84
+ acc
85
+ end
86
+
87
+ Competition.new(
88
+ id:,
89
+ image_url:,
90
+ starts_at:,
91
+ name:,
92
+ club:,
93
+ registration_starts_at:,
94
+ registration_ends_at:,
95
+ attachments:,
96
+ )
97
+ end
98
+
58
99
  def self.all(year: Date.today.year)
59
100
  logger.debug("Fetching competitions for year #{year}")
60
101
  response = HTTP.get("https://www.sutazekarate.sk/ajax/av_sutaze.php?lang=sk&r=#{year}&sort=datum&order=desc&limit=1000&offset=0")
@@ -62,7 +103,10 @@ module Sutazekarate
62
103
  rows.map do |row|
63
104
  starts_at = Date.parse(row['datum'])
64
105
  content = Nokogiri::HTML5.fragment(row['obsah'])
106
+ image = Nokogiri::HTML5.fragment(row['obrazok'])
65
107
 
108
+ image_path = image.search('img').attr('src').value
109
+ image_url = "https://www.sutazekarate.sk/#{image_path}"
66
110
  name = content.search('h4').first.text.strip
67
111
  club_element = content.search('h5').first
68
112
  club = club_element.text.strip
@@ -85,6 +129,7 @@ module Sutazekarate
85
129
 
86
130
  Competition.new(
87
131
  id:,
132
+ image_url:,
88
133
  starts_at:,
89
134
  name:,
90
135
  club:,
@@ -1,3 +1,3 @@
1
1
  module Sutazekarate
2
- VERSION = '0.0.9'.freeze
2
+ VERSION = '0.0.11'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sutazekarate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed Al Hafoudh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-05 00:00:00.000000000 Z
11
+ date: 2025-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
- rubygems_version: 3.5.17
153
+ rubygems_version: 3.5.23
154
154
  signing_key:
155
155
  specification_version: 4
156
156
  summary: Web scraper for www.sutazekarate.sk