kijkwijzer 0.1.3 → 0.2.0

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
- 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: