巴哈姆特自動簽到(含公會、動畫瘋)

巴哈姆特自動簽到腳本

< Feedback on 巴哈姆特自動簽到(含公會、動畫瘋)

Review: OK - script works, but has bugs

§
Posted: 2024/06/18

今天才發現巴哈改了創作者列表的顯示模式(以前是整個網頁顯示,現在是用 ajax)

所以原有自動抓答案的設計就失效了....然後我自己把它修好了 ((?


下面附上我的 git 紀錄,看得懂的話直接套用就行了,方便月大修改

(+ - 號版本是反過來的要注意)

--- 當前版本
+++ 新版本
@@ -326,22 +326,19 @@
                 follow("blackxblue");
         return new Promise(function (resolve, reject) {
             GM_xmlhttpRequest({
                 method: "GET",
-                url: "https://api.gamer.com.tw/home/v2/creation_list.php?owner=blackxblue&row=1",
-                responseType: "json", // 巴哈小屋創作列表新的設計會以 json 方式取得資料
+                url: "https://home.gamer.com.tw/creation.php?owner=blackxblue",
+                responseType: "text",
                 onload: function (page) {
-                    if (page.status != 200 || //連線錯誤(網站掛掉、API失效等)
-                        page.response.error || //參數錯誤
-                        !page.response.data.list[0].title.includes(`${MONTH.toString().padStart(2, '0')}/${DATE.toString().padStart(2, '0')}`)) { //日期不正確
-                        console.error("bas: ", "在創作中無法找到答案。");
-                        reject("No result found in post.");
-                    } else {
-                        let csn = page.response.data.list[0].csn; //今天的創作文章ID
-                        console.log("bas: ", "從 blackxblue 小屋找到今日動畫瘋文章 ID:", csn);
+                    let result = jQuery(page.response)
+                        .find(".TS1")
+                        .filter((index, element) => new RegExp(`${MONTH.toString().padStart(2, '0')}/${DATE.toString().padStart(2, '0')}`).test(element.textContent));
+                    console.log("bas: ", "從 blackxblue 小屋找到今日動畫瘋文章 ID:", result, result[0].getAttribute("href"));
+                    if (result.length > 0) {
                         GM_xmlhttpRequest({
                             method: "GET",
-                            url: "https://home.gamer.com.tw/artwork.php?sn=" + csn,
+                            url: "https://home.gamer.com.tw/" + result[0].getAttribute("href"),
                             responseType: "text",
                             onload: page => {
                                 let result = /A:(\d)/.exec(jQuery(page.response).find(".MSG-list8C, #article_content,#article_content").text().replace(/\s/g, "").replace(/:/g, ":"));
                                 if (result) {
@@ -352,8 +349,11 @@
                                     reject("No result found in post.");
                                 }
                             }
                         });
+                    } else {
+                        console.error("bas: ", "沒有找到今日的創作。");
+                        reject("No matched post found.");
                     }
                 },
                 onerror: reject
             });
moontai0724Author
§
Posted: 2024/06/19

太好了!!!!大大要直接來發 MR 留個紀錄嗎? https://github.com/moontai0724/bahamut-sign-helper-script/tree/v4

§
Posted: 2024/06/19

太好了!!!!大大要直接來發 MR 留個紀錄嗎?
https://github.com/moontai0724/bahamut-sign-helper-script/tree/v4

申請 pull request 了
第一次直接在 Git 上做 MR
你看看這樣能不能用

§
Posted: 2024/06/20

上了兩個版本,改動的地方也不算少
但我只提升了一個小版號
月大覺得有必要的話再把版號拉上去

註:今天的 blackxblue 創作文,內文日期是對的,但標題是錯的,所以第一個版本失敗的話是正常的,第二版強化了這個部份的判斷

moontai0724Author
§
Posted: 2024/06/21

抱歉因為前幾天在國外,昨天回到台灣已經寫了幾個小地方需要改,再麻煩看看 >< 然後我想相關的討論直接在 PR 或 issue 上面討論就好了!

Post reply

Sign in to post a reply.