the_whos 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/the_whos.rb +103 -0
  3. metadata +47 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bfd529a33d973fde62db77abf0268dd2168fb99e86e00364b56869d5e86821a9
4
+ data.tar.gz: 45a925750f8a4913309891ae0489a71f2c7cdd416a32c2f59cbba607315ef2e7
5
+ SHA512:
6
+ metadata.gz: 4b690a81feac634e293fc0c64bfe104d5cc73f254d374f656b2e916e27c1ad7767ef5e1edcdf30d8269eae87fd7e72035ec91bcd05e68811a0699b281245d0fe
7
+ data.tar.gz: 26c4c100e45b80b5ee44db7c204251c6be4069e9cb69d565ad2e0a71ad382b969138f7fd526806824d7f3289327c54ed5e4f9241f4f46478b93e11838bb146d7
data/lib/the_whos.rb ADDED
@@ -0,0 +1,103 @@
1
+ require_relative 'title'
2
+ require_relative 'actor'
3
+
4
+ class TheWhos
5
+ @key_imdb = ARGV[0]
6
+
7
+ def self.create(id)
8
+ if id.chr == 't'
9
+ return Title.new(id)
10
+ elsif id.chr == 'n'
11
+ return Actor.new(id)
12
+ else
13
+ return 'Error'
14
+ end
15
+ end
16
+
17
+ def self.search_title(expression)
18
+ expression = expression.gsub(' ', '@')
19
+ url = "https://imdb-api.com/en/API/SearchTitle/#{@key_imdb}/#{expression}"
20
+ response = RestClient.get url
21
+ r_json = JSON.parse response.to_str
22
+ arr_search = r_json['results'].to_a
23
+ results = Array.new
24
+ arr_search.size.times do |i|
25
+ results << {id: "#{arr_search[i]['id']}", title: "#{arr_search[i]['title']}"}
26
+ end
27
+ return results
28
+ end
29
+
30
+ def self.search_actor(expression)
31
+ expression = expression.gsub(' ', '@')
32
+ url = "https://imdb-api.com/en/API/SearchName/#{@key_imdb}/#{expression}"
33
+ response = RestClient.get url
34
+ r_json = JSON.parse response.to_str
35
+ arr_search = r_json['results'].to_a
36
+ results = Array.new
37
+ arr_search.size.times do |i|
38
+ results << {id: "#{arr_search[i]['id']}", title: "#{arr_search[i]['title']}"}
39
+ end
40
+ return results
41
+ end
42
+
43
+ def self.match_title(title_a, title_b)
44
+ if title_a.class == String
45
+ title_a = Title.new(title_a)
46
+ end
47
+ if title_b.class == String
48
+ title_b = Title.new(title_b)
49
+ end
50
+ match = Array.new
51
+ title_a.fullcast.each do |actor_a|
52
+ title_b.fullcast.each do |actor_b|
53
+ if actor_a[:id] == actor_b[:id]
54
+ match << "#{actor_a[:actor].to_s} (#{actor_a[:id]})"
55
+ end
56
+ end
57
+ end
58
+ if match.empty? == true
59
+ return 'Not Match'
60
+ else
61
+ return match
62
+ end
63
+ end
64
+
65
+ def self.match_actor(actor_a, actor_b)
66
+ if actor_a.class == String
67
+ actor_a = Actor.new(actor_a)
68
+ end
69
+ if actor_b.class == String
70
+ actor_b = Actor.new(actor_b)
71
+ end
72
+ match = Array.new
73
+ actor_a.cast.each do |title_a|
74
+ actor_b.cast.each do |title_b|
75
+ if title_a[:id] == title_b[:id]
76
+ match << "#{title_a[:title]} (#{title_a[:id]})"
77
+ end
78
+ end
79
+ end
80
+ if match.empty? == true
81
+ return 'Not Match'
82
+ else
83
+ return match
84
+ end
85
+ end
86
+
87
+ def self.who(title, actor)
88
+ if title.class == String
89
+ title = Title.new(title)
90
+ end
91
+ if actor.class == String
92
+ actor = Actor.new(actor)
93
+ end
94
+ title.fullcast.each do |cast|
95
+ if cast[:id] == actor.id
96
+ return cast[:character]
97
+ end
98
+ end
99
+ return 'not appear'
100
+ end
101
+
102
+
103
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: the_whos
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ramiro Eloisa
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-05-23 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: |-
14
+ Trabaja con los ID de IMDB para devolver en forma de array informacion como:
15
+ - los actores en una película y su sinopsis
16
+ - las películas de un actor
17
+ -las coincidencia entre pellicas y entre actores.
18
+ email: ram.eloisalg@egmail.com
19
+ executables: []
20
+ extensions: []
21
+ extra_rdoc_files: []
22
+ files:
23
+ - lib/the_whos.rb
24
+ homepage:
25
+ licenses:
26
+ - MIT
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubygems_version: 3.1.6
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Realiza consultas Api IMDB
47
+ test_files: []