feat: add GitHub Trending, Binance, and Weather adapters (24 commands)#214
feat: add GitHub Trending, Binance, and Weather adapters (24 commands)#2140xsline wants to merge 2 commits intojackwener:mainfrom
Conversation
GitHub Trending (2 commands, browser mode): - repos: trending repositories with stars, forks, language filter - developers: trending developers with popular repos Supports --since daily/weekly/monthly and --language filter Binance (11 commands, public API via data-api.binance.vision): - top: top trading pairs by 24h volume - price: single pair 24h price stats - prices: latest prices for all pairs - ticker: 24h ticker statistics - gainers: top gaining pairs by 24h change - losers: top losing pairs by 24h change - trades: recent trades for a pair - depth: order book bid prices - asks: order book ask prices - klines: candlestick/kline data - pairs: list active trading pairs Weather / Open Meteo (11 commands, free public API, no key needed): - current: current weather for a city - forecast: daily forecast up to 16 days - hourly: hourly forecast - search: city geocoding lookup - air: air quality index (simple) - air-quality: detailed air quality (US/EU AQI, PM2.5, PM10, ozone, NO2, SO2) - sunrise: sunrise/sunset times with UV index - wind: detailed wind forecast with gusts and 80m altitude - precipitation: rain/snow forecast with probability - history: historical weather up to 92 past days - compare: side-by-side weather comparison across cities All 24 commands tested with live data. 258 existing tests pass.
Astro-Han
left a comment
There was a problem hiding this comment.
Ambitious scope — 24 commands across 3 sites. A few issues, the Binance sorting one is blocking:
Binance sorting broken — string comparison instead of numeric
top, ticker, gainers, losers sort on quoteVolume/priceChangePercent, but Binance returns these as strings. The pipeline's stepSort uses string comparison, so "99" ranks above "1000". This makes all four ranking commands unreliable. The values need numeric conversion before sorting.
Unrelated doc files
douban.md, sinablog.md, substack.md don't belong in this PR — same issue flagged in #203 with facebook.md/instagram.md. Please split these out.
URL encoding
weather search interpolates args.query directly into the URL — "San Francisco" will break. github-trending interpolates args.language into the path — c++/c# will break. Use params: or | urlencode.
Doc examples use --symbol but args are positional
binance.md shows opencli binance price --symbol BTCUSDT but the YAML defines symbol as positional: true. Commander will reject --symbol as unknown option. Same across all Binance docs.
air.yaml duplicates air-quality.yaml
air-quality is a strict superset of air (same API, more fields). Consider removing air to avoid confusion.
Missing deliverables
No README, docs/adapters/index.md, config.mts sidebar, or E2E tests.
Summary
Add 3 new adapters with 24 commands covering developer trends, crypto trading data, and weather forecasts.
New Commands
GitHub Trending (browser mode, public pages)
reposopencli github-trending repos --language python --since weeklydevelopersopencli github-trending developers --limit 10Binance (public API via
data-api.binance.vision, no auth)topopencli binance top --limit 10priceopencli binance price --symbol BTCUSDTpricesopencli binance prices --limit 10tickeropencli binance ticker --limit 10gainersopencli binance gainers --limit 10losersopencli binance losers --limit 10tradesopencli binance trades --symbol BTCUSDTdepthopencli binance depth --symbol BTCUSDTasksopencli binance asks --symbol BTCUSDTklinesopencli binance klines --symbol BTCUSDTpairsopencli binance pairs --limit 10Weather / Open Meteo (free public API, no key needed)
currentopencli weather current --city tokyoforecastopencli weather forecast --city sydney --days 7hourlyopencli weather hourly --city london --hours 12searchopencli weather search --query melbourneairopencli weather air --city beijingair-qualityopencli weather air-quality --city tokyosunriseopencli weather sunrise --city pariswindopencli weather wind --city sydneyprecipitationopencli weather precipitation --city tokyohistoryopencli weather history --city melbourne --days 7compareopencli weather compare --cities "tokyo,sydney,london"Technical Notes
article.Box-rowelements (no official API)data-api.binance.visionmirror to avoid geo-restrictions onapi.binance.comsearchis the only fetch-only command (no browser needed)Test plan
github-trending repos— MoneyPrinterV2 379 stars today, systemd 112 starsgithub-trending developers— Nathan Brake, Azure SDK Botbinance top— trading pairs with volumebinance price --symbol BTCUSDT— BTC $70,632binance price --symbol ETHUSDT— ETH $2,148binance prices/ticker/gainers/losers— all return databinance trades/depth/asks/klines/pairs— all return dataweather current --city melbourne— 15.2°C, Fog, 99% humidityweather forecast --city tokyo— 7-day forecastweather hourly/search/air/air-quality/sunrise/wind/precipitation/history/compare— all return data