amae-koromo-scripts icon indicating copy to clipboard operation
amae-koromo-scripts copied to clipboard

关于牌谱屋爬虫的技术实现,有两个问题想请教

Open Sunshine40 opened this issue 2 years ago • 2 comments

第一个问题,目前爬虫的实现方式,是否依赖于浏览器打开雀魂网页版实际进行观战,然后用js进行数据分析处理——也就是没法做到脱离雀魂官方(网页)客户端,独立处理观战/牌谱数据?

第二个问题,我看到本代码库当中的js源代码的编码风格,有比较明显的工具链生成痕迹,且没有看到注释,请问这些代码是通过原始代码+部署流程自动化生成的吗?请问作者是否愿意开源原始代码,以及部署(生成可执行js)的方式呢?

Sunshine40 avatar Jan 12 '23 05:01 Sunshine40

  1. 現在這邊是直接連接雀魂的 WebSocket 服務器獲取數據的,不需要經過模擬瀏覽器或者客戶端。
  2. 這邊只有兩個文件是預先生成的: a. shanten-core.js 由 https://github.com/EndlessCheng/mahjong-helper/blob/master/util/shanten_base.go 編譯而來 b. majsoulPb.{js,d.ts} 是使用generateTsDefinition.ts從雀魂的 protobuf 定義文件majsoulPb.proto.json生成的

其它的脚本如果沒有對應的 ts 文件的話都是手寫的,不需要經過編譯步驟。ts 文件使用tsc -p tsconfig.json即可編譯成 js 文件。

SAPikachu avatar Jan 12 '23 06:01 SAPikachu

現在這邊是直接連接雀魂的 WebSocket 服務器獲取數據的,不需要經過模擬瀏覽器或者客戶端。

好的,我再仔细读代码学习一下,本身我对js构建复杂业务逻辑确实不熟悉(主要是对构建第三方业务涉及的逆向工程这块有畏难情绪)

a. shanten-core.js 由 https://github.com/EndlessCheng/mahjong-helper/blob/master/util/shanten_base.go 編譯而來

难怪如此,我第一个看的就是 shanten-core.js 属于是一发出货中大奖了。

Sunshine40 avatar Jan 12 '23 06:01 Sunshine40