Skip to main content

A unified Python client library to search Robolink, Robotistan, Robo90, and Direncnet.

Project description

Robo Market Search Logo

Robo Market Search

PyPI version Python License: MIT


Türkiye'nin en popüler 4 elektronik ve robotik pazarında (**Robolink, Robotistan, Robo90, Direnç.net**) tek satır kodla, çok hızlı ve eşzamanlı arama yapmanızı sağlayan Python istemci kütüphanesi.

Ayrıca yerleşik CLI (Komut Satırı) aracı ve MCP (Model Context Protocol) sunucusu özelliklerine sahiptir.

Özellikler

  • Unified Search (Birleştirilmiş Arama): 4 markette paralel (Thread) olarak eşzamanlı arama yapar ve ürünleri ucuzdan pahalıya sıralar.
  • Standart Veri Tipi: Tüm sonuçlar, standart Product objesi olarak döner.
  • Dinamik Token Mimarisi: API key veya token değişikliklerinde otomatik güncellenerek (regex ile ana sayfalardan kazıyarak) kesintisiz çalışır.
  • Güçlü CLI: Terminal üzerinden şık tablolar ve anlık yükleme animasyonları ile hızlı ürün araması.
  • LLM/MCP Entegrasyonu: Claude vb. LLM asistanlarına, projeniz için donanım/elektronik malzeme arama yeteneği kazandırır.

Kurulum

Sadece SDK (Kütüphane) özelliklerini kullanmak için:

pip install robo-market-search

CLI ve MCP özelliklerini de içeren tüm ekosistemi kurmak için:

pip install "robo-market-search[all]"

(Sadece CLI için [cli], sadece MCP için [mcp] seçeneklerini de kullanabilirsiniz.)

Komut Satırı Arayüzü (CLI) Kullanımı

Uygulamayı [cli] veya [all] etiketiyle kurduktan sonra terminalden anında arama yapabilirsiniz. CLI aracı typer ve rich kullanılarak geliştirilmiştir ve sonuçları terminalinizde şık, renkli bir tablo formatında sunar.

CLI Örnek Çıktı

Örnek Komutlar:

# Temel arama (Tüm marketleri tarar, en ucuzdan pahalıya sıralar)
robo-search "ESP32-WROOM"

# Limit belirterek arama (Market başına maksimum 3 ürün getirir, ekran kirliliğini önler)
robo-search "Arduino Uno" --limit 3

# Fiyat sıralamasını devreden çıkararak ham sonuçları listeleme
robo-search "PLA Filament" --no-sort

Telegram Bot Entegrasyonu

Projenizi kişisel bir elektronik arama asistanına dönüştürmek için yerleşik bir Telegram botu da barındırır. aiogram kullanılarak geliştirilen bu asenkron bot, saniyeler içinde marketleri tarar ve en ucuz ürünleri size linkleriyle birlikte mesaj olarak atar.

Telegram Bot Örnek 1     Telegram Bot Örnek 2

Kullanımı

  1. Telegram üzerinden @BotFather ile yeni bir bot oluşturun ve token'ınızı alın.
  2. Botu başlatmak için terminalden komutu token ile birlikte çalıştırın:
robo-bot --token "SİZİN_TELEGRAM_TOKENINIZ"

(Alternatif olarak TELEGRAM_BOT_TOKEN isimli bir ortam değişkeni (environment variable) tanımlayarak sadece robo-bot yazarak da çalıştırabilirsiniz.)

Bot çalıştıktan sonra Telegram uygulamasından botunuza /ara ESP32 veya /ara Arduino Uno yazarak doğrudan arama yapabilirsiniz.


Model Context Protocol (MCP) Sunucusu

Proje, LLM'ler (örn. Claude Desktop) için resmi MCP (Model Context Protocol) sunucusu içerir. Bu sayede yapay zeka asistanınız projeleriniz için doğrudan Türkiye pazarındaki elektronik parçaların fiyat ve stok durumunu canlı olarak sorgulayabilir.

MCP Örnek Çıktı

Sunucuyu Başlatma ve Test Etme

MCP sunucusunun sağlıklı çalışıp çalışmadığını Claude'a bağlamadan önce test etmek isterseniz, paketle birlikte gelen örnek test script'ini çalıştırabilir veya resmi MCP Inspector aracını kullanabilirsiniz.

1. Python İstemcisi ile Test: Kendi yazdığımız bir Python scripti ile sunucuyu sanki bir LLM'miş gibi tetikleyebilirsiniz:

python examples/mcp_client_example.py

2. Resmi MCP Inspector ile Test (Görsel Arayüz): Web tarayıcınız üzerinden görsel olarak test etmek için npx ile inspector'ı başlatın:

npx @modelcontextprotocol/inspector robo-mcp

(Bu komut lokalinizde bir web sunucusu başlatır ve tarayıcı üzerinden aracı test etmenize olanak tanır.)

LLM İstemcilerine (Clients) Kurulum

Yapay zeka asistanlarının bu aracı kullanabilmesi için ayar dosyalarına aşağıdaki JSON konfigürasyonunu eklemeniz yeterlidir:

{
  "mcpServers": {
    "robo-market-search": {
      "command": "robo-mcp",
      "args": []
    }
  }
}

Not: Komutun çalışabilmesi için robo-mcp komutunun sistem PATH'inize eklenmiş olması gerekir. Gerekirse "command": "/tam/yol/.venv/bin/robo-mcp" şeklinde absolute (tam) dosya yolunu da verebilirsiniz.

Bu konfigürasyonu kullandığınız asistana göre aşağıdaki konumlara ekleyebilirsiniz:

1. Claude Desktop

Windows için %APPDATA%\Claude\claude_desktop_config.json, macOS için ~/Library/Application Support/Claude/claude_desktop_config.json dosyasını düzenleyip yukarıdaki JSON'ı ekleyin.

2. Antigravity (Agent)

Antigravity'nin MCP ayar dosyasına (genellikle projenin kök dizinindeki veya global yapılandırma klasöründeki mcp.json veya mcp_servers.json) ilgili mcpServers objesini eklemeniz yeterlidir.

3. Cline (VS Code) / RooCode vb. Eklentiler

VS Code üzerinde çalışan Cline veya RooCode gibi MCP destekli AI eklentileri kullanıyorsanız, ayarlardan (veya ~/.vscode/global_storage/.../cline_mcp_settings.json üzerinden) yukarıdaki JSON'ı tanımlayarak aracı asistanınıza öğretebilirsiniz.

[!NOTE] ChatGPT, Gemini ve Ollama Desteği Hakkında: ChatGPT ve Gemini'nin kendi resmi web arayüzleri veya Ollama'nın terminal arayüzü doğrudan yerel MCP sunucularını desteklemez. Ancak VS Code içerisindeki Cline gibi eklentilerin API ayarlarına giderek arka planda çalışacak model olarak ChatGPT, Gemini veya yerel bilgisayarınızdaki Ollama modellerini (örn. llama3) seçerseniz; bu modellerin tamamı robo-mcp aracımızı sorunsuzca kullanabilir.

LLM ile Nasıl Kullanılır?

Claude ile sohbet ederken şu tarz komutlar verebilirsiniz:

  • "Bana Türkiye'den ucuz bir ESP32-CAM ve HC-SR04 bul."
  • "Bir Arduino robot projesi yapmak istiyorum, gereken temel parçaları Türkiye marketlerinden araştırıp maliyet tablosu çıkarır mısın?"

LLM, arka planda robo-mcp aracını çağırıp güncel fiyat/stok bilgilerini çekecek ve size sunacaktır.

Hızlı Başlangıç (Python SDK / Birleştirilmiş Arama)

from robo_market_search import UnifiedSearchClient

client = UnifiedSearchClient()
products = client.search(query="arduino", limit_per_store=5)

for p in products:
    print(f"[{p.store}] {p.name} - {p.price} {p.currency} (Stok: {p.in_stock})")

Bireysel Market Araması

Sadece belirli bir markette arama yapmak isterseniz:

from robo_market_search import RobotistanClient

client = RobotistanClient()
products = client.search_component("esp32", limit=3)

Lisans

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robo_market_search-1.0.1.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robo_market_search-1.0.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file robo_market_search-1.0.1.tar.gz.

File metadata

  • Download URL: robo_market_search-1.0.1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for robo_market_search-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e7ed9ac0aadeb20a0d8ece93a078c7a77bcd9f2902d461b49271ae7281122296
MD5 ddf19d036c3c9a63dc94613599c2d2a2
BLAKE2b-256 886378735b4f65e0f1a5f037b26ed7676cbe019caaec92656b3f518702689569

See more details on using hashes here.

File details

Details for the file robo_market_search-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for robo_market_search-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 13fdb21594b95d956f54000926901583c627f968d05d1468d0d866ed7bb87f02
MD5 1626d2e1c5fbc4f30eb4d4555c956920
BLAKE2b-256 ea48509908c826717af65109c674d03bd8e3caf032e95f1781d81babcc260305

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page