Export Weibo Album to List or Image

批量导出新浪微博相册图片,用于保存、下载

目前为 2017-04-29 提交的版本。查看 最新版本

// ==UserScript==
// @name         Export Weibo Album to List or Image
// @namespace    https://greasyfork.org/zh-CN/users/10666-sbdx
// @version      0.4.20160926
// @description  批量导出新浪微博相册图片,用于保存、下载
// @author       sbdx
// @include        http://t.sina.com.cn/*
// @include        http://weibo.com/*
// @include        http://www.weibo.com/*
// @include        http://s.weibo.com/*
// @include        http://s.weibo.com/pic/*
// @include        http://photo.weibo.com/*
// @include        http://d.weibo.com/*
// @exclude        http://s.weibo.com/user/*
// @exclude        http://weibo.com/app/*
// @exclude        http://weibo.com/app
// @require        http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// ==/UserScript==
/*
@echo off
Rem wget批量下载并且重命名 批处理文件
setlocal enabledelayedexpansion
set /a num=0
FOR /F %%i in (URL.txt) do (
 set /a num+=1
 title !num!
 wget -c -q %%i -O !num!.jpg
)
*/
jQuery(function(){
	var nw,UID,AlbumID,Type,total_pic,imgCountInPage,boolShowPicOrLink;
	//$.ajaxSetup({async:false,cache:false});
	function ProcessAlbum()
	{
		for(var p=1,lens=Math.ceil(total_pic/imgCountInPage); p<=lens; p++)
		{
			//console.log('正在获取第'+p+'页');
			url='http://photo.weibo.com/photos/get_all?uid=' + UID + '&album_id=' + AlbumID + '&count=' + imgCountInPage + '&page=' + p + '&type=' + Type + '&__rnd='+(new Date().getTime());
			console.log('Get '+url);
			$.getJSON(url,function(rtn){
				//异步调用,返回顺序不一致
				plist=rtn.data.photo_list;
				for(i=0,plist_len=plist.length;i<plist_len;i++)
				{
					obj=plist[i];
					//only for me
					obj.pic_hos='http://ww2.sinaimg.cn';
					picurl=obj.pic_host + '/large/' + obj.pic_name;
					if(boolShowPicOrLink)
					{
						nw.document.writeln('<img src="'+picurl+'" border="0" /><br>');
					}
					else
					{
						nw.document.writeln('<a href="'+picurl+'" target="_blank">'+picurl+'</a><br>');
					}
				}
			});
		}
		nw.document.title='加载完成';
	}
	function GetAlbumPic()
	{
		UID=$GLOBAL_DETAIL.album_info.uid;                //博主ID
		AlbumID=$GLOBAL_DETAIL.album_info.album_id;        //相册ID
		Type=$GLOBAL_DETAIL.type;
		total_pic=$GLOBAL_DETAIL.album_info.count.photos;        //相片总数
		imgCountInPage=30;    //每页显示数量
		boolShowPicOrLink=true;	//显示图片或地址
		if(total_pic>50)
		{
			boolShowPicOrLink=confirm("图片数量过多,请选择显示 图片 或 连接!\n是 - 显示图片 否 - 显示连接");
		}
		nw=window.open('','output');
		nw.document.title='正在载入......';
		ProcessAlbum();
	}
	function ShowLargeImageInSinglePage()
	{
		$('.media_box img').each(function(i){this.src=this.src.replace(/(http:\/\/.+?\/)(.+?)(\/.*)/i,'$1large$3');});
	}
	if (document.location.host == "photo.weibo.com")
	{
		$("body").append("<div id='sbdx_tools_getAllImage' style='position:absolute;right:10px;top:100px;'><button>显示相册全部图片</button></div>");$("#sbdx_tools_getAllImage").on("click",GetAlbumPic);
	}
	else
	{
		$("body").append("<div id='sbdx_tools_for9' style='position:absolute;right:10px;top:130px;'><button>单页显示九宫格大图</button></div>");$("#sbdx_tools_for9").on("click",ShowLargeImageInSinglePage);
	}

	$(window).scroll(function(){$("div[id^=sbdx]").each(function(i){$(this).offset({top:$(document).scrollTop()+100+i*30});});});
});