the_whos 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/the_whos.rb +103 -0
- 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: []
|