jikan.rb 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,43 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class News < BaseEntity
5
+
6
+ def url
7
+ raw['url']
8
+ end
9
+
10
+ def title
11
+ raw['title']
12
+ end
13
+
14
+ def date
15
+ raw['date']
16
+ end
17
+
18
+ def author_name
19
+ raw['author_name']
20
+ end
21
+
22
+ def author_url
23
+ raw['author_url']
24
+ end
25
+
26
+ def forum_url
27
+ raw['forum_url']
28
+ end
29
+
30
+ def image_url
31
+ raw['image_url']
32
+ end
33
+
34
+ def comments
35
+ raw['comments']
36
+ end
37
+
38
+ def intro
39
+ raw['intro']
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,61 @@
1
+ module Jikan
2
+ class Person < BaseEntity
3
+ def mal_id
4
+ raw['mal_id']
5
+ end
6
+
7
+ def url
8
+ raw['url']
9
+ end
10
+
11
+ def image_url
12
+ raw['image_url']
13
+ end
14
+
15
+ def website_url
16
+ raw['website_url']
17
+ end
18
+
19
+ def name
20
+ raw['name']
21
+ end
22
+
23
+ def given_name
24
+ raw['given_name']
25
+ end
26
+
27
+ def family_name
28
+ raw['famly_name']
29
+ end
30
+
31
+ def alternate_name
32
+ raw['alternate_name']
33
+ end
34
+
35
+ def birthday
36
+ raw['birthday']
37
+ end
38
+
39
+ def member_fav
40
+ raw['member_favorites']
41
+ end
42
+
43
+ def about
44
+ raw['about']
45
+ end
46
+
47
+ def va_roles
48
+ raw['voice_acting_roles']
49
+ end
50
+
51
+ def staff_position
52
+ raw['anime_staff_position']
53
+ end
54
+
55
+ def published_manga
56
+ raw['published_manga']
57
+ end
58
+ end
59
+
60
+ class BasicPerson < Entityography; end
61
+ end
@@ -0,0 +1,14 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class Picture < BaseEntity
5
+
6
+ def large
7
+ raw['large']
8
+ end
9
+
10
+ def small
11
+ raw['small']
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class Recommendation < BaseEntity
5
+
6
+ def mal_id
7
+ raw['mal_id']
8
+ end
9
+
10
+ def url
11
+ raw['url']
12
+ end
13
+
14
+ def image_url
15
+ raw['image_url']
16
+ end
17
+
18
+ def recommendation_url
19
+ raw['recommendation_url']
20
+ end
21
+
22
+ def title
23
+ raw['title']
24
+ end
25
+
26
+ def count
27
+ raw['recommendation_count']
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,47 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class Review < BaseEntity
5
+
6
+ def mal_id
7
+ raw['mal_id']
8
+ end
9
+
10
+ def url
11
+ raw['url']
12
+ end
13
+
14
+ def helpful_count
15
+ raw['helpful_count']
16
+ end
17
+
18
+ def date
19
+ raw['date']
20
+ end
21
+
22
+ def reviewer_url
23
+ raw['reviewer']['url']
24
+ end
25
+
26
+ def reviewer_img
27
+ raw['reviewer']['image_url']
28
+ end
29
+
30
+ def reviewer_username
31
+ raw['reviewer']['username']
32
+ end
33
+
34
+ def reviewer_chapters_read
35
+ raw['reviewer']['chapters_read']
36
+ end
37
+
38
+ def reviewer_scores
39
+ raw['reviewer']['scores']
40
+ end
41
+
42
+ def content
43
+ raw['content']
44
+ end
45
+
46
+ end
47
+ end
@@ -1,50 +1,50 @@
1
- module Jikan
2
- class Search < BaseEntity
3
-
4
- def initialize(json, type)
5
- super(json)
6
- @type = type
7
- @search = true
8
- end
9
-
10
- def is_search?
11
- @search
12
- end
13
-
14
- def id
15
- iter { |i| i['id'] || i['mal_id'] }
16
- end
17
-
18
- def title
19
- iter { |i| i['title'] }
20
- end
21
-
22
- def url
23
- iter { |i| i['url'] }
24
- end
25
-
26
- # returns each result items wrapped in their respective objects
27
- def result
28
- case @type
29
- when :anime
30
- iter { |i| Jikan::AnimeResult.new(i) }
31
- when :manga
32
- iter { |i| Jikan::MangaResult.new(i) }
33
- when :character
34
- raise NoMethodError, "Character only return raw result for now."
35
- when :person
36
- raise NoMethodError, "Person only return raw result for now."
37
- end
38
- end
39
-
40
- private
41
-
42
- def iter
43
- @raw['result'].map do |item|
44
- if block_given?
45
- yield item
46
- end
47
- end
48
- end
49
- end
50
- end
1
+ module Jikan
2
+ class Search < BaseEntity
3
+
4
+ def initialize(json, type)
5
+ super(json)
6
+ @type = type
7
+ @search = true
8
+ end
9
+
10
+ def is_search?
11
+ @search
12
+ end
13
+
14
+ def id
15
+ iter { |i| i['id'] || i['mal_id'] }
16
+ end
17
+
18
+ def title
19
+ iter { |i| i['title'] }
20
+ end
21
+
22
+ def url
23
+ iter { |i| i['url'] }
24
+ end
25
+
26
+ # returns each result items wrapped in their respective objects
27
+ def result
28
+ case @type
29
+ when :anime
30
+ iter { |i| Jikan::AnimeResult.new(i) }
31
+ when :manga
32
+ iter { |i| Jikan::MangaResult.new(i) }
33
+ when :character
34
+ raise NoMethodError, "Character only return raw result for now."
35
+ when :person
36
+ raise NoMethodError, "Person only return raw result for now."
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def iter
43
+ @raw['results'].map do |item|
44
+ if block_given?
45
+ yield item
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,35 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class Stat < BaseEntity
5
+
6
+ def watching
7
+ raw['watching']
8
+ end
9
+
10
+ def completed
11
+ raw['completed']
12
+ end
13
+
14
+ def on_hold
15
+ raw['on_hold']
16
+ end
17
+
18
+ def dropped
19
+ raw['dropped']
20
+ end
21
+
22
+ def ptw
23
+ raw['plan_to_watch']
24
+ end
25
+
26
+ def total
27
+ raw['total']
28
+ end
29
+
30
+ def scores
31
+ raw['scores']
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,65 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class User < BaseEntity
5
+ def name
6
+ raw['username']
7
+ end
8
+
9
+ def url
10
+ raw['url']
11
+ end
12
+
13
+ def image_url
14
+ raw['image_url']
15
+ end
16
+
17
+ def birthday
18
+ raw['birthday']
19
+ end
20
+
21
+ def location
22
+ raw['location']
23
+ end
24
+
25
+ def joined
26
+ raw['joined']
27
+ end
28
+
29
+ def about
30
+ raw['about']
31
+ end
32
+
33
+ def anime_stats
34
+ raw['anime_stats']
35
+ end
36
+
37
+ def manga_stats
38
+ raw['manga_stats']
39
+ end
40
+
41
+ def fav_anime
42
+ raw['favorites']['anime'].map do |fa|
43
+ Jikan::BasicAnime.new(fa)
44
+ end
45
+ end
46
+
47
+ def fav_manga
48
+ raw['favorites']['manga'].map do |fm|
49
+ Jikan::BasicManga.new(fm)
50
+ end
51
+ end
52
+
53
+ def fav_char
54
+ raw['favorites']['characters'].map do |fc|
55
+ Jikan::BasicCharacter.new(fc)
56
+ end
57
+ end
58
+
59
+ def fav_people
60
+ raw['favorites']['people'].map do |fp|
61
+ Jikan::BasicPerson.new(fp)
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,38 @@
1
+ require 'jikan/models/entity'
2
+
3
+ module Jikan
4
+ class UserUpdate < BaseEntity
5
+
6
+ def username
7
+ raw['username']
8
+ end
9
+
10
+ def url
11
+ raw['url']
12
+ end
13
+
14
+ def image_url
15
+ raw['image_url']
16
+ end
17
+
18
+ def score
19
+ raw['score']
20
+ end
21
+
22
+ def status
23
+ raw['status']
24
+ end
25
+
26
+ def eps_seen
27
+ raw['episodes_seen']
28
+ end
29
+
30
+ def eps_total
31
+ raw['episodes_total']
32
+ end
33
+
34
+ def date
35
+ raw['date']
36
+ end
37
+ end
38
+ end
@@ -1,41 +1,137 @@
1
- require 'jikan/anime'
2
- require 'jikan/api'
3
- require 'jikan/character'
4
- require 'jikan/manga'
5
- require 'jikan/person'
6
- require 'jikan/search'
7
-
8
- module Jikan
9
- class Query
10
-
11
- def initialize
12
- @json = nil
13
- end
14
-
15
- def anime_id(id, flag=nil)
16
- @json = Jikan::API.new.get("anime", id, flag)
17
- Jikan::Anime.new(@json)
18
- end
19
-
20
- def manga_id(id, flag=nil)
21
- @json = Jikan::API.new.get("manga", id, flag)
22
- Jikan::Manga.new(@json)
23
- end
24
-
25
- def character_id(id, flag=nil)
26
- @json = Jikan::API.new.get("character", id, flag)
27
- Jikan::Character.new(@json)
28
- end
29
-
30
- def person_id(id, flag=nil)
31
- @json = Jikan::API.new.get("person", id, flag)
32
- Jikan::Person.new(@json)
33
- end
34
-
35
- def search(title, type=:anime, page=1)
36
- @json = Jikan::API.new.get("search", page, type, title)
37
- Jikan::Search.new(@json, type)
38
- end
39
-
40
- end
41
- end
1
+ require 'require_all'
2
+ require_all 'lib/jikan/models'
3
+ require 'jikan/api'
4
+
5
+ module Jikan
6
+ class Query
7
+
8
+ def initialize
9
+ @json = nil
10
+ end
11
+
12
+ def anime_id(id, flag=nil)
13
+ @json = Jikan::API.new.get(endpoint: "anime", id: id, flag: flag)
14
+ if flag == nil
15
+ Jikan::Anime.new(@json)
16
+ elsif flag == :episodes
17
+ Jikan::Anime.new(@json)
18
+ elsif flag == :reviews
19
+ @json['reviews'].map do |review|
20
+ Jikan::Review.new(review)
21
+ end
22
+ elsif flag == :news
23
+ @json['articles'].map do |news|
24
+ Jikan::News.new(news)
25
+ end
26
+ elsif flag == :recommendations
27
+ @json['recommendations'].map do |rec|
28
+ Jikan::Recommendation.new(rec)
29
+ end
30
+ elsif flag == :userupdates
31
+ @json['users'].map do |user|
32
+ Jikan::UserUpdate.new(user)
33
+ end
34
+ elsif flag == :pictures
35
+ @json['pictures'].map do |pic|
36
+ Jikan::Picture.new(pic)
37
+ end
38
+ elsif flag == :characters_staff
39
+ @json['characters'].map do |cs|
40
+ Jikan::CharacterStaff.new(cs)
41
+ end
42
+ elsif flag == :stats
43
+ Jikan::Stat.new(@json)
44
+ end
45
+
46
+ end
47
+
48
+ def manga_id(id, flag=nil)
49
+ @json = Jikan::API.new.get(endpoint: "manga", id: id, flag: flag)
50
+ if flag == nil
51
+ Jikan::Manga.new(@json)
52
+ elsif flag == :reviews
53
+ @json['reviews'].map do |review|
54
+ Jikan::Review.new(review)
55
+ end
56
+ elsif flag == :news
57
+ @json['articles'].map do |news|
58
+ Jikan::News.new(news)
59
+ end
60
+ elsif flag == :recommendations
61
+ @json['recommendations'].map do |rec|
62
+ Jikan::Recommendation.new(rec)
63
+ end
64
+ elsif flag == :userupdates
65
+ @json['users'].map do |user|
66
+ Jikan::UserUpdate.new(user)
67
+ end
68
+ elsif flag == :pictures
69
+ @json['pictures'].map do |pic|
70
+ Jikan::Picture.new(pic)
71
+ end
72
+ elsif flag == :stats
73
+ Jikan::Stat.new(@json)
74
+ end
75
+ end
76
+
77
+ def character_id(id, flag=nil)
78
+ @json = Jikan::API.new.get(endpoint: "character", id: id, flag: flag)
79
+ if flag == nil
80
+ Jikan::Character.new(@json)
81
+ elsif flag == :pictures
82
+ @json['pictures'].map do |pic|
83
+ Jikan::Picture.new(pic)
84
+ end
85
+ end
86
+ end
87
+
88
+ def person_id(id, flag=nil)
89
+ @json = Jikan::API.new.get(endpoint: "person", id: id, flag: flag)
90
+ if flag == nil
91
+ Jikan::Person.new(@json)
92
+ elsif flag == :pictures
93
+ @json['pictures'].map do |pic|
94
+ Jikan::Picture.new(pic)
95
+ end
96
+ end
97
+ end
98
+
99
+ def club_id(id, flag=nil)
100
+ @json = Jikan::API.new.get(endpoint: "club", id: id, flag: flag)
101
+ if flag == nil
102
+ Jikan::Club.new(@json)
103
+ elsif flag == :members
104
+ @json['members'].map do |member|
105
+ Jikan::ClubMember.new(member)
106
+ end
107
+ end
108
+ end
109
+
110
+ def user(name, flag=:profile)
111
+ @json = Jikan::API.new.get(endpoint: "user", query: name, flag: flag)
112
+ if flag == :profile
113
+ Jikan::User.new(@json)
114
+ elsif(flag == :animelist)
115
+ Jikan::BaseEntity.new(@json)
116
+ elsif(flag == :mangalist)
117
+ Jikan::BaseEntity.new(@json)
118
+ elsif(flag == :friends)
119
+ Jikan::BaseEntity.new(@json)
120
+ elsif(flag == :history)
121
+ Jikan::BaseEntity.new(@json)
122
+ end
123
+ end
124
+
125
+ def search(title, type=:anime, page=1)
126
+ @json = Jikan::API.new.get(endpoint: "search", page: page, flag: type, query: title)
127
+ Jikan::Search.new(@json, type)
128
+ end
129
+
130
+ def season(season, year=Date.today.year)
131
+ @json = Jikan::API.new.get(endpoint: "season", year: year, flag: season.to_sym)
132
+ @json['anime'].map do |a|
133
+ Jikan::Anime.new(a)
134
+ end
135
+ end
136
+ end
137
+ end