欢迎光临散文网 会员登陆 & 注册

[osu!]Sayobot's 镜像站 存档当前页码 跳转页面(自用备份)

2023-07-27 14:47 作者:龙井丶归  | 我要投稿

以前经常在镜像站找谱下,一找就是几十页。但是下一次进来的时候又是从第一页开始了(我在镜像站没有找到类似页码或者能跳到指定页码的功能)。最后研究了一下可以通过修改offset值快速到之前自己浏览的页数。 有爱自取,顺便我也存个档。

offset值获取途径:

1.自己看最后一次的/post 请求中的参数 自行通过记事本保存

2. 点下存档offset值按钮

食用:输入offset值,点击设置按钮,再点原网站的下一页功能即可到之前浏览的地方。


// ==UserScript==

// @name         Sayobot跳转

// @namespace    http://tampermonkey.net/

// @version      0.1

// @description  Jump Jump

// @author       bladek

// @match        https://osu.sayobot.cn/home

// @run-at       document-start

// @require      https://scriptcat.org/lib/637/1.3.1/ajaxHooker.js

// @grant        unsafeWindow

// ==/UserScript==


(function () {

    console.log('加载脚本');

  let saveOffset = localStorage.getItem("my-offset") || 0;

  let saveFlag = false;

  let nowOffset = 0;

  let previewSongsList = [];

  let nowPlayIndex = 0;

    ajaxHooker.hook(request => {

    if (request.url === 'https://api.sayobot.cn/?post' && request.method == 'POST' ) {

      const sendResult = JSON.parse(request.data) || {};

     console.log(request.data)

     console.log(sendResult)

      nowOffset = sendResult.offset;

      nowOffsetDom.innerText = nowOffset;

      if(saveFlag) {

          console.log("flag enter")

          sendResult.offset = saveOffset - 0;

          console.log(JSON.stringify(sendResult))

          request.data =  JSON.stringify(sendResult)

          saveFlag = false;

      }

    }

});

  const divStr = `

       <div class="temp" style="position: fixed;

       z-index: 9999;

       right: 40px;

       top: 250px;

       width: 293px;

       height: 137px;

       border: 1px solid red;

       display:flex;

       justify-content:center;

       align-items:center;

       flex-direction:column;"

       >

       <audio id="myAudio"></audio>

       <p id="title" style="user-select: inherit;"></p>

       <div>

       <button id="next" onclick="play('prev')">下一首</button>

       <button id="prev" onclick="play('next')">上一首</button>

       <button id="save">存档目前Offset值</button>

       </div>

       <div style="display:flex"><span>修改Offset:</span><input type="text" id="offsetValue" value="${saveOffset}"/><button id="setOffset">设置!</button></div>

       <p>当前偏差值:<span id="nowOffset">${nowOffset}</span></p>

       </div>

    `;

  const div = document.createElement("div");

  div.innerHTML = divStr;

  document.body.append(div);

  const audio = document.getElementById("myAudio");

  const title = document.getElementById("title");

  const save = document.getElementById("save");

  const setOffset = document.getElementById("setOffset");

  const nowOffsetDom = document.getElementById("nowOffset");

  const play = (action) => {

    const { previewLink, title: songTitle } = previewSongsList[nowPlayIndex];

    audio.src = previewLink;

    title.innerText = songTitle;

    if (action == "next") {

      nowPlayIndex++;

    } else {

      if (nowPlayIndex > 1) {

        nowPlayIndex--;

      }

    }

    console.log(previewSongsList);

    console.log(nowPlayIndex);

    audio.play();

  };

  save.addEventListener("click", () => {

    localStorage.setItem("my-offset", nowOffset);

  });

  setOffset.addEventListener("click", () => {

    saveOffset =  document.getElementById('offsetValue').value;

    nowOffset = saveOffset;

    saveFlag = true;

      alert("设置完成!")

  });

})();


[osu!]Sayobot's 镜像站 存档当前页码 跳转页面(自用备份)的评论 (共 条)

分享到微博请遵守国家法律