kijkwijzer 0.1.3 → 0.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
- SHA1:
3
- metadata.gz: 7862fefdeb6957f0fe8b1ba7967597e070cfb384
4
- data.tar.gz: 3c6a6553a97881ffca954e472dc425d735f64955
2
+ SHA256:
3
+ metadata.gz: 364e7dcc3d6ce2901ccfbefe6d8cac8afc871b1a7d8618f65d2c04ee36fb53f1
4
+ data.tar.gz: c1fdd1b56dc80a0aac1f6f078fc35a7c57e766cabe78ebc2fa4377c381663b58
5
5
  SHA512:
6
- metadata.gz: 2d33cd979d304a835c93d8d563544113e7734d9af29aa36688b8d6e74a4004e9568c6997db299aebbc32b3a3761edb2627cfbe58e5d93738cb6d452daf74698c
7
- data.tar.gz: 5a6d7cb28a20bee779678908455fa8b317bd32f7a69615d635ac44b4004b3bd8b9a806675a56e0da14d12a4f339f19c98668aa33c2162cd6ea2371f1ffc4681a
6
+ metadata.gz: 49de5dd1b013871fcc717f4ab685fb6def12d9ae75bf765b3d7152385f195befce5f0411be70da23ceb8c40fdf577dab88908ca7d9f44250e95f8e4afd30c2e9
7
+ data.tar.gz: ea041fe6040577be23c04deb7f5a48e8f85de0e7e2ffb0710183fd9bd70aac76cb789dd155b558987caa6a7b692f496e2b9c4195c5672f84a08ba2d29ab76a62
data/.travis.yml CHANGED
@@ -1,3 +1,8 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
4
  - 2.1.5
5
+ - 2.5.0
6
+ script:
7
+ - export RAILS_ENV=test
8
+ - bundle exec rspec
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # Kijkwijzer
2
+ [![Code Climate](https://codeclimate.com/github/murb/kijkwijzer.png)](https://codeclimate.com/github/murb/kijkwijzer) [![Build Status](https://travis-ci.org/murb/kijkwijzer.svg?branch=master)](https://travis-ci.org/murb/kijkwijzer) [![Gem Version](https://badge.fury.io/rb/kijkwijzer.svg)](http://badge.fury.io/rb/kijkwijzer)
3
+
2
4
 
3
5
  [Kijkwijzer](http://kijkwijzer.nl) is the [Dutch film/television-screening system](https://en.wikipedia.org/wiki/Television_content_rating_systems#Netherlands). Since there is no proper API, this gem was made to remove the scraping bit from my own app-source. Additionally some helper methods have been added to make displaying the icons easier (the icons are included in this gem as a SVG-iconset).
4
6
 
@@ -54,6 +56,16 @@ Then to display the movie results use the view helper `render_kijkwijzers`:
54
56
 
55
57
  Make sure you format the icons properly, otherwise you'll get huge icons ... I believe I've added plenty of classes for easy styling using css.
56
58
 
59
+ ## Changelog
60
+
61
+ 0.2.0 May 4, 2022
62
+ Updated results scraping to their pudated HTML format
63
+
64
+ 0.1.5 November 16, 2021
65
+ update dependencies / loosen dev requirements
66
+
67
+
68
+
57
69
  ## Development
58
70
 
59
71
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -62,7 +74,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
62
74
 
63
75
  ## Contributing
64
76
 
65
- 1. Fork it ( https://github.com/[my-github-username]/kijkwijzer/fork )
77
+ 1. Fork it ( https://github.com/murb/kijkwijzer/fork )
66
78
  2. Create your feature branch (`git checkout -b my-new-feature`)
67
79
  3. Commit your changes (`git commit -am 'Add some feature'`)
68
80
  4. Push to the branch (`git push origin my-new-feature`)
data/kijkwijzer.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_dependency "nokogiri"
23
- spec.add_development_dependency "bundler", "~> 1.9"
24
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler", "> 2"
24
+ spec.add_development_dependency "rspec", "~> 3.4"
25
+ spec.add_development_dependency "rake", "> 12"
25
26
  end
@@ -22,5 +22,29 @@ module Kijkwijzer
22
22
  def to_s
23
23
  "#<Kijkwijzer::Result @title=\"#{title}\", @year=#{year}>"
24
24
  end
25
+
26
+ # Filters use a key value hash to which the results should conform
27
+ #
28
+ # @return [TrueClass, FalseClass]
29
+ def match_filter?(filter)
30
+ !(filter.collect{|k, v| include_r = (self.send(k) == v)}.include? false)
31
+ end
32
+
33
+ class << self
34
+ def new_from_nokogiri_result_fragment nokogiri_result_fragment
35
+ r = self.new
36
+ r.title = nokogiri_result_fragment.css('.c-search__title').text
37
+ production_type_year_match = nokogiri_result_fragment.css('.c-search__text').text.match(/\A\s*(.*)\s*\((\d\d\d\d)\)\s*$/)
38
+ if production_type_year_match
39
+ r.year = production_type_year_match[2].to_i if production_type_year_match[2]
40
+ r.production_type = production_type_year_match[1].strip if production_type_year_match[1]
41
+ r.ratings = nokogiri_result_fragment.css(".c-search__marks .c-search__mark").collect do |a|
42
+ class_fragment = a.attr("class").match(/\Ac-search__mark\sc-search__mark--(.*)$/)[1]
43
+ Kijkwijzer::POSSIBLE_RATINGS.find{|a| a[:nl_key] == class_fragment}&.[](:value)
44
+ end.compact
45
+ return r
46
+ end
47
+ end
48
+ end
25
49
  end
26
50
  end
@@ -1,3 +1,3 @@
1
1
  module Kijkwijzer
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/kijkwijzer.rb CHANGED
@@ -7,24 +7,24 @@ require 'kijkwijzer/railtie' if defined?(Rails)
7
7
 
8
8
  module Kijkwijzer
9
9
  POSSIBLE_RATINGS = [
10
- {name: "Alle leeftijden", value: "al", code: "al"},
11
- {name: "6 jaar en ouder", value: "6", code: "6"},
12
- {name: "9 jaar en ouder", value: "9", code: "9"},
13
- {name: "12 jaar en ouder", value: "12", code: "12"},
14
- {name: "16 jaar en ouder", value: "16", code: "16"},
15
- {name: "Geweld", value: "violence", code: "g"},
16
- {name: "Angst", value: "scary", code: "a"},
17
- {name: "Seks", value: "sex", code: "s"},
18
- {name: "Discriminatie", value: "discrimination", code: "d"},
19
- {name: "Drugs en/of alcoholmisbruik", value: "drugs", code: "h"},
20
- {name: "Grof taalgebruik", value: "language", code: "t"}
10
+ {nl_key: "alle-leeftijden", name: "Alle leeftijden", value: "al", code: "al"},
11
+ {nl_key: "leeftijd-6", name: "6 jaar en ouder", value: "6", code: "6"},
12
+ {nl_key: "leeftijd-9", name: "9 jaar en ouder", value: "9", code: "9"},
13
+ {nl_key: "leeftijd-12", name: "12 jaar en ouder", value: "12", code: "12"},
14
+ {nl_key: "leeftijd-16", name: "16 jaar en ouder", value: "16", code: "16"},
15
+ {nl_key: "geweld", name: "Geweld", value: "violence", code: "g"},
16
+ {nl_key: "angst", name: "Angst", value: "scary", code: "a"},
17
+ {nl_key: "seks", name: "Seks", value: "sex", code: "s"},
18
+ {nl_key: "discriminatie", name: "Discriminatie", value: "discrimination", code: "d"},
19
+ {nl_key: "drugs", name: "Drugs en/of alcoholmisbruik", value: "drugs", code: "h"},
20
+ {nl_key: "grof-taalgebruik", name: "Grof taalgebruik", value: "language", code: "t"}
21
21
  ]
22
22
  class << self
23
23
  def search_url(search)
24
- "http://www.kijkwijzer.nl/index.php?id=3__i&searchfor=#{url_encode(search)}&tab=KIJKWIJZER"
24
+ "https://www.kijkwijzer.nl/zoeken/?query=#{url_encode(search)}&producties=0"
25
25
  end
26
26
  def get_content(search)
27
- Nokogiri::HTML(open(search_url(search)))
27
+ Nokogiri::HTML(URI::open(search_url(search)))
28
28
  end
29
29
 
30
30
  # Search the Kijkwijzer database
@@ -33,19 +33,9 @@ module Kijkwijzer
33
33
  def search(search, filter={})
34
34
  res = get_content(search)
35
35
  results = []
36
- res.css('.content_hok .nieuwsitem').each do |result|
37
- r = Result.new()
38
- r.title = result.css('b').text
39
- meta_parse = result.text.match(/Productietype\:\s(.*)\.\sProductiejaar\:\s(\d\d\d\d)\.\s/)
40
- r.year = meta_parse[2].to_i
41
- r.production_type = meta_parse[1]
42
- p result.css("img").collect{|a| a}
43
- r.ratings = result.css("img").collect{|a| a.attr("src").match(/\/upload\/pictogrammen\/\d*_\d*_(.*)\.png/)[1]}
44
- include_r = true
45
- filter.each do |key, value|
46
- include_r = (r.send(key) == value)
47
- end
48
- results << r if include_r
36
+ res.css('.c-search__results .c-search__result').each do |result|
37
+ r = Result.new_from_nokogiri_result_fragment(result)
38
+ results << r if (r && r.match_filter?(filter))
49
39
  end
50
40
  results
51
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kijkwijzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maarten Brouwers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-16 00:00:00.000000000 Z
11
+ date: 2022-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -26,32 +26,46 @@ dependencies:
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">"
32
+ - !ruby/object:Gem::Version
33
+ version: '2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: '2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '1.9'
47
+ version: '3.4'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '1.9'
54
+ version: '3.4'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">"
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: '12'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">"
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: '12'
55
69
  description: Retrieves the kijkwijzer rating for a particular title and year
56
70
  email:
57
71
  - github.com@murb.nl
@@ -80,7 +94,7 @@ homepage: https://github.com/murb/kijkwijzer
80
94
  licenses:
81
95
  - MIT
82
96
  metadata: {}
83
- post_install_message:
97
+ post_install_message:
84
98
  rdoc_options: []
85
99
  require_paths:
86
100
  - lib
@@ -95,10 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  requirements: []
98
- rubyforge_project:
99
- rubygems_version: 2.2.2
100
- signing_key:
112
+ rubygems_version: 3.2.29
113
+ signing_key:
101
114
  specification_version: 4
102
115
  summary: Retrieves the kijkwijzer rating for a particular title and year
103
116
  test_files: []
104
- has_rdoc: