jikan.rb 0.0.5 → 0.0.6

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.
@@ -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