dsh-meituan:讓 DSH 翻附近店、點到結算頁的外賣點餐助手

前言

在 DSH 裏做日常助手時,「喫什麼、點哪家、怎麼下單」往往還要自己切 App 或網頁。若希望模型能根據口味篩店、讀菜單、把購物車推到結算頁,又不願用僞造請求或改定位的方式繞過平臺,就需要一套掛在真實瀏覽器上的工具鏈。dsh-meituan(倉庫名 @local/dsh-meituan,社區目錄 yuanstarstar/dsh-meituan)就是面向這一場景的聯網工具插件:維護者爲 yuanstarstar,當前版本 0.2.0,MIT 許可證。

下面介紹它做什麼、怎麼裝、兩條平臺鏈路分別能走到哪一步。

這是什麼

一句話:外賣點餐助手,支持京東秒送 / 京東外賣與美團外賣(h5);讓 DSH 翻附近商家、按口味挑店,把餐點到結算頁,付款由用戶自己在頁面上完成。

與「純 API 拼裝訂單」不同,插件強調兩種讀法:

  • 無登錄態(默認,推薦):用戶 Edge 上的「DSH 點餐橋」擴展在頁面裏旁聽,請求由頁面自己發送與簽名;插件只讀結果、只做真實點擊。不僞造請求、不換 UA、不改座標。
  • 帶登錄態(舊路徑):插件自起無頭 Edge(CDP),cookie 存放在 data/browser-profile;美團鏈路曾主要走這條路徑。
平臺 狀態 說明
京東秒送 / 京東外賣 可用 讀商家、讀菜單、把餐點到「提交訂單」頁
美團外賣(h5) 受限 代碼完整,但網頁端內容接口對登錄賬號返回 403;目前匿名可看首頁列表

配送地址以平臺賬號裏保存的地址爲準,插件不修改;換送餐地點需在 App 或網頁裏改。

核心功能

工具一覽

工具 作用
jd_pick 讀附近商家,按口味打分,返回候選、理由與鏈接(可出二維碼)
jd_menu 讀某店菜單與價格
jd_order 把餐點到結算頁:start(默認)/ read / view / checkout
jd_status 擴展是否連接、緩存店數與緩存時長
meituan_pick 美團:附近或關鍵詞撈店、按口味排序
meituan_shops 美團:商家列表原樣輸出
meituan_menu 美團:進店讀菜單
meituan_cart 美團:點菜方案(App 深鏈 + 二維碼 + 網頁菜單鏈接)
meituan_order 美團:電腦上下單(加菜 → 結算頁 → 選地址 → 餐具)
meituan_login 美團:手機號 + 驗證碼登錄 / 查狀態 / 退出
meituan_taste 口味檔案:讀 / 改

代碼層面對「立即支付 / 提交訂單 / 付款 / 支付 / 確認支付」等按鈕直接拒絕點擊(lib/jd.js 的 UNSAFE 常量)。只到結算頁,付款只能人工點。

京東鏈路(已跑通)

典型調用:

jd_order{ action:"start", storeId:"1018366591", dish:"香辣大雞排+單根烤腸" }

經過上面的步驟,插件會在 Edge 裏打開店鋪頁、定位菜品、點「去搶購」、在彈層選份數並確定,落到 hour.jd.com/mscenter/mspay/(標題「提交訂單」),再把地址、送達時間、商品、金額、運費、優惠券與合計讀回。之後可用 jd_order{ action:"read" } 再讀結算頁且不點擊。

京東外賣頁爲 Taro 渲染,element.click() 無效;擴展內 realClick(chrome.debugger 發真實輸入事件)配合滾動與座標重算才能點動。

美團鏈路(受限)

meituan_pick、meituan_menu、meituan_cart、meituan_order 等邏輯完整,但登錄賬號訪問部分 openh5 / openapi 接口會 403(響應頭 X-Forbid-Code),匿名反而正常。網頁購物車在瀏覽器 localStorage(cached_cart_data),與 App 購物車不通,點菜方案以深鏈與二維碼爲主,手機打開後加車。

本地數據

首次啓動在插件目錄下創建 data/(倉庫本身不含 data/):

data/
  config.json        設置(headless / 預算 / 送餐地點 / 驗證等待秒數)
  taste.json         口味檔案
  session.json       美團登錄態摘要(不含 cookie 本體)
  bridge.json        擴展橋的端口與 token(宿主自動生成)
  jd-cache.json      京東商家緩存(5 分鐘有效)
  browser-profile/   無頭 Edge profile(美團舊路徑)
  qr/                生成的二維碼 PNG

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前應自行查看 GitHub 源碼 與 MIT 許可證。DeepSeek Harness 生態以「一切皆插件」爲理念;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

1)裝插件本體

plugin_manager action:"install_bundle" target:"<這個目錄的絕對路徑>"

裝完後重啓一次 DSH Desktop(宿主模塊有 ESM 緩存,不重啓仍爲舊代碼)。

2)裝「DSH 點餐橋」擴展(京東鏈路必須)

  1. Edge 打開 edge://extensions,開啓「開發人員模式」。
  2. 「加載解壓縮的擴展」→ 選擇包內 extension 目錄。
  3. 擴展自動連接 http://127.0.0.1:45321(端口與 token 在 data/bridge.json,宿主首次啓動時生成)。
  4. 修改擴展代碼後,須在 edge://extensions 點「刷新」。

3)登錄與驗證

  • 京東:在 Edge 打開 京東外賣頻道,用手機號登錄。京東主站登錄與外賣頻道登錄分離(外賣爲 plogin.m.jd.com?appid=2193),兩邊各登一次。滑塊驗證需用戶自行拖動。
  • 美團:設置頁填手機號 → 發驗證碼 → 填碼;受 403 限制,登錄態鏈路目前不可用。

典型用法

對 DSH 說「幫我點個外賣」時,可先讓模型調用 jd_pick 或 meituan_pick 結合 taste.json 口味檔案篩店,再用 jd_menu / meituan_menu 看菜,最後用 jd_order 或 meituan_cart / meituan_order 推到結算或給出深鏈。

京東下單前可用 jd_status 確認擴展已連接;未連接時 jd_* 會報「京東擴展沒連上」。

適用場景與注意

適合:已在 DSH Desktop 上使用聯網工具、願意用 Edge + 擴展(京東)或接受美團深鏈 / 匿名列表能力、只需要自動化到結算頁、付款自己點的開發者或個人用戶。

務必知曉:

  1. 京東擴展必須運行;改擴展後必須刷新。
  2. 美團網頁端對登錄賬號 403,緩過來之前美團側以深鏈 + 二維碼爲主。
  3. 風控(滑塊、短信驗證碼)一律人工;插件最多彈窗等待。
  4. 不僞造請求、不改座標;權限與數據均在本地插件目錄,但仍需信任維護者與擴展行爲。

結尾

dsh-meituan 把「選店、讀菜單、推到結算頁」收進 DSH 工具調用,並在支付環節硬性留給人。目錄頁:https://www.skillhub.cn/plugins/yuanstarstar/dsh-meituan;源碼與 README:https://github.com/yuanstarstar/dsh-meituan。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜