2048

2048论坛预加载视频图片

< Feedback on 2048

Review: OK - script works, but has bugs

§
Posted: 01. 12. 2024
Edited: 01. 12. 2024

新帖子的图片html代码有变化,改成这样就能用了

// ==UserScript==
// @name         2048
// @namespace    https://greasyfork.org/zh-CN/scripts/442235-2048/code
// @version      0.12.4
// @description  2048论坛预加载视频图片
// @author       sht
// @match        http*://*/2048/*
// @match        http*://f2wq.cpbclinxml.com/*
// @grant        none
// @require      https://libs.baidu.com/jquery/2.1.3/jquery.min.js
// @license      MIT
// @downloadURL https://update.greasyfork.org/scripts/442235/2048.user.js
// @updateURL https://update.greasyfork.org/scripts/442235/2048.meta.js
// ==/UserScript==
//注入页面的脚本文件

jQuery(function() {

    jQuery('a font[size="4"]').hide();
    jQuery('li').hide();

    function jsleft(obj, str) {
        var index = obj.indexOf(str);
        obj = obj.substring(0, index);
        return obj;
    }

    //JS 取右字符函数
    function jsright(obj,str){
        var index = obj.indexOf(str);
        obj = obj.substring(index + 1,obj.length);
        return obj;
    }

    function jsmid(str,b,a){
        var bds=b+'(\\S*)'+a;
        return str.match(bds)[1];
    }

    function bt(){
        jQuery('.f14 a').each(function(){
            var href = jQuery(this).attr("href");
            if(href.indexOf('name=')>0){
                var st=jsright(href, '=');
                href= 'https://down.dataaps.com/down.php/'+st+'.torrent';
                jQuery(this).attr('href',href);
            }
        })
    }

    var ur=window.location.href;
    if(ur.indexOf("state")>1){
        setTimeout(bt,1000);
    }

    var res = '';
    var pattstr='.subject';
    var urls = jQuery('.subject');
    var s_urls = [];
    var defer = jQuery.Deferred();
    var i,p;
    for (i = 0; i < urls.length; i++) {
        console.log(i);
        var url = urls[i].href;
        s_urls.push(url);
    }
    //这一步必须要写,要不然下面的then无法使用
    defer.resolve(jQuery("#content_2015195").append(""));
    jQuery.each(s_urls, function (i, e) {
        defer = defer.then(function () {
            return jQuery.ajax({
                url: e,
                method: 'get',
                success: function (data) {
                    // Match src or data-original attributes containing image links
                    var matches = data.match(/(?:src|data-original)="http(.*?)\.(jpg|gif|png)"/g);
                    if (matches !== null) {
                        matches.forEach(function (match) {
                            // Extract the image URL
                            var imgUrl = match.match(/http(.*?)\.(jpg|gif|png)/);
                            if (imgUrl) {
                                jQuery('.subject').eq(i).append(
                                    '<img src="http' + imgUrl[1] + '.' + imgUrl[2] + '" width="400" /><p>'
                                );
                            }
                        });
                    }
                },
            });
        });
    });
    defer.done(function() {
        jQuery("#content_2015195").append("ajax全部执行完成<br/>")
    });
})
§
Posted: 04. 12. 2024

替换后的确是可用的,还有个建议,怎样能让预览图只加载2张左右,这个代码我看是全部加载,图多的帖子太多了,下翻特别费力。

§
Posted: 05. 12. 2024

这是我目前自用的。第83行的数字改成你想要的最多预览图片数量。第96行可以设置图片最大宽度和高度。

// ==UserScript==
// @name         2048
// @namespace    https://greasyfork.org/zh-CN/scripts/442235-2048/code
// @version      0.12.4
// @description  2048论坛预加载视频图片
// @author       sht
// @match        http*://*/2048/*
// @match        http*://f2wq.cpbclinxml.com/*
// @grant        none
// @require      https://libs.baidu.com/jquery/2.1.3/jquery.min.js
// @license      MIT
// @downloadURL https://update.greasyfork.org/scripts/442235/2048.user.js
// @updateURL https://update.greasyfork.org/scripts/442235/2048.meta.js
// ==/UserScript==
//注入页面的脚本文件

jQuery(function() {

    jQuery('a font[size="4"]').hide();
    jQuery('li').hide();

    function jsleft(obj, str) {
        var index = obj.indexOf(str);
        obj = obj.substring(0, index);
        return obj;
    }

    //JS 取右字符函数
    function jsright(obj,str){
        var index = obj.indexOf(str);
        obj = obj.substring(index + 1,obj.length);
        return obj;
    }

    function jsmid(str,b,a){
        var bds=b+'(\\S*)'+a;
        return str.match(bds)[1];
    }

    function bt(){
        jQuery('.f14 a').each(function(){
            var href = jQuery(this).attr("href");
            if(href.indexOf('name=')>0){
                var st=jsright(href, '=');
                href= 'https://down.dataaps.com/down.php/'+st+'.torrent';
                jQuery(this).attr('href',href);
            }
        })
    }

    var ur=window.location.href;
    if(ur.indexOf("state")>1){
        setTimeout(bt,1000);
    }

    var res = '';
    var pattstr='.subject';
    var urls = jQuery('.subject');
    var s_urls = [];
    var defer = jQuery.Deferred();
    var i,p;
    for (i = 0; i < urls.length; i++) {
        console.log(i);
        var url = urls[i].href;
        s_urls.push(url);
    }
    //这一步必须要写,要不然下面的then无法使用
    defer.resolve(jQuery("#content_2015195").append(""));
    jQuery.each(s_urls, function (i, e) {
        defer = defer.then(function () {
            return jQuery.ajax({
                url: e,
                method: 'get',
                success: function (data) {
                    // Match src or data-original attributes containing image links
                    // 有时点会被换成 &#46;
                    var decodedData = data.replace(/&#46;/g, '.');
                    // 只查找帖子本体,排除头像
                    var divContent = jQuery(decodedData).find('.tpc_content').html();
                    if (!divContent) {return;} // Skip if no .tpc_content found
                    var matches = divContent.match(/(?:src|data-original)="http(.*?)\.(jpg|gif|png)"/g);
                    if (matches !== null) {
                        let maxImages = 12;
                        let j = 0;
                        jQuery('.subject').eq(i).append('<p></p>');
                        matches.forEach(function (match) {
                            // Extract the image URL
                            var imgUrl = match.match(/http(.*?)\.(jpg|gif|png)/);
                          //  if (imgUrl) {
                            if (imgUrl && j < maxImages) {
                                jQuery('.subject').eq(i).append(
                                    '<img src="http' +
                                        imgUrl[1] +
                                        '.' +
                                        imgUrl[2] +
                                        '" style="max-width: 400px; max-height: 600px;"/>'
                                );
                                j++;
                            }

                        });
                    }
                },
            });
        });
    });
    defer.done(function() {
        jQuery("#content_2015195").append("ajax全部执行完成<br/>")
    });
})
§
Posted: 06. 12. 2024

怎么才能显示预览图啊 我已经按照你的改了 可还是不行 我试的是 原创首发 国内原创 中字原创这三个板块 没一个显示的

§
Posted: 06. 12. 2024

怎么才能显示预览图啊 我已经按照你的改了 可还是不行 我试的是 原创首发 国内原创 中字原创这三个板块 没一个显示的

我现在就用着这个,能看到预览图片。抱歉我也不知道为什么你用不了,你要是会用浏览器开发者工具可以看看帖子里图片的是什么html格式然后修改匹配规则。

§
Posted: 07. 12. 2024

楼上修改后的代码,let maxImages = 12 换成3,效果好的无敌

怎么才能显示预览图啊 我已经按照你的改了 可还是不行 我试的是 原创首发 国内原创 中字原创这三个板块 没一个显示的

不显示我觉得是因为@match http*://*/2048/* 没有改最新的网址

§
Posted: 07. 12. 2024

大佬们说的是这里吗?我要怎么改 我没弄过 我也不会

§
Posted: 07. 12. 2024

还是说这里?

§
Posted: 07. 12. 2024

还是说这里?



你是用的f2wq.cpbclinxml.com这个网址吗?如果不是就把你用网址加到用户匹配那里。

§
Posted: 07. 12. 2024

还是说这里?



你是用的f2wq.cpbclinxml.com这个网址吗?如果不是就把你用网址加到用户匹配那里。

https://bpbh.muebleriadelias.com/index.php
我用的这个

§
Posted: 07. 12. 2024

是这样吗 还是不行

§
Posted: 07. 12. 2024

好了 我用的你说的这个就好了

§
Posted: 07. 12. 2024

完美,要是搜索结果页也能支持就好了。

Post reply

Sign in to post a reply.