Greasy Fork

Greasy Fork is available in English.

恋爱游戏网自动签到

打开恋爱游戏网首页或会员中心后自动签到

当前为 2020-08-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         恋爱游戏网自动签到
// @namespace    http://tampermonkey.net/love_sign
// @version      2020.08.16.1
// @description  打开恋爱游戏网首页或会员中心后自动签到
// @author       PY-DNG
// @icon         https://www.lianaiyx.com/skin/member/images/nopic.gif
// @include      https://www.lianaiyx.com/
// @include      https://www.lianaiyx.com/e/member/cp/
// @include      https://www.baidu.com/
// @include      https://www.baidu.com/index.php
// @connect      www.lianaiyx.com
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @grant        GM_info
// ==/UserScript==

(function() {
    'use strict';

    // 用户参数
    const developer = false;

    // 程序常量
    const TEXT_SITE_NAME = '恋爱游戏网:';
    const TEXT_ALREADY_SIGNED = '今日已签到';
    const TEXT_IN_SIGNING = TEXT_SITE_NAME + '正在签到中...';
    const TEXT_SIGN_AGAIN = '点击再次签到';
    const TEXT_UNEXPECTED_RESPONSE = '尝试执行了签到,但是未收到服务器预期的回应。请打开浏览器控制台查看并反馈详情。';

    const COLOR_IN_SIGNING = 'rgb(100,100,255)';
    const COLOR_SIGN_SUCCEED = 'green';
    const COLOR_SIGN_ERROR = 'red';

    // 通用程序常量
    const TEXT_SCRIPT_NAME = GM_info.script.name;
    const TEXT_ERROR_TITLE = '==== Userscript Error: ' + TEXT_SCRIPT_NAME + ' ====';

    // 回显区域
    let headLine, container;
    const blank = document.createElement('code');
    blank.innerText = ' ';
    const signDisplay = document.createElement('a');
    signDisplay.href = 'javascript:void(0);';
    signDisplay.addEventListener('click', sign);
    switch (window.location.href) {
        case 'https://www.lianaiyx.com/':
            headLine = document.querySelectorAll('.menber')[0];
            headLine.appendChild(signDisplay);
            break;
        case 'https://www.lianaiyx.com/e/member/cp/':
            container = document.querySelectorAll('div table tbody tr td');
            container[0].width = '30%';
            container[1].width = '70%';
            headLine = document.querySelector('div table tbody tr td div');
            headLine.appendChild(blank);
            headLine.appendChild(signDisplay);
            break;
        case 'https://www.baidu.com/':
        case 'https://www.baidu.com/index.php':
            headLine = document.querySelector('#s-top-left');
            signDisplay.className = headLine.children[0].className;
            headLine.appendChild(signDisplay);
    }

    // 判断今日是否已经签到过了
    let d = new Date();
    let fulltime = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
    if(GM_getValue('lastTime', '') === fulltime) {
        signDisplay.innerText = TEXT_ALREADY_SIGNED;
        signDisplay.style.color = 'green';
        signDisplay.title = TEXT_SIGN_AGAIN;
    } else {
        sign();
    }

    // 签到函数
    function sign() {
        signDisplay.innerText = TEXT_IN_SIGNING;
        signDisplay.style.color = COLOR_IN_SIGNING;
        GM_xmlhttpRequest({
            method: 'GET',
	        synchronous: false,
            url: 'https://www.lianaiyx.com/e/member/sign/?doajax=1&ajaxarea=sign',
            onload : function (reText) {
                const msg = reText.responseText.split('|');
                if (msg[0] === '已签到') {
                    GM_setValue('lastTime', fulltime);
                    signDisplay.style.color = COLOR_SIGN_SUCCEED;
                    signDisplay.innerText = TEXT_SITE_NAME + msg[2];
                } else {
                    signDisplay.style.color = COLOR_SIGN_ERROR;
                    signDisplay.innerText = TEXT_UNEXPECTED_RESPONSE;
                    console.log(TEXT_ERROR_TITLE);
                    console.log([reText, msg]);
                    console.log(GM_info);
                }
            }
        })
    }
})();