Class: Anilistrb::Client
- Inherits:
-
Object
- Object
- Anilistrb::Client
- Defined in:
- lib/Anilistrb/Client.rb
Instance Method Summary collapse
- #get_anime(id) ⇒ Object
- #get_animelist(userId) ⇒ Object
- #get_manga(id) ⇒ Object
- #get_mangalist(userId) ⇒ Object
- #gql_request(query, variables) ⇒ Object
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #search_anime(search) ⇒ Object
- #search_anime_paged(search:, perPage: 10, page: 1) ⇒ Object
- #search_manga(search) ⇒ Object
- #search_manga_paged(search:, perPage: 10, page: 1) ⇒ Object
- #search_media_paged(search:, type:, perPage: 10, page: 1) ⇒ Object
- #search_user(search) ⇒ Object
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/Anilistrb/Client.rb', line 8 def initialize @gql_client = Anilistrb::GqlClient.new('https://graphql.anilist.co') @gql_dir = File.('./GraphQL', __dir__) @gql_queries = { 'media_by_id' => File.read("#{@gql_dir}/media_by_id.gql"), 'media_by_pages' => File.read("#{@gql_dir}/media_by_pages.gql"), 'media_by_search' => File.read("#{@gql_dir}/media_by_search.gql"), 'medialist_by_user' => File.read("#{@gql_dir}/medialist_by_user.gql"), 'user_by_id' => File.read("#{@gql_dir}/user_by_id.gql"), 'user_by_search' => File.read("#{@gql_dir}/user_by_search.gql") } end |
Instance Method Details
#get_anime(id) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/Anilistrb/Client.rb', line 21 def get_anime(id) begin raise TypeError unless id.is_a? Integer Anilistrb::Media.new(gql_request( @gql_queries['media_by_id'], { id: id, type: 'ANIME' } )['data']['Media']) rescue StandardError nil end end |
#get_animelist(userId) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/Anilistrb/Client.rb', line 42 def get_animelist(userId) begin raise TypeError unless userId.is_a? Integer Anilistrb::Medialist.new(gql_request( @gql_queries['medialist_by_user'], { id: userId, type: 'ANIME' } )['data']['MediaListCollection'], 'ANIME') rescue StandardError then nil end end |
#get_manga(id) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/Anilistrb/Client.rb', line 32 def get_manga(id) begin raise TypeError unless id.is_a? Integer Anilistrb::Media.new(gql_request( @gql_queries['media_by_id'], { id: id, type: 'MANGA' } )['data']['Media']) rescue StandardError then nil end end |
#get_mangalist(userId) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/Anilistrb/Client.rb', line 52 def get_mangalist(userId) begin raise TypeError unless userId.is_a? Integer Anilistrb::Medialist.new(gql_request( @gql_queries['medialist_by_user'], { id: userId, type: 'MANGA' } )['data']['MediaListCollection'], 'MANGA') rescue StandardError then nil end end |
#gql_request(query, variables) ⇒ Object
103 104 105 |
# File 'lib/Anilistrb/Client.rb', line 103 def gql_request(query, variables) @gql_client.request(method: 'POST', query: query, variables: variables) end |
#search_anime(search) ⇒ Object
62 63 64 65 66 |
# File 'lib/Anilistrb/Client.rb', line 62 def search_anime(search) Anilistrb::Media.new(gql_request( @gql_queries['media_by_search'], { search: search, type: 'ANIME' } )['data']['Media']) end |
#search_anime_paged(search:, perPage: 10, page: 1) ⇒ Object
74 75 76 |
# File 'lib/Anilistrb/Client.rb', line 74 def search_anime_paged(search:, perPage: 10, page: 1) search_media_paged(search: search, type: 'ANIME', perPage: perPage, page: page) end |
#search_manga(search) ⇒ Object
68 69 70 71 72 |
# File 'lib/Anilistrb/Client.rb', line 68 def search_manga(search) Anilistrb::Media.new(gql_request( @gql_queries['media_by_search'], { search: search, type: 'MANGA' } )['data']['Media']) end |
#search_manga_paged(search:, perPage: 10, page: 1) ⇒ Object
78 79 80 |
# File 'lib/Anilistrb/Client.rb', line 78 def search_manga_paged(search:, perPage: 10, page: 1) search_media_paged(search: search, type: 'MANGA', perPage: perPage, page: page) end |
#search_media_paged(search:, type:, perPage: 10, page: 1) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/Anilistrb/Client.rb', line 82 def search_media_paged(search:, type:, perPage: 10, page: 1) media = [] begin raise TypeError unless perPage.is_a? Integer raise TypeError unless page.is_a? Integer gql_request( @gql_queries['media_by_pages'], { search: search, type: type, perPage: perPage, page: page } )['data']['Page']['media'].each { |x| media.push(Anilistrb::Media.new(x)) } rescue StandardError then nil end media end |