kagi-api 0.0.0 → 0.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +5 -3
- data/kagi-api.gemspec +2 -1
- data/lib/kagi/api/configuration/content.rb +4 -0
- data/lib/kagi/api/endpoints/enrich/news.rb +2 -0
- data/lib/kagi/api/endpoints/enrich/web.rb +2 -0
- data/lib/kagi/api/endpoints/fast.rb +2 -0
- data/lib/kagi/api/endpoints/search.rb +2 -0
- data/lib/kagi/api/endpoints/summarize.rb +2 -0
- data.tar.gz.sig +0 -0
- metadata +16 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5a6cd75a9dd52bc9bcdd945345ef999f1e211ba0b58544435cce1febb126127
|
4
|
+
data.tar.gz: 8b8f608ddb63d597d490e7fb226769f771cdc68079e866198e0a9593be0a93b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae44593cf9d78fe872b948e03afa12bb85002b8a33cf2cf40951ec10fb63ee5ec15024120b3206c8233570f570bc9595ec5f57eb97e1676ad0be71e57d3979f6
|
7
|
+
data.tar.gz: '0934fa25e546489da85eb10ee9efb7611c68652e530fcd088f85c5fbd905e340f1d9639ab5721007aff1162a6ed6cc2305044566bf3fb636674c2e0e2ba6f82c'
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -10,6 +10,8 @@
|
|
10
10
|
|
11
11
|
A monadic API client for {kagi_link} privacy focused information. This allows you to access the full Kagi API using a fault tolerant pipeline to yield whole value objects (i.e. {data_link}) for immediate interaction within your own applications.
|
12
12
|
|
13
|
+
⚠️ *Roughly ~2% of funds go to Yandex search results that Kagi uses in their searches. Unfortunately, Yandex is a Russian company that helps fund corrupt propaganda, the killing of Ukrainians, and other despicable acts. I was not aware of this when I wrote this API client which also violates my software license. More can be found link:https://kagifeedback.org/d/5445-reconsider-yandex-integration-due-to-the-geopolitical-status-quo[here].*
|
14
|
+
|
13
15
|
toc::[]
|
14
16
|
|
15
17
|
== Features
|
@@ -61,7 +63,7 @@ This client provides access to multiple endpoints. Each endpoint will answer eit
|
|
61
63
|
|
62
64
|
[source,ruby]
|
63
65
|
----
|
64
|
-
client = Kagi::API
|
66
|
+
client = Kagi::API.new
|
65
67
|
|
66
68
|
case client.fast query: "Ruby"
|
67
69
|
in Success(payload) then puts payload
|
@@ -78,7 +80,7 @@ You can configure the client using a block and adjusting the `content_type`, `to
|
|
78
80
|
|
79
81
|
[source,ruby]
|
80
82
|
----
|
81
|
-
client = Kagi::API
|
83
|
+
client = Kagi::API.new do |settings| settings.token = "secret" }
|
82
84
|
client.fast query: "Ruby"
|
83
85
|
----
|
84
86
|
|
@@ -86,7 +88,7 @@ If you don't configure the client, then the following defaults will be used:
|
|
86
88
|
|
87
89
|
[source,ruby]
|
88
90
|
----
|
89
|
-
client = Kagi::API
|
91
|
+
client = Kagi::API.new do |settings|
|
90
92
|
settings.content_type = "application/json"
|
91
93
|
settings.token = nil
|
92
94
|
settings.uri = "https://kagi.com/api/v0"
|
data/kagi-api.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "kagi-api"
|
5
|
-
spec.version = "0.
|
5
|
+
spec.version = "0.1.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://alchemists.io/projects/kagi-api"
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_dependency "http", "~> 5.2"
|
30
30
|
spec.add_dependency "infusible", "~> 4.3"
|
31
31
|
spec.add_dependency "initable", "~> 0.4"
|
32
|
+
spec.add_dependency "inspectable", "~> 0.3"
|
32
33
|
spec.add_dependency "pipeable", "~> 1.3"
|
33
34
|
spec.add_dependency "zeitwerk", "~> 2.7"
|
34
35
|
|
@@ -1,10 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "inspectable"
|
4
|
+
|
3
5
|
module Kagi
|
4
6
|
module API
|
5
7
|
module Configuration
|
6
8
|
# Defines customizable API configuration content.
|
7
9
|
Content = Struct.new :content_type, :token, :uri do
|
10
|
+
include Inspectable[token: :redact]
|
11
|
+
|
8
12
|
def headers = {"Content-Type" => content_type}.compact
|
9
13
|
end
|
10
14
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "inspectable"
|
4
5
|
require "pipeable"
|
5
6
|
|
6
7
|
module Kagi
|
@@ -19,6 +20,7 @@ module Kagi
|
|
19
20
|
|
20
21
|
include Dry::Monads[:result]
|
21
22
|
include Pipeable
|
23
|
+
include Inspectable[contract: :class, error_contract: :class]
|
22
24
|
|
23
25
|
def call(**params)
|
24
26
|
result = requester.get("enrich/news", **params)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "inspectable"
|
4
5
|
require "pipeable"
|
5
6
|
|
6
7
|
module Kagi
|
@@ -19,6 +20,7 @@ module Kagi
|
|
19
20
|
|
20
21
|
include Dry::Monads[:result]
|
21
22
|
include Pipeable
|
23
|
+
include Inspectable[contract: :class, error_contract: :class]
|
22
24
|
|
23
25
|
def call(**params)
|
24
26
|
result = requester.get("enrich/web", **params)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "inspectable"
|
4
5
|
require "pipeable"
|
5
6
|
|
6
7
|
module Kagi
|
@@ -18,6 +19,7 @@ module Kagi
|
|
18
19
|
|
19
20
|
include Dry::Monads[:result]
|
20
21
|
include Pipeable
|
22
|
+
include Inspectable[contract: :class, error_contract: :class]
|
21
23
|
|
22
24
|
def call(**params)
|
23
25
|
result = requester.post("fastgpt", **params)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "inspectable"
|
4
5
|
require "pipeable"
|
5
6
|
|
6
7
|
module Kagi
|
@@ -18,6 +19,7 @@ module Kagi
|
|
18
19
|
|
19
20
|
include Dry::Monads[:result]
|
20
21
|
include Pipeable
|
22
|
+
include Inspectable[contract: :class, error_contract: :class]
|
21
23
|
|
22
24
|
def call(**params)
|
23
25
|
result = requester.get("search", **params)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "inspectable"
|
4
5
|
require "pipeable"
|
5
6
|
|
6
7
|
module Kagi
|
@@ -18,6 +19,7 @@ module Kagi
|
|
18
19
|
|
19
20
|
include Dry::Monads[:result]
|
20
21
|
include Pipeable
|
22
|
+
include Inspectable[contract: :class, error_contract: :class]
|
21
23
|
|
22
24
|
def call(**params)
|
23
25
|
result = requester.post("summarize", **params)
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kagi-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -119,6 +119,20 @@ dependencies:
|
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '0.4'
|
122
|
+
- !ruby/object:Gem::Dependency
|
123
|
+
name: inspectable
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.3'
|
129
|
+
type: :runtime
|
130
|
+
prerelease: false
|
131
|
+
version_requirements: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0.3'
|
122
136
|
- !ruby/object:Gem::Dependency
|
123
137
|
name: pipeable
|
124
138
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
228
|
- !ruby/object:Gem::Version
|
215
229
|
version: '0'
|
216
230
|
requirements: []
|
217
|
-
rubygems_version: 3.6.
|
231
|
+
rubygems_version: 3.6.9
|
218
232
|
specification_version: 4
|
219
233
|
summary: A Kagi API client for privacy focused information.
|
220
234
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|