the_whos 0.0.1 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +124 -0
  3. metadata +4 -4
  4. data/lib/the_whos.rb +0 -103
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfd529a33d973fde62db77abf0268dd2168fb99e86e00364b56869d5e86821a9
4
- data.tar.gz: 45a925750f8a4913309891ae0489a71f2c7cdd416a32c2f59cbba607315ef2e7
3
+ metadata.gz: 5fa5b573c4c22634ced5ecc74dda59a437367afab33fc235f2466ae629361bec
4
+ data.tar.gz: adad628b0f3cac1216e7cc515b8247e85116e281c061aa099ff7b901ca45a3c0
5
5
  SHA512:
6
- metadata.gz: 4b690a81feac634e293fc0c64bfe104d5cc73f254d374f656b2e916e27c1ad7767ef5e1edcdf30d8269eae87fd7e72035ec91bcd05e68811a0699b281245d0fe
7
- data.tar.gz: 26c4c100e45b80b5ee44db7c204251c6be4069e9cb69d565ad2e0a71ad382b969138f7fd526806824d7f3289327c54ed5e4f9241f4f46478b93e11838bb146d7
6
+ metadata.gz: 16a09550fa24191ffe86350e6cb9f6dfcef58c2e0965c6655a6515fce3efea8f5c7f78242f93eba68fa46dbfd7808995f8d3148b7659be0f3c7987a229e8b6ee
7
+ data.tar.gz: a1bb5ebead1ec6341f97152c310865087b2246bbcc4bd2660978fefaf84e43e61783a091573c5f493a402e55d036e8ef5697af437dc6e59dd5b818e7b6878371
data/README.md ADDED
@@ -0,0 +1,124 @@
1
+ # The Whos
2
+
3
+ ## Api Key IMDB
4
+ Para poder realizar llamadas se requiere ingresar la clave de la api de IMDB, para obtener una clave gratuita tiene que registrase en el sitio de la API, [IMDB API](https://imdb-api.com/Identity/Account/Register), las cuentas gratuitas tienen un límite de 100 consultas por día.
5
+ Pará poder utilizar la clave se tiene que pasar el valor en la línea de comandos antes de ejecutar el script.
6
+ ```
7
+ $ ruby example.rb k_12345678
8
+ ```
9
+ ## Class Title
10
+ Esta clase se encarga de almacenar la información de la llamada de los títulos.
11
+ Pará instancia el objeto se puede hacer a través de `Title.new` o `TheWhos.create` pasando como parámetro el ID de el título de IMDB.
12
+ ```
13
+ movie = Title.new('tt0088763')
14
+
15
+ movie = TheWhos.create('tt0088763')
16
+ ```
17
+ ### Método id
18
+ Devuelve el ID del título.
19
+ ```
20
+ movie = Title.new('tt0088763')
21
+ movie.id
22
+
23
+ # => "tt0088763"
24
+ ```
25
+ ### Método title
26
+ Devuelve el título.
27
+ ```
28
+ movie = Title.new('tt0088763')
29
+ movie.title
30
+
31
+ # => "Back to the Future"
32
+ ```
33
+ ### Método cast
34
+ Devuelve un array con los 10 actores principales
35
+ ```
36
+ movie = Title.new('tt0088763')
37
+ movie.cast
38
+ ```
39
+ ### Método fullcast
40
+ Devuelve un array con el reparto completo del título.
41
+ ```
42
+ movie = Title.new('tt0088763')
43
+ movie.fullcast
44
+ ```
45
+ ### Método plot
46
+ Devuelve la sinopsis del título, se puede pasar como valor el idioma en el que se desee la respuesta, el valor por defecto es en inglés.
47
+ ```
48
+ movie = Title.new('tt0088763')
49
+ movie.plot('es')
50
+ ```
51
+
52
+ ## Class Actor
53
+ Esta clase se encarga de almacenar la información de la llamada de los actores.
54
+ Pará instancia el objeto se puede hacer a través de `Actor.new` o `TheWhos.create` pasando como parámetro el ID de el actor de IMDB.
55
+ ```
56
+ fox = Actor.new('nm0000150')
57
+
58
+ fox = TheWhos.create('nm0000150')
59
+ ```
60
+ ### Método id
61
+ Devuelve el ID del actor.
62
+ ```
63
+ fox = Actor.new('nm0000150')
64
+ fox.id
65
+
66
+ # => "nm0000150"
67
+ ```
68
+ ### Método name
69
+ Devuelve el nombre del actor.
70
+ ```
71
+ fox = Actor.new('nm0000150')
72
+ fox.name
73
+
74
+ # => "Michael J. Fox"
75
+ ```
76
+ ### Método known
77
+ Devuelve un array de las películas mas conocidas del actor.
78
+ ```
79
+ fox = Actor.new('nm0000150')
80
+ fox.known
81
+ ```
82
+
83
+ ### Método cast
84
+ Devuelve todas las películas en las que el actor a participado.
85
+ ```
86
+ fox = Actor.new('nm0000150')
87
+ fox.cast
88
+ ```
89
+
90
+ ## Class TheWhos
91
+ Está es la clase principal para trabajar con la información obtenida de las consultas la api de IMDB.
92
+ ### Método create
93
+ Con este método se puede instanciar un objeto, detecta automáticamente si es una película o un actor y crea la clase correspondiente.
94
+ ```
95
+ movie = TheWhos.create('tt0088763')
96
+ fox = TheWhos.create('nm0000150')
97
+ ```
98
+ ### Método search_title
99
+ Devuelve un array con el ID y título de la películas que coincidan con el parámetro.
100
+ ```
101
+ rest = TheWhos.search_title('back to the future')
102
+ ```
103
+ ### Método search_actor
104
+ Devuelve un array con el ID y nombre del actor que coincida con el parámetro.
105
+ ```
106
+ rest = TheWhos.search_actor('michael fox')
107
+ ```
108
+ ### Método match_actor
109
+ Devuelve un array con el ID y nombre de los actores que coincidan entre dos películas, si es que lo hay, se puede pasar como parámetro el ID del título de IMDB o un objeto ya instansiado de una película.
110
+ ```
111
+ match = TheWhos.match_actor ('tt0088763','tt0101272')
112
+ ```
113
+ ### Método match_title
114
+ Devuelve un array con el ID y nombre de las películas que coincidan entre dos actores, si es que lo hay, se puede pasar como parámetro el ID del actor de IMDB o un objeto ya instanciado de un actor.
115
+ ```
116
+ match = TheWhos.match_title ('nm0000150', 'nm0000502')
117
+ ```
118
+ ### Método who
119
+ Devuelve el personaje que interpreta un actor en una película, si es que actúa en esa película, se puede pasar como parámetros los ID de IMDB o los objetos ya instanciados.
120
+ ```
121
+ charater = TheWhos.who ('tt0088763', 'nm0000150')
122
+
123
+ # => "Marty McFly"
124
+ ```
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_whos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ramiro Eloisa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-23 00:00:00.000000000 Z
11
+ date: 2022-05-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  Trabaja con los ID de IMDB para devolver en forma de array informacion como:
@@ -20,8 +20,8 @@ executables: []
20
20
  extensions: []
21
21
  extra_rdoc_files: []
22
22
  files:
23
- - lib/the_whos.rb
24
- homepage:
23
+ - README.md
24
+ homepage: https://github.com/RamEloisa/the_whos.git
25
25
  licenses:
26
26
  - MIT
27
27
  metadata: {}
data/lib/the_whos.rb DELETED
@@ -1,103 +0,0 @@
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