爱丽丝 油猴脚本开发日志

2023-10-29 16:50

本文主要是介绍爱丽丝 油猴脚本开发日志,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**

爱丽丝 油猴脚本开发日志

**
21年2月23日:爱丽丝不再公开转播信息,此脚本已失效。

8月14日:现在支持生成直播源为T台和TC台的URL了,T台测试成功,TC台暂时没有样本,不过估计应该也是可以的。
在这里插入图片描述

8月10日:修复错误生成T台和TC台URL的问题,原本是按照油管的URL生成的错误网址,还是不能生成URL,只是不再生成错误的URL,效果如图:
在这里插入图片描述
在这里插入图片描述
8月8日:更新2.0版本,通过JQuery的get()方法获取数据,打开爱丽丝的一瞬间全部直播信息都有啦!剩下的替换html和1.0没什么区别

8月5日:由于ddalice的关闭,对于爱丽丝自动转播的频道的获取变得复杂了(其实也没多复杂),需要登录爱丽丝,查看正在直播的vtuber,查看转播平台,复制转播ID,补全转播网址。
开发本脚本的目的就是为了实现以上操作的自动化,预期效果图
在这里插入图片描述

如图所示,蓝色的字,即直播间ID节目标题就是通往直播间的链接,直播间ID***通往***转播间节目标题***则通往***油管
目前的问题1.翻页时失效,后面几页显示的都是第一页的链接,如图:
在这里插入图片描述

2.转播间只支持bilibili和douyu,源直播间只支持youtube,而爱丽丝是支持包括TC台,T台等直播平台的
3.即使是2.0的代码,也不够效率,实际上2.0的核心:get()方法请求数据是多余的,因为在打开爱丽丝的时候本来就会请求一个tasklist.json,用get()方法则又请求了一次,试想如果每个访问爱丽丝的用户都装了我这个脚本,那么对爱丽丝的负担将会是原来的2倍!更何况第二次请求的延迟直接决定了URL生成的速度,这将会影响到用户的体验。有没有一个方法,可以获取到已经请求获得的tasklist.json呢?

解决思路:似乎爱丽丝是由Ajax动态加载的网页,往这方面去思考
,get()方法请求tasklist.json虽然是不效率的,但是我们可以由此延伸想到,是否可以用这个方法请求到节目频道呢?如果获取到了节目频道的数据,那么T台,TC台跳转的问题也就迎刃而解了,因为T台,TC台直播间的地址,是由主站地址加上频道地址构成的固定地址,而不是像油管那样每一场直播的地址都不一样。
全新2.0代码:

// ==UserScript==
// @name         爱丽丝 直播间跳转2.0
// @namespace    http://tampermonkey.net/
// @version      0.1.6
// @description  try to take over the world!
// @author       You
// @match        https://*/main/broadcast
// @grant        none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==(function () {'use strict';async function getStream() //获取直播间数据{return new Promise(resolve => {$.get("https://*/api/broadcast/taskList.json",//*手动替换为爱丽丝主站域名function (resp) {return resolve(resp);});});}async function getChannel() //获取频道数据{return new Promise(resolve => {$.get("https://*/api/channel/channelList.json",//*手动替换为爱丽丝主站域名function (resp) {return resolve(resp);});});}function exchange(stdata, url_, url_2) {let pn = parseInt(document.querySelector('.number.active').innerText); //获取当前页码var cell_ = document.querySelectorAll('td.el-table_1_column_2'); //转播间IDvar cell_2 = document.querySelectorAll('td.el-table_1_column_5'); //直播间标题for (let i = 0; i < 10; i++) {if ((i + (pn - 1) * 10) >= stdata.length)break;if (url_[i + (pn - 1) * 10]) {cell_[i].innerH

这篇关于爱丽丝 油猴脚本开发日志的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302000

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.