scrapebadger-cli 0.22.1__tar.gz → 0.23.1__tar.gz
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.
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/PKG-INFO +1 -1
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/pyproject.toml +1 -1
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/ebay.py +10 -1
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/vinted.py +6 -1
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/tests/test_google_light_search.py +6 -2
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/uv.lock +1 -1
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/.gitignore +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/README.md +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/__init__.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/client.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/__init__.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/airbnb.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/aliexpress.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/amazon.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/apartments.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/app_store.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/asos.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/auth.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/baidu.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/bestbuy.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/bing.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/booking.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/chatgpt.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/depop.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/duckduckgo.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/etsy.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/facebook.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/gemini.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/google.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/google_play.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/gumtree.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/idealista.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/immobiliare.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/instagram.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/leboncoin.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/linkedin.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/loopnet.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/naver.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/perplexity.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/realtor.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/reddit.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/redfin.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/stream.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/target.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/tiktok.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/twitter.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/wallapop.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/walmart.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/web.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/yahoo.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/yandex.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/youtube.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/zillow.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/config.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/main.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/output.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/tests/test_naver.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/tests/test_tiktok_pagination.py +0 -0
- {scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/tests/test_vinted_image_search.py +0 -0
|
@@ -69,7 +69,10 @@ def search(
|
|
|
69
69
|
|
|
70
70
|
@app.command()
|
|
71
71
|
def completed(
|
|
72
|
-
query: str = typer.Argument(
|
|
72
|
+
query: str | None = typer.Argument(None, help="Search text (optional with --seller)"),
|
|
73
|
+
seller: str | None = typer.Option(
|
|
74
|
+
None, "--seller", help="Only this seller's sold listings (eBay username)"
|
|
75
|
+
),
|
|
73
76
|
domain: str = DOMAIN,
|
|
74
77
|
category_id: str | None = typer.Option(None, "--category-id", help="Restrict to a category"),
|
|
75
78
|
page: int = typer.Option(1, "--page", "-p"),
|
|
@@ -98,11 +101,17 @@ def completed(
|
|
|
98
101
|
--language english drops the Japanese and Chinese prints that a national
|
|
99
102
|
price series should not average in. It is a separate axis from --location:
|
|
100
103
|
a UK-located seller still ships Japanese cards.
|
|
104
|
+
|
|
105
|
+
--seller USERNAME limits it to one seller; with no search text it pages
|
|
106
|
+
through everything that seller sold.
|
|
101
107
|
"""
|
|
108
|
+
if not (query or seller):
|
|
109
|
+
raise typer.BadParameter("Pass query, --seller, or both.")
|
|
102
110
|
data = api_get(
|
|
103
111
|
"/v1/ebay/completed",
|
|
104
112
|
{
|
|
105
113
|
"query": query,
|
|
114
|
+
"seller": seller,
|
|
106
115
|
"domain": domain,
|
|
107
116
|
"category_id": category_id,
|
|
108
117
|
"page": page,
|
|
@@ -145,7 +145,12 @@ def mobile_read(
|
|
|
145
145
|
fmt: str = FMT,
|
|
146
146
|
fields: str | None = FIELDS,
|
|
147
147
|
) -> None:
|
|
148
|
-
"""Read mobile data, including sold-comparables, price-suggestions and reviews.
|
|
148
|
+
"""Read mobile data, including sold-comparables, price-suggestions and reviews.
|
|
149
|
+
|
|
150
|
+
Filter catalog-search by category with --params '{"attribute_ids":{"catalog":"2536"}}'
|
|
151
|
+
(catalog_from does not filter). List brand IDs with popular-brands
|
|
152
|
+
--params '{"letter":"A"}'.
|
|
153
|
+
"""
|
|
149
154
|
if not re.fullmatch(r"[a-z0-9-]+", operation):
|
|
150
155
|
raise typer.BadParameter("Invalid operation name")
|
|
151
156
|
try:
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
from unittest.mock import Mock
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
CliRunner = pytest.importorskip("typer.testing").CliRunner
|
|
6
|
+
google = pytest.importorskip(
|
|
7
|
+
"scrapebadger_cli.commands.google", reason="CLI is tested with its own installed package"
|
|
8
|
+
)
|
|
5
9
|
|
|
6
10
|
|
|
7
11
|
def test_light_search_uses_dedicated_route(monkeypatch):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/aliexpress.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/apartments.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/app_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/bestbuy.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/booking.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/chatgpt.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/duckduckgo.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/facebook.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/google_play.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/gumtree.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/idealista.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/immobiliare.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/instagram.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/leboncoin.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/linkedin.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/loopnet.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/perplexity.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/realtor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/twitter.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/wallapop.py
RENAMED
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/walmart.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapebadger_cli-0.22.1 → scrapebadger_cli-0.23.1}/src/scrapebadger_cli/commands/youtube.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|