asimov-serpapi-module 0.1.1-x86_64-linux-gnu

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d9a5053128ec7ee4640d87d3c02610f5f470c73817b5a91007d269ea28eff167
4
+ data.tar.gz: b693028f33c903b4400392ff4880de09d88abb3446074540bf3c1c7dcfbfa925
5
+ SHA512:
6
+ metadata.gz: d877f59a657437e47adee64e19b07c2a48e9340418ee36622d94de158ea79fccd95ba84047d77dff6a22790aff743ed6448dc7520a1d591be0cf204003547ec6
7
+ data.tar.gz: 23252d4617cafe2f643f92409833472d2f32a1b423e13311710e895d20177c2d022d3f647360bc2d21031fc82462f5c497a5ee92c2f2737f7d41249c1af38255
data/AUTHORS ADDED
@@ -0,0 +1 @@
1
+ * Arto Bendiken <arto@asimov.so>
data/CHANGES.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## 0.1.1 - 2025-05-29
9
+ ### Changed
10
+ - Build releases automatically
11
+
12
+ ## 0.1.0 - 2025-05-24
13
+ ### Added
14
+ - Pretty-printed JSON & JSON-LD output
15
+
16
+ ## 0.0.1 - 2025-05-22
17
+
18
+ ## 0.0.0 - 2025-05-21
data/README.md ADDED
@@ -0,0 +1,121 @@
1
+ # ASIMOV SerpApi Module
2
+
3
+ [![License](https://img.shields.io/badge/license-Public%20Domain-blue.svg)](https://unlicense.org)
4
+ [![Package on Crates.io](https://img.shields.io/crates/v/asimov-serpapi-module.svg)](https://crates.io/crates/asimov-serpapi-module)
5
+ [![Package on PyPI](https://img.shields.io/pypi/v/asimov-serpapi-module.svg)](https://pypi.org/project/asimov-serpapi-module)
6
+ [![Package on RubyGems](https://img.shields.io/gem/v/asimov-serpapi-module.svg)](https://rubygems.org/gems/asimov-serpapi-module)
7
+ [![Package on NPM](https://img.shields.io/npm/v/asimov-serpapi-module.svg)](https://npmjs.com/package/asimov-serpapi-module)
8
+
9
+ [ASIMOV] module for data import powered by the [SerpApi] search data platform.
10
+
11
+ ## ✨ Features
12
+
13
+ - Imports structured data from DuckDuckGo, Google, and Bing search results.
14
+ - Collects the raw JSON data via the SerpApi real-time API (requires an API key).
15
+ - Constructs a semantic knowledge graph based on the [KNOW] ontology.
16
+ - Supports plain JSON output as well as [RDF] output in the form of [JSON-LD].
17
+ - Distributed as a standalone static binary with zero runtime dependencies.
18
+
19
+ ## 🛠️ Prerequisites
20
+
21
+ - [Rust] 1.85+ (2024 edition) if building from source code
22
+
23
+ ## ⬇️ Installation
24
+
25
+ ### Installation from PyPI
26
+
27
+ ```bash
28
+ pip install -U asimov-serpapi-module
29
+ ```
30
+
31
+ ### Installation from RubyGems
32
+
33
+ ```bash
34
+ gem install asimov-serpapi-module
35
+ ```
36
+
37
+ ### Installation from NPM
38
+
39
+ ```bash
40
+ npm install -g asimov-serpapi-module
41
+ ```
42
+
43
+ ### Installation from Source Code
44
+
45
+ ```bash
46
+ cargo install asimov-serpapi-module
47
+ ```
48
+
49
+ ## 👉 Examples
50
+
51
+ ```bash
52
+ export SERPAPI_KEY="..."
53
+ ```
54
+
55
+ ### Fetching DuckDuckGo Results
56
+
57
+ ```bash
58
+ asimov-serpapi-fetcher https://duckduckgo.com/?q=Isaac+Asimov # JSON
59
+ asimov-serpapi-importer https://duckduckgo.com/?q=Isaac+Asimov # JSON-LD
60
+ ```
61
+
62
+ ### Fetching Google Results
63
+
64
+ ```bash
65
+ asimov-serpapi-fetcher https://www.google.com/search?q=Isaac+Asimov # JSON
66
+ asimov-serpapi-importer https://www.google.com/search?q=Isaac+Asimov # JSON-LD
67
+ ```
68
+
69
+ ### Fetching Bing Results
70
+
71
+ ```bash
72
+ asimov-serpapi-fetcher https://www.bing.com/search?q=Isaac+Asimov # JSON
73
+ asimov-serpapi-importer https://www.bing.com/search?q=Isaac+Asimov # JSON-LD
74
+ ```
75
+
76
+ ## ⚙ Configuration
77
+
78
+ ### Environment Variables
79
+
80
+ - `SERPAPI_KEY`: (required) the [SerpApi API key] to use
81
+
82
+ ## 📚 Reference
83
+
84
+ ### Installed Binaries
85
+
86
+ - `asimov-serpapi-fetcher`: collects JSON data from the SerpApi real-time API
87
+ - `asimov-serpapi-importer`: collects and transforms JSON into JSON-LD
88
+
89
+ ### Supported Engines
90
+
91
+ Engine | URL Prefix | JSON | RDF
92
+ :------ | :--------- | :--: | :--:
93
+ Bing | `https://www.bing.com/search?q=` | ✅ | ✅
94
+ DuckDuckGo | `https://duckduckgo.com/?q=` | ✅ | ✅
95
+ Google | `https://www.google.com/search?q=` | ✅ | ✅
96
+ <img width="100" height="1"/> | <img width="550" height="1"/> | <img width="50" height="1"/> | <img width="50" height="1"/>
97
+
98
+ ## 👨‍💻 Development
99
+
100
+ ```bash
101
+ git clone https://github.com/asimov-modules/asimov-serpapi-module.git
102
+ ```
103
+
104
+ ---
105
+
106
+ [![Share on X](https://img.shields.io/badge/share%20on-x-03A9F4?logo=x)](https://x.com/intent/post?url=https://github.com/asimov-modules/asimov-serpapi-module&text=asimov-serpapi-module)
107
+ [![Share on Reddit](https://img.shields.io/badge/share%20on-reddit-red?logo=reddit)](https://reddit.com/submit?url=https://github.com/asimov-modules/asimov-serpapi-module&title=asimov-serpapi-module)
108
+ [![Share on Hacker News](https://img.shields.io/badge/share%20on-hn-orange?logo=ycombinator)](https://news.ycombinator.com/submitlink?u=https://github.com/asimov-modules/asimov-serpapi-module&t=asimov-serpapi-module)
109
+ [![Share on Facebook](https://img.shields.io/badge/share%20on-fb-1976D2?logo=facebook)](https://www.facebook.com/sharer/sharer.php?u=https://github.com/asimov-modules/asimov-serpapi-module)
110
+ [![Share on LinkedIn](https://img.shields.io/badge/share%20on-linkedin-3949AB?logo=linkedin)](https://www.linkedin.com/sharing/share-offsite/?url=https://github.com/asimov-modules/asimov-serpapi-module)
111
+
112
+ [ASIMOV]: https://github.com/asimov-platform
113
+ [JSON-LD]: https://json-ld.org
114
+ [KNOW]: https://github.com/know-ontology
115
+ [NPM]: https:/npmjs.org
116
+ [Python]: https://python.org
117
+ [RDF]: https://github.com/rust-rdf
118
+ [Ruby]: https://ruby-lang.org
119
+ [Rust]: https://rust-lang.org
120
+ [SerpApi]: https://serpapi.com
121
+ [SerpApi API key]: https://serpapi-python.readthedocs.io/en/latest/#serpapi.Client
data/UNLICENSE ADDED
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <https://unlicense.org/>
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative "../lib/asimov-serpapi-module"
3
+ argv0 = ::ASIMOV_Serpapi_Module::Fetcher.path
4
+ if ::Gem.win_platform?
5
+ ::Kernel.exit(::Kernel.system(argv0, *ARGV) ? 0 : $?.exitstatus)
6
+ else
7
+ ::Kernel.exec(argv0, *ARGV)
8
+ end
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative "../lib/asimov-serpapi-module"
3
+ argv0 = ::ASIMOV_Serpapi_Module::Importer.path
4
+ if ::Gem.win_platform?
5
+ ::Kernel.exit(::Kernel.system(argv0, *ARGV) ? 0 : $?.exitstatus)
6
+ else
7
+ ::Kernel.exec(argv0, *ARGV)
8
+ end
@@ -0,0 +1,23 @@
1
+ # This is free and unencumbered software released into the public domain.
2
+
3
+ module ASIMOV_Serpapi_Module; end
4
+
5
+ class ASIMOV_Serpapi_Module::Fetcher
6
+ def self.path
7
+ ::File.join(__dir__, "asimov-serpapi-fetcher")
8
+ end
9
+
10
+ def self.execute(...)
11
+ self.new(...).execute
12
+ end
13
+
14
+ def initialize(*args, env: {})
15
+ @argv0 = self.class.path.freeze
16
+ @args = args.map(&:to_s).freeze
17
+ @env = env.to_h.freeze
18
+ end
19
+
20
+ def execute(*args)
21
+ ::Kernel.system(@env, @argv0, *(@args + args.map(&:to_s))) ? 0 : $?.exitstatus
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # This is free and unencumbered software released into the public domain.
2
+
3
+ module ASIMOV_Serpapi_Module; end
4
+
5
+ class ASIMOV_Serpapi_Module::Importer
6
+ def self.path
7
+ ::File.join(__dir__, "asimov-serpapi-importer")
8
+ end
9
+
10
+ def self.execute(...)
11
+ self.new(...).execute
12
+ end
13
+
14
+ def initialize(*args, env: {})
15
+ @argv0 = self.class.path.freeze
16
+ @args = args.map(&:to_s).freeze
17
+ @env = env.to_h.freeze
18
+ end
19
+
20
+ def execute(*args)
21
+ ::Kernel.system(@env, @argv0, *(@args + args.map(&:to_s))) ? 0 : $?.exitstatus
22
+ end
23
+ end
@@ -0,0 +1,8 @@
1
+ # This is free and unencumbered software released into the public domain.
2
+
3
+ module ASIMOV_Serpapi_Module
4
+ VERSION = "0.1.1".freeze
5
+ end
6
+
7
+ require_relative 'asimov-serpapi-module/fetcher'
8
+ require_relative 'asimov-serpapi-module/importer'
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: asimov-serpapi-module
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: x86_64-linux-gnu
6
+ authors:
7
+ - ASIMOV Protocol
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-05-29 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: ASIMOV module for data import powered by the SerpApi search data platform.
13
+ email: support@asimov.so
14
+ executables:
15
+ - asimov-serpapi-fetcher
16
+ - asimov-serpapi-importer
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - AUTHORS
21
+ - CHANGES.md
22
+ - README.md
23
+ - UNLICENSE
24
+ - VERSION
25
+ - bin/asimov-serpapi-fetcher
26
+ - bin/asimov-serpapi-importer
27
+ - lib/asimov-serpapi-module.rb
28
+ - lib/asimov-serpapi-module/asimov-serpapi-fetcher
29
+ - lib/asimov-serpapi-module/asimov-serpapi-importer
30
+ - lib/asimov-serpapi-module/fetcher.rb
31
+ - lib/asimov-serpapi-module/importer.rb
32
+ homepage: https://github.com/asimov-modules
33
+ licenses:
34
+ - Unlicense
35
+ metadata:
36
+ homepage_uri: https://github.com/asimov-modules
37
+ source_code_uri: https://github.com/asimov-modules/asimov-serpapi-module
38
+ changelog_uri: https://github.com/asimov-modules/asimov-serpapi-module/blob/master/CHANGES.md
39
+ bug_tracker_uri: https://github.com/asimov-modules/asimov-serpapi-module/issues
40
+ documentation_uri: https://github.com/asimov-modules/asimov-serpapi-module/blob/master/README.md
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubygems_version: 3.6.9
56
+ specification_version: 4
57
+ summary: ASIMOV module for data import powered by the SerpApi search data platform.
58
+ test_files: []