Class: Anilistrb::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/Anilistrb/Client.rb

Instance Method Summary collapse

Constructor Details

#initializeClient

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

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

#search_user(search) ⇒ Object



96
97
98
99
100
101
# 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