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 +5 -5
- data/.travis.yml +5 -0
- data/README.md +13 -1
- data/kijkwijzer.gemspec +3 -2
- data/lib/kijkwijzer/result.rb +24 -0
- data/lib/kijkwijzer/version.rb +1 -1
- data/lib/kijkwijzer.rb +16 -26
- metadata +26 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 364e7dcc3d6ce2901ccfbefe6d8cac8afc871b1a7d8618f65d2c04ee36fb53f1
|
4
|
+
data.tar.gz: c1fdd1b56dc80a0aac1f6f078fc35a7c57e766cabe78ebc2fa4377c381663b58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49de5dd1b013871fcc717f4ab685fb6def12d9ae75bf765b3d7152385f195befce5f0411be70da23ceb8c40fdf577dab88908ca7d9f44250e95f8e4afd30c2e9
|
7
|
+
data.tar.gz: ea041fe6040577be23c04deb7f5a48e8f85de0e7e2ffb0710183fd9bd70aac76cb789dd155b558987caa6a7b692f496e2b9c4195c5672f84a08ba2d29ab76a62
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# Kijkwijzer
|
2
|
+
[](https://codeclimate.com/github/murb/kijkwijzer) [](https://travis-ci.org/murb/kijkwijzer) [](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/
|
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", "
|
24
|
-
spec.add_development_dependency "
|
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
|
data/lib/kijkwijzer/result.rb
CHANGED
@@ -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
|
data/lib/kijkwijzer/version.rb
CHANGED
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
|
-
"
|
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('.
|
37
|
-
r = Result.
|
38
|
-
r
|
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.
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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
|
-
|
99
|
-
|
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:
|