// ==UserScript== // @name 批量下载贴吧原图 // @name:zh 批量下载贴吧原图 // @name:en Batch srcImage downloader for tieba // @version 1.7 // @description 一键批量下载贴吧中一页的原图 // @description:zh 一键批量下载贴吧中一页的原图 // @description:en Batch Download Src Image From Baidu Tieba // @supportURL http://imcoder.site/article.do?method=detail&aid=124 // @match http://tieba.baidu.com/* // @match https://tieba.baidu.com/* // @match http://imgsrc.baidu.com/* // @match https://imgsrc.baidu.com/* // @require http://code.jquery.com/jquery-latest.js // @author Jeffrey.Deng // @namespace https://greasyfork.org/users/129338 // @downloadURL none // ==/UserScript== // @weibo http://weibo.com/3983281402 // @blog http://imcoder.site // @date 2017.6.3 // @更新日志 // V 1.7 2017.6.9 1.修复魅族等贴吧下载图标不显示的问题 // V 1.6 2017.6.5 1.提高下载的图片正确率 // V 1.5 2017.6.4 1.增加右键新标签打开图片直接打开原图 // V 1.4 2017.6.3 1.更新对 https 的支持 // 2.提高图片匹配成功率 //右键新标签打开图片直接打开原图 var url = document.location.toString(); var m = null; if( !(m = url.match(/^https?:\/\/imgsrc\.baidu\.com\/forum\/pic\/item\/.+/i)) ){ if( (m = url.match(/^(https?):\/\/(?:imgsrc|imgsa|\w+\.hiphotos)\.(?:bdimg|baidu)\.com\/(?:forum|album)\/.+\/(\w+\.(?:jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ){ document.location = m[1] + "://imgsrc.baidu.com/forum/pic/item/" + m[2]; } } //下载图片的过滤宽度 var width = 100; var height = 100; var srchost = "http://imgsrc.baidu.com/forum/pic/item"; (function(){ var rightParent = null; var html = ""; var liCount = $('ul',$('#tb_nav')).eq(0).find('li').length; var liArr = $('ul',$('#tb_nav')).eq(0).find('li'); var rightLi = liArr[ liCount-1 ]; if( $(rightLi).hasClass('none_right_border') ){ var tab = liArr[ liCount - 2 ]; var isStarTie = $(rightLi).hasClass("star_nav_tab"); var rightHtml = ""; if( isStarTie ){ rightHtml = '
  • ' + $(rightLi).html() + '
  • '; }else{ rightHtml = '
  • ' + $(rightLi).html() + '
  • '; } $(tab).after(rightHtml); if( isStarTie ){ html = '
    '+ '下载
    '; }else{ html = '

    '+ '下载'+ '

    '; } $(rightLi).html(html); }else { html = '
  • '+ '下载
  • '; $(rightLi).after(html); } $('#batchDownloadBtn').click(function(){ batchDownload(); }); })(); /** 批量下载 **/ function batchDownload(){ try{ var arr = []; var postDiv_1 = $('.post_bubble_middle'); var postDiv_2 = $('.d_post_content'); var postDiv = $.merge(postDiv_1,postDiv_2); $(postDiv).find('img').each(function(i,img){ var url = $(img).attr('src'); var m = null; var srcUrl = ""; if( $(img).width() < width ){ return true; }else if( $(img).attr('class') === 'BDE_Image' && $(img).attr('pic_type')==="0" ){ var filename = url.substring(url.lastIndexOf('/')); arr.push( srchost+filename ); }else if( (m = url.match(/^(https?):\/\/(?:imgsrc|imgsa|\w+\.hiphotos)\.(?:bdimg|baidu)\.com\/(?:forum|album)\/.+\/(\w+\.(?:jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ){ //pic_type这时失效了,所以要正则判断地址是否为用户上传图片地址格式 arr.push( srchost + "/" + m[2] ); } }); if(arr.length === 0){ if( confirm( "未检测到图片,是否切换匹配方式查找" ) ){ var postDiv_3 = $('.d_post_content_main'); var postDiv_Max = $.merge(postDiv,postDiv_3); $(postDiv_Max).find('img').each(function(i,img){ var m = $(img).attr('src').match(/^(https?):\/\/(?:imgsrc|imgsa|\w+\.hiphotos)\.(?:bdimg|baidu)\.com\/(?:forum|album)\/.+\/(\w+\.(?:jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i) ; if( $(img).attr('class') === 'BDE_Image' && $(img).width() >= width && m !==null ){ var srcUrl = srchost + "/" + m[2]; arr.push(srcUrl); } }); } } if( confirm( "是否下载 " + arr.length +" 张图片" ) ){ download(arr); } }catch(e){ } } /** 下载 **/ function download(arr){ arr.map(function(i){ var a = document.createElement('a'); a.setAttribute('download',''); a.href=i; document.body.appendChild(a); a.click(); }); }