class Anilistrb::Client
Public Class Methods
new()
click to toggle source
# File lib/Anilistrb/Client.rb, line 8 def initialize @gql_client = Anilistrb::GqlClient.new('https://graphql.anilist.co') @gql_dir = File.expand_path('./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
Public Instance Methods
get_anime(id)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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
search_user(search)
click to toggle source
# File lib/Anilistrb/Client.rb, line 96 def search_user(search) Anilistrb::User.new(gql_request( @gql_queries['user_by_search'], { search: search } )['data']['User']) end