知乎便捷功能 1.首页自动跳转到发现 2.自动关闭登录框 3.自动显示全部回答 4.问题日期显示在上方 5.去除外链的提示 6.去除广告
// ==UserScript==
// @name 知乎便捷功能
// @namespace http://tampermonkey.net/
// @version 1.9
// @description 知乎便捷功能 1.首页自动跳转到发现 2.自动关闭登录框 3.自动显示全部回答 4.问题日期显示在上方 5.去除外链的提示 6.去除广告
// @author backrock12
// @match *://*.zhihu.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
"use strict";
let autoclose_count = 0;
const max_count = 30;
let isrun = false;
function autoclose() {
if (isrun) return;
isrun = true;
console.log("autoclose");
const ad1 = document.querySelector(".css-1hwwfws");
if (ad1) {
ad1.style.display = "none";
}
const ad2 = document.querySelector(".css-1ynzxqw");
if (ad2) {
console.groupEnd('1ynzxqw');
ad2.style.display = "none";
}
const s3 = document.querySelector(".ViewAll-QuestionMainAction");
if (s3) {
s3.click();
return;
}
const s4 = document.querySelector(".QuestionRichText-more");
if (s4) {
s4.click();
}
const s0 = document.querySelector(".SignContainer-content");
if (s0) {
const s1 = document.querySelector(".Modal-backdrop");
if (s1) {
s1.click();
}
const s2 = document.querySelector(".Modal-closeButton");
if (s2) {
s2.click();
}
}
const s5 = document.querySelector("body > div:nth-child(14)");
if (s5) {
if (s5.querySelector(".signFlowModal")) {
s5.innerHTML = "";
console.log(s5);
}
}
autoclose_count++;
// if (autoclose_count > max_count) {
// document.querySelector('body').removeEventListener('DOMNodeInserted', autoclose);
// }
isrun = false;
}
function noad() {
const ad1 = document.querySelector(".AppBanner");
if (ad1) {
ad1.style.display = "none";
}
const ad2 = document.querySelector("div.Card:nth-child(4)");
if (ad2) {
ad2.style.display = "none";
}
const ad3 = document.querySelector(".Card.Banner");
if (ad3) {
ad3.style.display = "none";
}
const ad4 = document.querySelector(".AdblockBanner");
if (ad4) {
ad4.style.display = "none";
}
}
function nosign() {
document
.querySelector("body")
.addEventListener("DOMNodeInserted", autoclose);
}
/// 跳转
function nojump() {
var documents = document.querySelectorAll("div a");
for (var i = 0; i < documents.length; i++) {
if (documents[i].href.split("http").length > 2) {
documents[i].setAttribute(
"href",
decodeURIComponent("http" + documents[i].href.split("http")[2])
);
}
}
}
function nohome() {
// let reg = new RegExp('www.zhihu.com/sign*');
// if (reg.test(location.href)) {
location.href = "https://www.zhihu.com/explore";
// }
}
function zhuanlan() {
// let reg = new RegExp('zhuanlan.zhihu.com*');
// if (reg.test(location.href)) {
console.log("zhuanlan");
const container = document.querySelector(".Post-Author");
const time = document.querySelector(".ContentItem-time");
var timediv = document.createElement("div");
timediv.innerHTML = time.outerHTML;
console.log(timediv);
container.appendChild(timediv);
//}
}
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
function timeFormat(time, fmt) {
//author: meizz
var o = {
"M+": time.getMonth() + 1, //月份
"d+": time.getDate(), //日
"h+": time.getHours(), //小时
"m+": time.getMinutes(), //分
"s+": time.getSeconds(), //秒
"q+": Math.floor((time.getMonth() + 3) / 3), //季度
S: time.getMilliseconds(), //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(time.getFullYear() + "").substr(4 - RegExp.$1.length)
);
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1
? o[k]
: ("00" + o[k]).substr(("" + o[k]).length)
);
return fmt;
}
function questiodate() {
function QuestionPage() {
const title = document.querySelector(".QuestionPage");
if (title) {
const dateCreated = title.querySelector(
"[itemprop~=dateCreated][content]"
).content;
const dateModified = title.querySelector(
"[itemprop~=dateModified][content]"
).content;
const ctime = timeFormat(new Date(dateCreated), "yyyy-MM-dd hh:mm:ss");
const mtime = timeFormat(new Date(dateModified), "yyyy-MM-dd hh:mm:ss");
const side = title.querySelector(".QuestionHeader-side");
var timediv = document.createElement("div");
timediv.innerHTML = `<p>创建时间: ${ctime}</p><p>编辑时间: ${mtime}</p>`;
timediv.style.cssText = "color:#999";
side.appendChild(timediv);
}
}
let listnum = 0;
function ContentItem() {
//console.log('ContentItem');
const list = document.querySelectorAll(".ContentItem");
if (listnum != list.length) {
listnum = list.length;
for (var i = 0; i < list.length; i++) {
const item = list[i];
if (item.getAttribute("zh_date_mk") != "true") {
const dateCreated = item.querySelector(
"[itemprop~=dateCreated][content]"
).content;
const dateModified = item.querySelector(
"[itemprop~=dateModified][content]"
).content;
const ctime = timeFormat(
new Date(dateCreated),
"yyyy-MM-dd hh:mm:ss"
);
const mtime = timeFormat(
new Date(dateModified),
"yyyy-MM-dd hh:mm:ss"
);
const sideitem = item.querySelector(".css-h5al4j");
var timediv = document.createElement("span");
timediv.innerHTML = `创建时间: ${ctime} 编辑时间: ${mtime} `;
timediv.class = "Voters";
timediv.style.cssText = "color:#999;float:right;";
sideitem.appendChild(timediv);
item.setAttribute("zh_date_mk", "true");
}
}
}
}
QuestionPage();
document
.querySelector(".Question-main")
.addEventListener("DOMNodeInserted", ContentItem);
}
function start() {
if (/www\.zhihu\.com\/sign*/.test(location.href)) {
//首页跳转
nohome();
} else if (/zhuanlan\.zhihu\.com*/.test(location.href)) {
//专栏日期
zhuanlan();
nosign();
} else if (/www\.zhihu\.com\/questio*/.test(location.href)) {
//登录框
//广告
setTimeout(noad, 500);
//问题日期
questiodate();
nosign();
} else {
//登录框
nosign();
}
//链接
setTimeout(nojump, 500);
console.log("zhihu");
}
start();
})();