podcast_api 1.0.1 → 1.1.0

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.
data/RakeFile ADDED
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new(:test) do |test|
4
+ test.libs << 'test'
5
+ test.test_files = FileList['tests/*_test.rb']
6
+ end
7
+
8
+ desc 'Run Tests'
9
+ task :default => :test
@@ -1,18 +1,18 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- podcast_api (1.0.1)
4
+ podcast_api (1.1.0)
5
5
  httparty
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- httparty (0.18.1)
10
+ httparty (0.20.0)
11
11
  mime-types (~> 3.0)
12
12
  multi_xml (>= 0.5.2)
13
13
  mime-types (3.3.1)
14
14
  mime-types-data (~> 3.2015)
15
- mime-types-data (3.2021.0225)
15
+ mime-types-data (3.2021.0901)
16
16
  multi_xml (0.6.0)
17
17
 
18
18
  PLATFORMS
data/examples/sample.rb CHANGED
@@ -24,6 +24,14 @@ else
24
24
  puts "Next billing date: #{response.headers['X-Listenapi-NextBillingDate']}"
25
25
  end
26
26
 
27
+ # response = client.spellcheck(q: 'evergrand stok')
28
+ # puts JSON.parse(response.body)
29
+
30
+ # response = client.fetch_related_searches(q: 'evergrande')
31
+ # puts JSON.parse(response.body)
32
+
33
+ # response = client.fetch_trending_searches()
34
+ # puts JSON.parse(response.body)
27
35
 
28
36
  # response = client.typeahead(q: 'startup', show_podcasts: 1)
29
37
  # puts JSON.parse(response.body)
data/lib/errors.rb CHANGED
@@ -19,8 +19,5 @@ module PodcastApi
19
19
  end
20
20
 
21
21
  class NotFoundError < PodcastApiError
22
- end
23
-
24
- class APIConnectionError < PodcastApiError
25
- end
22
+ end
26
23
  end
data/lib/podcast_api.rb CHANGED
@@ -14,14 +14,15 @@ module PodcastApi
14
14
  @@BASE_URL_PROD = 'https://listen-api.listennotes.com/api/v2'
15
15
  @@BASE_URL_TEST = 'https://listen-api-test.listennotes.com/api/v2'
16
16
 
17
+ attr_reader :base_url
18
+
17
19
  def initialize(api_key: nil, user_agent: nil)
18
20
  @api_key = api_key
19
21
  @base_url = api_key ? @@BASE_URL_PROD : @@BASE_URL_TEST
20
22
  @headers = {
21
- 'X-ListenAPI-Key' => @api_key,
23
+ 'X-ListenAPI-Key' => @api_key ? @api_key : '',
22
24
  'User-Agent' => user_agent ? user_agent : "podcasts-api-ruby #{VERSION}"
23
25
  }
24
- puts @headers
25
26
  end
26
27
 
27
28
  protected
@@ -60,6 +61,18 @@ module PodcastApi
60
61
  return send_http_request('get', "#{@base_url}/typeahead", {query: kwargs, headers: @headers})
61
62
  end
62
63
 
64
+ def spellcheck(**kwargs)
65
+ return send_http_request('get', "#{@base_url}/spellcheck", {query: kwargs, headers: @headers})
66
+ end
67
+
68
+ def fetch_related_searches(**kwargs)
69
+ return send_http_request('get', "#{@base_url}/related_searches", {query: kwargs, headers: @headers})
70
+ end
71
+
72
+ def fetch_trending_searches(**kwargs)
73
+ return send_http_request('get', "#{@base_url}/trending_searches", {query: kwargs, headers: @headers})
74
+ end
75
+
63
76
  def fetch_best_podcasts(**kwargs)
64
77
  return send_http_request('get', "#{@base_url}/best_podcasts", {query: kwargs, headers: @headers})
65
78
  end
@@ -75,10 +88,12 @@ module PodcastApi
75
88
  end
76
89
 
77
90
  def batch_fetch_podcasts(**kwargs)
91
+ @headers['Content-Type'] = 'application/x-www-form-urlencoded'
78
92
  return send_http_request('post', "#{@base_url}/podcasts", {body: kwargs, headers: @headers})
79
93
  end
80
94
 
81
95
  def batch_fetch_episodes(**kwargs)
96
+ @headers['Content-Type'] = 'application/x-www-form-urlencoded'
82
97
  return send_http_request('post', "#{@base_url}/episodes", {body: kwargs, headers: @headers})
83
98
  end
84
99
 
@@ -88,7 +103,6 @@ module PodcastApi
88
103
  end
89
104
 
90
105
  def fetch_curated_podcasts_lists(**kwargs)
91
- id = kwargs.delete(:id)
92
106
  return send_http_request('get', "#{@base_url}/curated_podcasts", {query: kwargs, headers: @headers})
93
107
  end
94
108
 
@@ -128,6 +142,7 @@ module PodcastApi
128
142
  end
129
143
 
130
144
  def submit_podcast(**kwargs)
145
+ @headers['Content-Type'] = 'application/x-www-form-urlencoded'
131
146
  return send_http_request('post', "#{@base_url}/podcasts/submit", {body: kwargs, headers: @headers})
132
147
  end
133
148
 
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PodcastApi
4
- VERSION = "1.0.1"
4
+ VERSION = "1.1.0"
5
5
  end
data/podcast_api.gemspec CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.required_ruby_version = ">= 2.3.0"
11
11
  s.summary = "Ruby bindings for the Listen Notes Podcast API"
12
12
  s.description = "Listen Notes is the best podcast search engine and api. " \
13
+ "This is the official Ruby Gem for the Listen Notes Podcast API. " \
13
14
  "See https://www.listennotes.com/api/ for details."
14
15
  s.author = "Listen Notes, Inc."
15
16
  s.email = "hello@listennotes.com"
data/rakefile.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new(:test) do |test|
4
+ test.libs << 'test'
5
+ test.test_files = FileList['tests/*_test.rb']
6
+ end
7
+
8
+ desc 'Run Tests'
9
+ task :default => :test
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: podcast_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Listen Notes, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-29 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -24,15 +24,19 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Listen Notes is the best podcast search engine and api. See https://www.listennotes.com/api/
27
+ description: Listen Notes is the best podcast search engine and api. This is the
28
+ official Ruby Gem for the Listen Notes Podcast API. See https://www.listennotes.com/api/
28
29
  for details.
29
30
  email: hello@listennotes.com
30
31
  executables: []
31
32
  extensions: []
32
33
  extra_rdoc_files: []
33
34
  files:
35
+ - Gemfile
36
+ - Gemfile.lock
34
37
  - LICENSE
35
38
  - README.md
39
+ - RakeFile
36
40
  - examples/Gemfile
37
41
  - examples/Gemfile.lock
38
42
  - examples/sample.rb
@@ -40,6 +44,7 @@ files:
40
44
  - lib/podcast_api.rb
41
45
  - lib/version.rb
42
46
  - podcast_api.gemspec
47
+ - rakefile.rb
43
48
  homepage: https://www.listennotes.com/api/
44
49
  licenses:
45
50
  - MIT