Anilistrb 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ query ($id: Int) {
2
+ User(id: $id) {
3
+ id
4
+ name
5
+ about
6
+ avatar {
7
+ large
8
+ medium
9
+ }
10
+ bannerImage
11
+ siteUrl
12
+ stats {
13
+ watchedTime
14
+ chaptersRead
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ query ($search: String) {
2
+ User(search: $search) {
3
+ id
4
+ name
5
+ about
6
+ avatar {
7
+ large
8
+ medium
9
+ }
10
+ bannerImage
11
+ siteUrl
12
+ stats {
13
+ watchedTime
14
+ chaptersRead
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,9 @@
1
+ require_relative 'AnilistObj'
2
+
3
+ module Anilistrb
4
+ class Media < AnilistObj
5
+ def to_s
6
+ "[#{type}] #{id} - #{title}"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,56 @@
1
+ module Anilistrb
2
+ class Medialist < AnilistObj
3
+
4
+ attr_reader :data, :lists, :user, :type
5
+ attr_reader :current, :planning, :completed, :dropped, :paused, :repeating
6
+
7
+ def initialize(json, type)
8
+ @data = json
9
+ @lists = json['lists']
10
+ @user = Anilistrb::User.new(json['user'])
11
+ @type = type
12
+ @current = []
13
+ @planning = []
14
+ @completed = []
15
+ @dropped = []
16
+ @paused = []
17
+ @repeating = []
18
+ build_lists
19
+ end
20
+
21
+ def build_lists
22
+ @lists.each do |x|
23
+ case x['name']
24
+ when 'Planning' then @planning = build_list(x)
25
+ when 'Completed' then @completed = build_list(x)
26
+ when 'Watching' then @current = build_list(x)
27
+ when 'Reading' then @current = build_list(x)
28
+ when 'Dropped' then @dropped = build_list(x)
29
+ when 'Paused' then @paused = build_list(x)
30
+ when 'Repeating' then @repeating = build_list(x)
31
+ end
32
+ end
33
+ end
34
+
35
+ def build_list(raw)
36
+ list = []
37
+ raw['entries'].each { |x| list.push(Anilistrb::Media.new(x['media'])) }
38
+ list
39
+ end
40
+
41
+ def to_s
42
+ " Type: #{@type} list for #{@user}
43
+ Completed: #{list_to_s(@completed)}
44
+ Current: #{list_to_s(@current)}
45
+ Dropped: #{list_to_s(@dropped)}
46
+ Paused: #{list_to_s(@paused)}
47
+ Planning: #{list_to_s(@planning)}
48
+ Repeating: #{list_to_s(@repeating)}
49
+ "
50
+ end
51
+
52
+ def list_to_s(list)
53
+ "#{(list.any? ? list.length : 0).to_s.ljust(5, ' ')} item(s)"
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,10 @@
1
+ require_relative 'AnilistObj'
2
+
3
+ module Anilistrb
4
+ class User < AnilistObj
5
+
6
+ def to_s
7
+ "[USER] #{id} - #{name}"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module Anilistrb
2
+ VERSION = '0.1.1'.freeze
3
+ end
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Anilistrb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - barrettotte
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-03-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.17'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.17'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.65.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.65.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.13.7
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.13.7
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '2.2'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '2.2'
97
+ description: A simple API wrapper for AniList's GraphQL API
98
+ email:
99
+ - barrettotte@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".dockerfile"
105
+ - ".gitignore"
106
+ - ".gitlab-ci.yml"
107
+ - ".rspec"
108
+ - ".rubocop.yml"
109
+ - Anilistrb.gemspec
110
+ - Gemfile
111
+ - Gemfile.lock
112
+ - LICENSE.txt
113
+ - README.md
114
+ - Rakefile
115
+ - bin/console
116
+ - bin/setup
117
+ - dev/anilist-test.gql
118
+ - dev/anilist-test.http
119
+ - dev/anilist-test.json
120
+ - dev/anilist-test.py
121
+ - dev/animelist.json
122
+ - dev/run.bat
123
+ - dev/test.bat
124
+ - example/install.bat
125
+ - example/myapp.bat
126
+ - example/myapp.rb
127
+ - lib/Anilistrb.rb
128
+ - lib/Anilistrb/AnilistObj.rb
129
+ - lib/Anilistrb/Client.rb
130
+ - lib/Anilistrb/GqlClient.rb
131
+ - lib/Anilistrb/GraphQL/media_by_id.gql
132
+ - lib/Anilistrb/GraphQL/media_by_pages.gql
133
+ - lib/Anilistrb/GraphQL/media_by_search.gql
134
+ - lib/Anilistrb/GraphQL/medialist_by_user.gql
135
+ - lib/Anilistrb/GraphQL/user_by_id.gql
136
+ - lib/Anilistrb/GraphQL/user_by_search.gql
137
+ - lib/Anilistrb/Media.rb
138
+ - lib/Anilistrb/Medialist.rb
139
+ - lib/Anilistrb/User.rb
140
+ - lib/Anilistrb/version.rb
141
+ homepage: https://github.com/barrettotte/Anilist-Ruby
142
+ licenses:
143
+ - MIT
144
+ metadata:
145
+ allowed_push_host: https://rubygems.org
146
+ post_install_message:
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '2.6'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubygems_version: 3.0.1
162
+ signing_key:
163
+ specification_version: 4
164
+ summary: A simple API wrapper for AniList's GraphQL API
165
+ test_files: []