// ==UserScript==
// @name 2048帖子高亮图片预览
// @description 帖子高亮,列表页面直接预览帖子内图片
// @version 0.0.15
// @author bluebabes
// @namespace hjd2048.com
// @match https://*/*
// @icon data:image/png;base64,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
// @updateURL https://raw.githubusercontent.com/bluebabes/greasyfork-userscript/main/2048/2048.js
// @downloadURL https://raw.githubusercontent.com/bluebabes/greasyfork-userscript/main/2048/2048.js
// @require https://code.jquery.com/jquery-3.4.1.min.js
// @require https://raw.githubusercontent.com/bluebabes/greasyfork-userscript/main/utils/utils.js?t=202204223
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_openInTab
// @grant GM_unregisterMenuCommand
// @grant GM_registerMenuCommand
// @license GNU GPLv3
// ==/UserScript==
(function () {
"use strict";
if (document.title.indexOf('人人 人人') ===-1){
return
}
$("head").append($(``));
// debug
var debug = true;
var maxImgCount = 8; // 最多显示图片数量
// 增加菜单
var menu_ALL = [["menu_disable", "✅ 已启用", "❌ 已禁用", []]];
var menu_ID = [];
for (let i = 0; i < menu_ALL.length; i++) {
// 如果读取到的值为 null 就写入默认值
if (GM_getValue(menu_ALL[i][0]) == null) {
GM_setValue(menu_ALL[i][0], menu_ALL[i][3]);
}
}
// 注册脚本菜单
if (menu_ID.length != []) {
for (let i = 0; i < menu_ID.length; i++) {
GM_unregisterMenuCommand(menu_ID[i]);
}
}
for (let i = 0; i < menu_ALL.length; i++) {
// 循环注册脚本菜单
menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]);
if (menu_ALL[i][0] === "menu_disable") {
// 当前网站是否已存在禁用列表中
if (menu_disable("check")) {
// 已禁用
menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][2]}`, function () {
menu_disable("del");
});
return;
} else {
// 开启状态
menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][1]}`, function () {
menu_disable("add");
});
}
}
}
menu_ID[menu_ID.length] = GM_registerMenuCommand(
"💬 反馈 & 建议",
function () {
window.GM_openInTab(
"https://github.com/bluebabes/greasyfork-userscript/issues",
{
active: true,
insert: true,
setParent: true,
}
);
}
);
// 返回菜单值
function menu_value(menuName) {
for (let menu of menu_ALL) {
if (menu[0] == menuName) {
return menu[3];
}
}
}
// 启用/禁用 (当前网站)
function menu_disable(type) {
let href = document.location.href;
switch (type) {
case "check":
if (disabled()) return true;
return false;
break;
case "add":
addDisabled();
break;
case "del":
delDisabled();
break;
}
function disabled() {
// 存在返回真,不存在返回假
let websiteList = menu_value("menu_disable"); // 读取网站列表
if (websiteList.indexOf(href) === -1) return false; // 不存在返回假
return true;
}
function addDisabled() {
if (disabled()) return;
let websiteList = menu_value("menu_disable"); // 读取网站列表
websiteList.push(href); // 追加网站域名
GM_setValue("menu_disable", websiteList); // 写入配置
location.reload(); // 刷新网页
}
function delDisabled() {
if (!disabled()) return;
let websiteList = menu_value("menu_disable"), // 读取网站列表
index = websiteList.indexOf(href);
websiteList.splice(index, 1); // 删除网站域名
GM_setValue("menu_disable", websiteList); // 写入配置
location.reload(); // 刷新网页
}
}
// 2048 判断
var href = document.location.href;
if (href.indexOf("/2048/") === -1) {
return;
}
// 检查是否是列表
function isUrlList() {
var reg = /fid-[\d]+.html/g;
var res = href.match(reg);
var reg2 = /thread\.php/g;
var res2 = href.match(reg2);
return (res && res.length > 0) || (res2 && res2.length > 0);
}
// 检查是否是帖子
function isUrlDetail() {
return !isUrlList;
}
// 过滤
var filters = [
"來訪者必看的內容",
"請各位更換新的文宣",
"外站图床推荐",
"开放主题",
"威尼斯人",
"同城兼职少妇",
"华人高端",
"区发贴教程详解",
];
function isBlackTitle(title) {
if (!title) {
return true;
}
var isBlack = false;
for (let i = 0; i < filters.length; i++) {
const element = filters[i];
if (title.indexOf(element) >= 0) {
isBlack = true;
break;
}
}
return isBlack;
}
// 2048 列表逻辑处理
if (isUrlList() || href.indexOf("search.php") >= 0) {
// other
document.querySelector(".TOP_PD") &&
document.querySelector(".TOP_PD").remove();
document.querySelector(".TOP_PD2") &&
document.querySelector(".TOP_PD2").remove();
let origin = document.location.origin;
// 列表循环
$(".tr3").each(function () {
var that = $(this);
var thatA = that.find("a").first();
var url = origin + "/2048/" + thatA.attr("href");
var thattd = that.find("td:eq(1)");
var thattdTime = that.find("td:eq(2)"); // 时间
if (href.indexOf("search.php") >= 0) {
thattd = that.find("th:eq(0)");
thattdTime = that.find("th:eq(1)");
}
var trTime = thattdTime.find("div.f10:eq(0)").text();
// console.log("trTime", trTime, "->", utils.TimeGetDate(0), utils.TimeGetDate(-1), utils.TimeGetDate(-2));
var todayDate = utils.TimeGetDate(0)
if (trTime == todayDate ) {
that.css("background-color","#81C6E8");
}
if (trTime == utils.TimeGetDate(-1) ) {
that.css("background-color","#E5EBB2");
}
if (trTime == utils.TimeGetDate(-2) ) {
that.css("background-color","#F5EFE6");
}
// a的数量异常删除
if (thattd.find("a").length > 5) {
// that.remove();
}
// 处理图片
var title = thattd.find("a").first().text();
var isBlacked = isBlackTitle(title);
if (!isBlacked && !menu_disable("check")) {
utils.Log(debug, ["处理内部帖子图片:", title, url]);
GM_xmlhttpRequest({
method: "GET",
url: url,
headers: {
"User-agent": window.navigator.userAgent,
Accept:
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
cookie: document.cookie,
referer: href,
},
onload: function (result) {
var doc = result.responseText;
// 查找 dataaps
var hrefs = $(doc).find(".tpc_content a");
for (let i = 0; i < hrefs.length; i++) {
const element = hrefs[i];
if (element.href.indexOf("dataaps") > 0) {
thattd.append(
`磁力链接`
);
}
}
var imgs = $(doc).find(".tpc_content img"); // $(doc).find(".att_img > img");
// utils.Log(debug, ["获取图片:", imgs.length]);
for (let i = 0; i < imgs.length; i++) {
// 最多图片
if (i >= maxImgCount) {
break;
}
const element = imgs[i];
if (i == 0) {
thattd.append("
");
}
var src = element.getAttribute("file") || element.getAttribute("src");
src = utils.ImgSrcComplate(src);
thattd.append(
""
);
}
},
});
}
});
// 高亮回复数大于xx数的帖子
function highlight() {
var highlightCount = 5;
var tr3s = document.querySelectorAll(".tr3");
for (var i = 0; i < tr3s.length; i++) {
var element = tr3s[i];
var td = element.querySelectorAll("td");
// 高亮
if (td[3]) {
if (td[3].textContent * 1 > highlightCount) {
td[1].style.backgroundColor = "#baccd9";
td[3].style.backgroundColor = "#baccd9";
}
}
}
}
} else {
document.querySelector("#footer") &&
document.querySelector("#footer").remove();
}
})();