「GM 脚本」水水自用 | B 币领取提醒、播放进度更新至网址等

功能

大部分脚本都以自用优先,所以可能塞了奇怪的功能进去,建议摘取需要的部分自行组织完整代码;

源码见:https://github.com/wdssmq/userscript/tree/master/bilibili

  • B 币领取提醒;「仅提醒,不能自动领」
  • 顶部「番剧」链接跳转至「我的追番」;
  • 「稍后再见」导出为 *.url文件;
    • 稍后再看 页面,点击稍后再看(*/100)会自动生成并复制 bash shell 代码;
  • 在视频播放区域移动鼠标,会将当前进度反应至地址栏,方便将播放进度另存为 *.url;

安装

greasyfork:https://greasyfork.org/zh-CN/scripts/398415

大会员 B 币领取提醒核心代码:


// @grant        GM_notification

// @grant        GM.openInTab

// ==/UserScript==

/* jshint esversion:6 */

(function () {

  "use strict";

  // 基础函数或变量

  const curUrl = window.location.href;

  const curDate = new Date();

  const $ = window.$ || unsafeWindow.$;

  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

  const _log = (...args) => console.log('[bilibili-helper]', ...args);

  const _warn = (...args) => console.warn('[bilibili-helper]', ...args);

  const _error = (...args) => console.error('[bilibili-helper]', ...args);

  function $n(e) {

    return document.querySelector(e);

  }

  function $na(e) {

    return document.querySelectorAll(e);

  }

  // cookie 封装

  const ckeObj = {

    setItem: function (key, value) {

      const Days = 137;

      const exp = new Date();

      exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);

      document.cookie = key + "=" + encodeURIComponent(value) + ";path=/;domain=.bilibili.com;expires=" + exp.toGMTString();

    },

    getItem: function (key, def = "") {

      const reg = new RegExp("(^| )" + key + "=([^;]*)(;|$)");

      const arr = document.cookie.match(reg);

      if (arr) {

        return arr[2];

      }

      return def;

    }

  };

  // B 币领取提醒

  (() => {

    const ckeName = "bilibili-helper-bcoin-lstMonth";

    const curMonth = curDate.getMonth() + 1;

    const lstMonth = ckeObj.getItem(ckeName, 0);

    const bcoinUrl = "https://account.bilibili.com/account/big/myPackage";

    // 元素变化监听

    const fnElChange = (el, fn = () => { }) => {

      const observer = new MutationObserver((mutationRecord, mutationObserver) => {

        _log('body attributes changed!!!'); // body attributes changed!!!

        _log('mutationRecord = ', mutationRecord); // [MutationRecord]

        _log('mutationObserver === observer', mutationObserver === observer); // true

        fn(mutationRecord, mutationObserver);

        mutationObserver.disconnect();

      });

      observer.observe(el, {

        // attributes: false,

        // attributeFilter: ["class"],

        childList: true,

        // characterData: false,

        subtree: true,

      });

    }

    // 通知事件封装

    const fnNotify = (title, body) => {

      GM_notification({

        title: title,

        text: body,

        timeout: 0,

        onclick: () => {

          // window.location.href = bcoinUrl;

          GM.openInTab(bcoinUrl, false);

        }

      });

    }

    // 判断是否已经领取过

    const fnCheckByDOM = () => {

      const $bcoin = $n(".bcoin-wrapper");

      _log("---");

      // $bcoin && _log($bcoin.innerHTML);

      if ($bcoin && $bcoin.innerText.includes("本月已领")) {

        ckeObj.setItem(ckeName, curMonth);

        return true;

      } else {

        fnElChange($n("#app"), fnCheckByDOM);

      }

      return false;

    }

    // _log($n("body").innerHTML);

    // _log(lstMonth, curMonth);

    // 对比 cookie 数据

    if (lstMonth != curMonth) {

      _log(curUrl, bcoinUrl);

      if (curUrl.indexOf(bcoinUrl) > -1) {

        fnCheckByDOM();

      } else {

        fnNotify("B 币领取提醒", "点击查看 B 币领取情况");

      }

    }

  })();

})();

我是会员呢 这个b币是啥

约等于钱

意思 我错过了很多 会员一年多了

嗯,大会员每个月可以领 5 个币,可以用来买付费礼物送给主播,比如我的直播间:https://live.bilibili.com/21024 ,或者给我充电: 稻米鼠的个人空间-稻米鼠个人主页-哔哩哔哩视频

我可以收益大概三块多钱(约莫打个七折)。

因为我的 B 站会员是各种活动奖励得的,没有花钱,所以现在我反薅 B 站,按月领钱……

“陪可爱的女朋友一起努力嗷!”
这什么鬼标题
看到这个瞬间不想给你了

3 个赞

沉冰浮水的个人空间_哔哩哔哩_bilibili

其实可以给自己充电,我之前都是换 B 漫券,现在不划算了所以决定充给自己。。

哔哩哔哩电影的个人空间_哔哩哔哩_bilibili

也可以看电影用。

满 100 才能提现,大概折合三十来个月,自己一个人的话好累,抱团取暖才是正途

哈哈哈哈哈哈哈哈
不厚道的笑了,对不起,实在没忍住 :rofl:

直播时底部的公告如下:

女朋友进来了记得私信我一下。 好多年了,我一直没能找到你(真·不看弹幕)

年度大会员才有,散买没有吧…

有一说一大会员也没意思,现在b站买的新番也不多…

B币领取情况和领取方式其实可以更加自动化,通过B站官方的API获得领取情况,然后再通过API自动化领取。

可以参考:
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/user/vip.md

就给你投个B 你还真想我看你个大男人啊 就不

你还真以为我会露脸啊,想得美(:crazy_face: