ahri8NavigationSaver

松鼠症倉庫擴充,免點選與紀錄頁數

// ==UserScript==
// @name         ahri8NavigationSaver
// @namespace    https://github.com/JAZZA132/ahri8NavigationSaver
// @description         松鼠症倉庫擴充,免點選與紀錄頁數
// @description:zh-TW   松鼠症倉庫擴充,免點選與紀錄頁數
// @author       AaronWang
// @match        https://ahri8.top/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=ahri8.top
// @grant        GM_log
// @grant		GM_setValue
// @grant		GM_getValue
// @grant		GM_addStyle
// @grant		GM_registerMenuCommand
// @license      GPL-3.0
// @version     1
// ==/UserScript==

(function () {
    'use strict';

    let currentUrl = window.location.href;
    let referrerUrl = document.referrer;//返回一個字符串,這個字符串是用來表示使用者從哪個網頁跳轉到當前頁面的 URL

    // 检查当前 URL 是否符合指定模式
    let regex1 = /^https:\/\/ahri8\.top\/post\.php\?ID=(\d+)$/; // 匹配點選漫畫畫面
    let regex2 = /^https:\/\/ahri8\.top\/readOnline.*$/; // 匹配從漫畫頁到漫畫簡介
    let match = currentUrl.match(regex1);
    let match2 = referrerUrl.match(regex2);

    let isButtonClicked = false;
    // 獲取按鈕元素
    let readButton = document.querySelector('a.apo.btn.btn-white.btn-default');
    // 檢查按鈕是否存在於頁面中
    if (readButton) {
        // 添加點擊事件監聽器
        readButton.addEventListener('click', function(event) {
            // 防止默認的跳轉行為,根據需要選擇是否阻止
            // event.preventDefault();

            // 在這裡執行你的動作代碼
            console.log('閱讀漫畫按鈕被點擊!');
            
            // 如果你需要執行某些動作,比如存儲資料到 localStorage
            // localStorage.setItem('yourKey', 'yourValue');

            // 如果你想在執行完動作後繼續跳轉頁面,不要使用 event.preventDefault()
            // 使用 GM_setValue 持久化按鈕點擊狀態
            GM_setValue('isButtonClicked', true);
        });
    }
    console.log('GM_getValue(isButtonClicked):', GM_getValue('isButtonClicked'));
    // 網頁是使用ajax,監視url變化
    let nowHref = document.location.href;
    let nowMangaPage = nowHref.match(regex2); // 匹配當前是不是漫畫頁


    if (match2) {
        //如果是從漫畫頁進入到漫畫簡介,則不動作
        console.log('match2');
        // 離開漫畫頁面時重置按鈕點擊狀態
        GM_setValue('isButtonClicked', false);

    } else if (match || GM_getValue('isButtonClicked')) {
        console.log('match1 or isButtonClicked');
        // 正則,取得 ex: https://ahri8.top/readOnline2.php?ID=125691 的ID
        let postId = nowHref.match(/ID=(\d+)/)[1];

        // 从 localStorage 中获取页数
        let pageValue = localStorage.getItem(postId);
        if (pageValue === null) {
            pageValue = 1;
        }

        // 构建重定向 URL
        let redirectUrl = 'https://ahri8.top/readOnline2.php?ID=' + postId + '&host_id=0&page=' + pageValue;

        // 执行重定向
        window.location.href = redirectUrl;

        // 重定向後重置按鈕點擊狀態
        GM_setValue('isButtonClicked', false);

    }

    if (nowMangaPage) {

        console.log('nowMangaPage');
        // 監控url變化
        setInterval(function () {
            if (nowHref != document.location.href) {
                nowHref = document.location.href;
                let newHref = document.location.href;
                // 正則,取得 ex: https://ahri8.top/readOnline2.php?ID=125691 的ID
                let postId = newHref.match(/ID=(\d+)/)[1];

                // 取得當前頁數
                var newPageValue = newHref.match(/&page=(\d+)/)[1];
                console.log('newPageValue:', newPageValue);
                localStorage.setItem(postId, newPageValue);
                console.log(postId + '儲存值 ' + newPageValue + ' 到 localStorage。');
            }
        }, 1000);
    }

})();