Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
enable-cache: true

- name: Install dependencies
run: uv sync --extra dev --frozen
run: uv sync --group dev --frozen

- name: Run tests
run: uv run pytest -q
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@ WORKDIR /app

COPY pyproject.toml /app/
COPY uv.lock /app/uv.lock
COPY README.md /app/
COPY src /app/src
COPY engines /app/engines
COPY build-engines.py /app/build-engines.py

RUN uv sync --locked
RUN uv sync --locked --no-dev

ENV PATH="/app/.venv/bin:$PATH"

Expand Down
8 changes: 4 additions & 4 deletions engines/amazon.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"engine": "amazon",
"params": {
"k": {
"description": "Parameter defines the query you want to search. You can use anything that you would use in a regular Amazon search.",
"description": "Parameter defines the query you want to search. You can use anything that you would use in a regular Amazon search. This parameter can't be used with the node parameter.",
"group": "search_query"
},
"amazon_domain": {
Expand Down Expand Up @@ -354,16 +354,16 @@
"group": "advanced_amazon_parameters"
},
"node": {
"description": "Parameter specifies the category for Amazon search results. You can find the appropriate node value by browsing Amazon’s website and accessing a specific category. The node ID is typically included in the URL after the format `node=[NODE ID]`. For example, on Amazon.com, the node for Smart Home is `6563140011`, and on Amazon.co.uk, the node for Fashion is `11961407031`. Use this node value to filter search results by category.",
"description": "Parameter specifies the category for Amazon search results. You can find the appropriate node value by browsing Amazon’s website and accessing a specific category. The node ID is typically included in the URL after the format `node=[NODE ID]`. For example, on Amazon.com, the node for Smart Home is `6563140011`, and on Amazon.co.uk, the node for Fashion is `11961407031`. Use this node value to filter search results by category. This parameter can't be used with the k parameter. Head to Amazon Category Nodes for a full list of supported Amazon Categories.",
"group": "advanced_filters"
},
"rh": {
"description": "Parameter defines items filtering based on their attributes. The structure is a list of `key:value` pairs separated by `,`. For example `n:16318031,p_n_cpf_eligible:21512497011,p_72:1248897011` to filter for products in **Coffee** department (`n:16318031`) that are **Climate Pledge Friendly** (`p_n_cpf_eligible:21512497011`) and rated **4 Stars & Up** (`p_72:1248897011`).",
"description": "Parameter defines items filtering based on their attributes. The structure is a list of `key:value` pairs separated by `,`. For example `n:16318031,p_n_cpf_eligible:21512497011,p_72:1248897011` to filter for products in **Coffee** department (`n:16318031`) that are **Climate Pledge Friendly** (`p_n_cpf_eligible:21512497011`) and rated **4 Stars & Up** (`p_72:1248897011`). Head to Amazon Category Nodes for a full list of supported Amazon Categories.",
"group": "advanced_filters"
},
"dc": {
"type": "checkbox",
"description": "Activate spelling fix. `true` (default) includes spelling fix, `false` searches without spelling fix.",
"description": "Parameter defines the exclusion of results from an auto-corrected query when the original query is spelled wrong. It can be set to `true` to exclude these results, or `false` to include them (default).",
"group": "advanced_filters"
},
"page": {
Expand Down
1 change: 1 addition & 0 deletions engines/amazon_product.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"engine": "amazon_product",
"params": {
"asin": {
"required": true,
"description": "Parameter defines the Amazon Standard Identification Number (ASIN) of the product you want to retrieve. This is a unique identifier assigned to each product on Amazon.",
"group": "search_query"
},
Expand Down
136 changes: 136 additions & 0 deletions engines/apple_maps.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
{
"engine": "apple_maps",
"params": {
"query": {
"required": true,
"description": "Parameter defines the query you want to search. You can use anything that you would use in a regular Apple Maps search.",
"group": "search_query"
},
"center": {
"description": "Parameter defines coordinates of the center point of the region you want to search within. You can pass the coordinates as `latitude,longitude`. (e.g. `30.324639,-97.7304611` for Austin, TX). Either a center or a location parameter is required. These parameters can't be used together.",
"group": "geographic_location"
},
"span": {
"description": "Parameter defines width and height of the search region as `latitudeDelta,longitudeDelta`. Smaller delta values correspond to a higher zoom level. (defaults to `0.5,0.5`).",
"group": "geographic_location"
},
"location": {
"type": "location",
"description": "Parameter defines the GPS coordinates used for the search origin. (e.g. `Austin, Texas, United States`). Either a center or a location parameter is required. These parameters can't be used together.",
"group": "geographic_location"
},
"sort": {
"type": "select",
"options": [
"default",
"distance",
"ratings"
],
"description": "Parameter defines the sorting refinement for the search. Can be one of the following: `distance` - Sort by distance from the `center`/`location`. `ratings` - Sort by result ratings. `default` - Sort by best match for your query. This is the default.",
"group": "refinement"
},
"toggles": {
"description": "Parameter defines the toggle options for the search. A comma separated list of toggle `key` values can be passed to this parameter. See the `refinements.toggles` object of the response to see available toggles for a search.",
"group": "refinement"
},
"multi_select_options": {
"description": "Parameter defines the options you want to filter by for multi select refinements. A comma separated list of toggle `key` values can be passed to this parameter. See the `refinement.multi_select..options` object of the response to see available multi select refinements for the search.",
"group": "refinement"
},
"open_at": {
"type": "number",
"description": "Parameter defines the time at which result locations should be open at. The value must be a Unix timestamp that is in the future, and no more than 24 hours from the current time. (e.g. `1784657409`).",
"group": "refinement"
},
"locale": {
"type": "select",
"options": [
"ar-SA",
"bn-BD",
"ca-ES",
"cs-CZ",
"da-DK",
"de-DE",
"el-GR",
"en-AU",
"en-GB",
"en-US",
"es-ES",
"es-MX",
"fi-FI",
"fr-CA",
"fr-FR",
"gu-IN",
"he-IL",
"hi-IN",
"hr-HR",
"hu-HU",
"id-ID",
"it-IT",
"ja-JP",
"kn-IN",
"ko-KR",
"ml-IN",
"mr-IN",
"ms-MY",
"nb-NO",
"nl-NL",
"or-IN",
"pa-IN",
"pl-PL",
"pt-BR",
"pt-PT",
"ro-RO",
"ru-RU",
"sk-SK",
"sl-SI",
"sv-SE",
"ta-IN",
"te-IN",
"th-TH",
"tr-TR",
"uk-UA",
"ur-PK",
"vi-VN",
"zh-CN",
"zh-HK",
"zh-TW"
],
"description": "Parameter defines the locale the results should be localized for. Locales for Apple Maps are represented as `-`. (defaults to `en-US`, the locale for U.S. English). Head to Apple Maps Locales for the list of available locales.",
"group": "localization"
}
},
"common_params": {
"engine": {
"required": true,
"description": "Set parameter to `apple_maps` to use the Apple Maps API engine.",
"group": "serpapi_parameters"
},
"no_cache": {
"type": "checkbox",
"description": "Parameter will force SerpApi to fetch the Apple Maps results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to `false` (default) to allow results from the cache, or `true` to disallow results from the cache. no\\_cache and async parameters should not be used together.",
"group": "serpapi_parameters"
},
"async": {
"description": "Parameter defines the way you want to submit your search to SerpApi. It can be set to `false` (default) to open an HTTP connection and keep it open until you got your search results, or `true` to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no\\_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.",
"group": "serpapi_parameters"
},
"zero_trace": {
"description": "Enterprise only. Parameter enables ZeroTrace mode. It can be set to `false` (default) or `true`. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.",
"group": "serpapi_parameters"
},
"api_key": {
"required": true,
"description": "Parameter defines the SerpApi private key to use.",
"group": "serpapi_parameters"
},
"output": {
"description": "Parameter defines the final output you want. It can be set to json (default) to get a structured `JSON` of the results, or `html` to get the raw html retrieved.",
"group": "serpapi_parameters"
},
"json_restrictor": {
"description": "Parameter defines the fields you want to restrict in the outputs for smaller, faster responses. See JSON Restrictor for more details.",
"group": "serpapi_parameters"
}
}
}
100 changes: 100 additions & 0 deletions engines/apple_maps_places.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
{
"engine": "apple_maps_places",
"params": {
"muid": {
"required": true,
"description": "Parameter defines the MUID of the place you want to search. You can use the MUID from the Apple Maps Places API response. (e.g. `18366846785603624515` for London). You can also pass multiple MUIDs separated by commas (e.g., `18366846785603624515,11018610862491969006` to get London and Austin). Upto 50 MUIDs can be fetched in a single request.",
"group": "search_query"
},
"locale": {
"type": "select",
"options": [
"ar-SA",
"bn-BD",
"ca-ES",
"cs-CZ",
"da-DK",
"de-DE",
"el-GR",
"en-AU",
"en-GB",
"en-US",
"es-ES",
"es-MX",
"fi-FI",
"fr-CA",
"fr-FR",
"gu-IN",
"he-IL",
"hi-IN",
"hr-HR",
"hu-HU",
"id-ID",
"it-IT",
"ja-JP",
"kn-IN",
"ko-KR",
"ml-IN",
"mr-IN",
"ms-MY",
"nb-NO",
"nl-NL",
"or-IN",
"pa-IN",
"pl-PL",
"pt-BR",
"pt-PT",
"ro-RO",
"ru-RU",
"sk-SK",
"sl-SI",
"sv-SE",
"ta-IN",
"te-IN",
"th-TH",
"tr-TR",
"uk-UA",
"ur-PK",
"vi-VN",
"zh-CN",
"zh-HK",
"zh-TW"
],
"description": "Parameter defines the locale the results should be localized for. Locales for Apple Maps are represented as `-`. (defaults to `en-US`, the locale for U.S. English). Head to Apple Maps Locales for the list of available locales.",
"group": "localization"
}
},
"common_params": {
"engine": {
"required": true,
"description": "Set parameter to `apple_maps_places` to use the Apple Maps Places API engine.",
"group": "serpapi_parameters"
},
"no_cache": {
"type": "checkbox",
"description": "Parameter will force SerpApi to fetch the Apple Maps Places results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to `false` (default) to allow results from the cache, or `true` to disallow results from the cache. no\\_cache and async parameters should not be used together.",
"group": "serpapi_parameters"
},
"async": {
"description": "Parameter defines the way you want to submit your search to SerpApi. It can be set to `false` (default) to open an HTTP connection and keep it open until you got your search results, or `true` to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no\\_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.",
"group": "serpapi_parameters"
},
"zero_trace": {
"description": "Enterprise only. Parameter enables ZeroTrace mode. It can be set to `false` (default) or `true`. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.",
"group": "serpapi_parameters"
},
"api_key": {
"required": true,
"description": "Parameter defines the SerpApi private key to use.",
"group": "serpapi_parameters"
},
"output": {
"description": "Parameter defines the final output you want. It can be set to json (default) to get a structured `JSON` of the results, or `html` to get the raw html retrieved.",
"group": "serpapi_parameters"
},
"json_restrictor": {
"description": "Parameter defines the fields you want to restrict in the outputs for smaller, faster responses. See JSON Restrictor for more details.",
"group": "serpapi_parameters"
}
}
}
2 changes: 1 addition & 1 deletion engines/baidu.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"group": "pagination"
},
"gpc": {
"description": "Parameter defines the time period for results. (e.g., `stf=1767797961,1768402761|stftype=1` only returns results from the past 7 days. First integer within the parameter,`1767797961` is Unix Timestamp for 7 days ago. Second integer,`1768402761` is Unix Timestamp for now.).",
"description": "Parameter defines the time period for results. (e.g., `stf=1784016609,1784621409|stftype=1` only returns results from the past 7 days. First integer within the parameter,`1784016609` is Unix Timestamp for 7 days ago. Second integer,`1784621409` is Unix Timestamp for now.).",
"group": "advanced_filters"
},
"q5": {
Expand Down
4 changes: 2 additions & 2 deletions engines/bing.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@
"safeSearch": {
"type": "select",
"options": [
"off",
"strict",
"moderate",
"strict"
"off"
],
"description": "Parameter defines the level of filtering for adult content. It can be set to: `Off` to return webpages with adult text, images, or videos. `Moderate` to return webpages with adult text, but not adult images or videos. `Strict` to not return webpages with adult text, images, or videos.",
"group": "advanced_filters"
Expand Down
10 changes: 10 additions & 0 deletions engines/bing_images.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,16 @@
],
"description": "Parameter is used for filtering images by license. It can be set to: `Type-Any` - All Creative Commons `L1` - Public Domain `L2_L3_L4_L5_L6_L7` - Free to share and use `L2_L3_L4` - Free to share and use commercially `L2_L3_L5_L6` - Free to modify, share and use `L2_L3` - Free to modify, share, and use commercially",
"group": "advanced_bing_images_parameters"
},
"safeSearch": {
"type": "select",
"options": [
"strict",
"moderate",
"off"
],
"description": "Parameter defines the level of filtering for adult content. It can be set to: `strict` - Strict `moderate` - Moderate (Default) `off` - Off",
"group": "advanced_bing_images_parameters"
}
},
"common_params": {
Expand Down
4 changes: 2 additions & 2 deletions engines/bing_news.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@
"safeSearch": {
"type": "select",
"options": [
"off",
"strict",
"moderate",
"strict"
"off"
],
"description": "Parameter defines the level of filtering for adult content. It can be set to: `Off` to return webpages with adult text, images, or videos. `Moderate` to return webpages with adult text, but not adult images or videos. `Strict` to not return webpages with adult text, images, or videos.",
"group": "advanced_filters"
Expand Down
Loading
Loading