從Firefox套件「直讀台灣蘋果日報」移植過來的
// ==UserScript==
// @name 直讀台灣蘋果日報 (porting from Firefox add-ons)
// @version 1.9.0
// @namespace https://gf.qytechs.cn/users/291985
// @match *://*.appledaily.com/*
// @grant none
// @description 從Firefox套件「直讀台灣蘋果日報」移植過來的
// @run-at document-start
// ==/UserScript==
var PRESERVE_IDS = [
'playerVideo',
'video_player'
];
var PRESERVE_CLASSES = [
'ndAritcle_headPic',
'ndArticle_margin',
'mediabox',
'article-content',
'articulum'
];
var PRESERVED_DOM_ELEMENTS = {};
function reset_overflow_mobile()
{
document.body.style.overflowY = 'auto';
var page_role_elements = document.querySelectorAll('[data-role="page"]');
for (var i = 0; i < page_role_elements.length; i++) {
page_role_elements[i].style.overflowY = 'auto';
}
}
function stop_secret_action_mobile()
{
var rehide_interval = XPCNativeWrapper(
window.wrappedJSObject['contentV']
);
if (typeof(rehide_interval) == 'number') {
window.clearInterval(rehide_interval);
}
}
function reveal_content_mobile()
{
stop_secret_action_mobile();
var ndgPayway = document.getElementsByClassName('ndgPayway');
for (var i = 0; i < ndgPayway.length; i++) {
ndgPayway[i].style.display = 'none';
}
// Apple daily sets a timeout to disable scrolling again.
setTimeout(function(){
reset_overflow_mobile();
}, 2500);
}
var debug_div = document.createElement('div');
function debug(message)
{
var debug_p = document.createElement('p');
var debug_message = document.createTextNode(message);
debug_p.appendChild(debug_message);
debug_div.appendChild(debug_p);
}
function show_debug(element)
{
element.appendChild(debug_div);
}
function reveal_video_desktop()
{
var video_data_json = null;
if (PRESERVED_DOM_ELEMENTS['video_player'] !== undefined) {
video_data_json = PRESERVED_DOM_ELEMENTS['video_player'].childNodes[0].dataset['anvp'];
} else if (PRESERVED_DOM_ELEMENTS['playerVideo'] !== undefined) {
video_data_json = PRESERVED_DOM_ELEMENTS['playerVideo'].childNodes[0].lastChild.dataset['anvp'];
}
if (video_data_json === null) {
return;
}
try {
// Reconstruct video content
var video_data = JSON.parse(video_data_json);
var source = document.createElement("source");
source.src = video_data['url'];
source.type = 'video/mp4';
var video = document.createElement('video');
video.style.width = video_data['width'];
video.style.height = video_data['height'];
video.autoplay = false;
video.controls = true;
video.appendChild(source);
video.load();
// Restore video content
var thoracis = document.querySelector('.thoracis');
if (thoracis != null) {
thoracis.appendChild(video);
return;
}
var ndPaywall = document.querySelector('.ndPaywall');
debug(ndPaywall.length);
if (ndPaywall != null) {
ndPaywall.parentNode.insertBefore(video, ndPaywall);
return;
}
} catch (e) {
;
}
}
function stop_secret_action_desktop(secret_element)
{
var parent_element = secret_element.parentNode;
var div_element = document.createElement('div');
div_element.style.display = 'none';
parent_element.replaceChild(div_element, secret_element);
div_element.appendChild(secret_element);
}
function hide_secret_tag_in_destkop_article_element(article_element)
{
var secret_element_tag_name_regex = /[a-zA-Z0-9]{33}-[a-zA-Z0-9]{32}/;
var element_tag_list = article_element.getElementsByTagName("*");
for (var i = 0; i < element_tag_list.length; i++) {
var element = element_tag_list[i];
if (element.tagName.search(secret_element_tag_name_regex) >= 0) {
stop_secret_action_desktop(element);
return article_element;
}
}
}
function reveal_article_desktop()
{
try {
if (PRESERVED_DOM_ELEMENTS['ndArticle_margin'] !== undefined) {
// Find and hide the secret element in the content to bypass content re-hide
var article_element = hide_secret_tag_in_destkop_article_element(
PRESERVED_DOM_ELEMENTS['ndArticle_margin']
);
// Restore article content
var ndArticle_content = document.getElementsByClassName('ndArticle_content')[0];
ndArticle_content.insertBefore(article_element,
ndArticle_content.childNodes[0]);
} else if (PRESERVED_DOM_ELEMENTS['articulum'] !== undefined) {
// Find and hide the secret element in the content to bypass content re-hide
var article_element = hide_secret_tag_in_destkop_article_element(
PRESERVED_DOM_ELEMENTS['articulum']
);
// Restore article content
var abdominis = document.getElementsByClassName('abdominis')[0];
var article = abdominis.getElementsByTagName('article')[0];
abdominis.insertBefore(article_element, article.nextSibling);
} else if (PRESERVED_DOM_ELEMENTS['article-content'] !== undefined) {
// Find and hide the secret element in the content to bypass content re-hide
var article_element = hide_secret_tag_in_destkop_article_element(
PRESERVED_DOM_ELEMENTS['article-content']
);
// Restore article content
var video_player_wrap_element = article_element.getElementsByClassName('video-player-wrap');
for (var i = 0; i < video_player_wrap_element.length; i++) {
video_player_wrap_element[i].style.display = 'none';
}
var ndPaywall = document.getElementsByClassName('ndPaywall')[0];
ndPaywall.parentNode.insertBefore(article_element, ndPaywall.nextSibling);
}
} catch (e) {
;
}
}
function reveal_content_desktop()
{
var ndPaywall = document.getElementsByClassName('ndPaywall');
for (var i = 0; i < ndPaywall.length; i++) {
ndPaywall[i].style.display = 'none';
}
var ndPaywallVideo = document.getElementsByClassName('ndPaywallVideo');
for (var i = 0; i < ndPaywallVideo.length; i++) {
ndPaywallVideo[i].style.display = 'none';
}
// Restore deleted content
reveal_video_desktop();
reveal_article_desktop();
// Restore article head picture
var ndAritcle_headPic = PRESERVED_DOM_ELEMENTS['ndAritcle_headPic'];
if(typeof(ndAritcle_headPic) != 'undefined' && ndAritcle_headPic != null)
{
var ndArticle_contentBox = document.getElementsByClassName('ndArticle_contentBox')[0];
ndArticle_contentBox.insertBefore(ndAritcle_headPic,ndArticle_contentBox.childNodes[0]);
}
}
function reveal_content()
{
// Detect site mode.
var isMobile = document.body.classList.contains("ui-mobile-viewport") ||
document.body.style.overflowY != '';
if (isMobile) {
reveal_content_mobile();
return;
}
reveal_content_desktop();
}
document.addEventListener('readystatechange', (event) => {
if (document.readyState == "complete") {
reveal_content();
}
})
function preserve_node(node)
{
for (var i = 0; i < PRESERVE_IDS.length; i++) {
var preserve_id = PRESERVE_IDS[i];
if (node.id == preserve_id) {
PRESERVED_DOM_ELEMENTS[preserve_id] = node.cloneNode(true);
PRESERVED_DOM_ELEMENTS[preserve_id].style.display = 'block';
PRESERVED_DOM_ELEMENTS[preserve_id].style.visibility = 'visible';
return;
}
}
for (var i = 0; i < PRESERVE_CLASSES.length; i++) {
var preserve_class = PRESERVE_CLASSES[i];
if (node.classList.contains(preserve_class)) {
PRESERVED_DOM_ELEMENTS[preserve_class] = node.cloneNode(true);
PRESERVED_DOM_ELEMENTS[preserve_class].style.display = 'block';
PRESERVED_DOM_ELEMENTS[preserve_class].style.visibility = 'visible';
return;
}
}
}
var config = {childList: true, subtree: true};
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type != 'childList') {
return;
}
// Preserve content node
for (var i = 0; i < mutation.removedNodes.length; i++) {
preserve_node(mutation.removedNodes[i]);
}
});
})
observer.observe(document, config);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址