メインコンテンツまでスキップ

Session / Poller

MercariSession

from mercari import MercariSession, default_session_path

s = MercariSession()
s.save(default_session_path())
s2 = MercariSession.load(default_session_path())
  • has_auth() / is_expired() — Bearer の有効性
  • client_headers() — groundup 必須ヘッダ(X-APP-VERSIONversionCode

Poller

フィールド名は interval(秒)。state_path / log_path は省略時も書き込み可能な既定パスになります。

from pathlib import Path
from mercari import MercariSearchPoller, PollerConfig

data = Path("./poller_data")
cfg = PollerConfig(
keyword="iPhone",
category_id=3833, # or [3833]
interval=5.0,
dry_run=True,
state_path=str(data / "state.json"),
log_path=str(data / "polls.jsonl"),
)
poller = MercariSearchPoller(cfg)

def on_new(items, meta):
print("new", len(items))

poller.on_new_items = on_new
poller.poll_once()
# poller.run_forever()

長時間 run_forever() する場合、各 poll_once の前に期限切れ Bearer を落として DPoP ゲストを再ピンします。

CLI:

python -m mercari.poller --once --dry-run -c 3833 --sort 新しい順

DealWatcher(任意の便利クラス)

よくある「相場見て安ければ通知」のレシピ。必須ではなく、本命は examples/18_compose_cheap_webhook.py の合成です。

python -m mercari.deal_watcher --once --dry-run -c 3833 -k iPhone