// ==UserScript==
// @name 新浪微博相册采集
// @namespace http://qqoq.net/
// @version 0.1.1
// @description 自动获取用户的微博相册,只能在用户主页使用有效
// @author 老萨
// @require https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js
// @require https://cdn.bootcss.com/viewerjs/1.3.3/viewer.min.js
// @include http://weibo.com/*
// @include https://weibo.com/*
// @include http://www.weibo.com/*
// @include https://www.weibo.com/*
// @grant GM_notification
// @grant GM_xmlhttpRequest
// @grant GM_addStyle
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
// console.log($CONFIG)
var uid = $CONFIG['oid']; // 用户ID
var album_id = ''; // 相册ID
var page = 1; // 当前页码
var count = 30; // 每页显示数量(这里有点迷糊,有的微博设置100也有效,有的93、60等等,所以为了确保稳定还是按照官方设置为30)
var total_page = null; // 总页数
var type = 3; // 获取微博配图相册
var viewer = null; // 图片预览
// 插入预览图插件样式
$("head").prepend('');
// 插入样式
$("body").prepend('
');
GM_addStyle('#laosa{width: 1000px;background: #fff;position: fixed;right: -1000px;bottom: 0;top: 0;z-index: 99999;}'+
'.ls_open{position: absolute;left: -40px;width: 40px;height: 40px;background: #ff8140;color:#fff;top: 100px;line-height: 40px;text-align: center;font-size: 14px;border-radius: 5px 0 0 5px;}'+
'.ls_main{overflow-y: auto;height: 100%;}'+
'.ls_node_main{padding:20px;}'+
'.ls_node{overflow: hidden;margin-bottom: 20px;}'+
'.ls_h1{font-weight: bold;font-size: 14px;}'+
'.ls_li{float: left;width: 150px;padding: 5px;height: 150px;overflow: hidden;}'+
'.ls_li img{width: 100%;height: auto;}'+
'.ls_page{padding:20px;}'+
'.ls_disable,.ls_disable:hover{background:#ddd;}'+
'.viewer-backdrop{background-color: rgba(0,0,0,.8);}')
function open_photo(imgs){
//
}
// 打开预览
$(".ls_node_main").on("click",".ls_li",function(){
var index = $(this).index();
viewer = new Viewer($(this).parents('.ls_ul').get(0),{
initialViewIndex: index,
interval: 2000,
loop: false,
zIndex: 9999999,
url: 'data-original'
});
viewer.show();
})
// 监听图片预览事件
$(".ls_node_main").on('hidden', viewer,function () {
// 销毁上一次打开对象
viewer.destroy();
});
// 展开面板
$(".ls_open").click(function(){
if($("#laosa").css("right") == '0px'){
$("body").css("overflow","visible");
$("#laosa").animate({right:-1000});
}else{
$("body").css("overflow","hidden");
$("#laosa").animate({right:0});
}
})
get_weibo_album(uid);
// 获取微博配图的相册ID(type=3)
function get_weibo_album(uid){
var all_album_url = 'http://photo.weibo.com/albums/get_all?uid='+uid+'&page=1&count=100'; // 根据用户id获取所有相册
GM_xmlhttpRequest({
method: 'GET',
url: all_album_url,
onload: response => {
if (response.status == 200) {
var data = JSON.parse(response.responseText);
for (var i=0;i {
if (response.status == 200) {
$(".ls_next_page").text('下一页').removeClass("ls_disable");
var data = JSON.parse(response.responseText);
// 分页
insert_page(data.data.total);
//console.log(data.data.photo_list)
sort_data(data.data.photo_list,function(data){
insert_dom(data)
});
}
}
});
}
}
// 插入分页数据
function insert_page(total){
// 计算总页数
total_page = Math.ceil(total/count);
$(".ls_total").html('图片总数:'+total);
$(".ls_total_page").html('总页数:'+total_page);
$(".ls_current_page").html('当前页数:'+page);
}
// 下一页
$(".ls_page").on("click",".ls_next_page",function(){
if($(this).hasClass("ls_disable"))
return !1;
if(page >= total_page)
return !1;
page+=1;
get_album(page);
})
// 数据重新组装
function sort_data(data,callback){
//console.log(data)
var new_data = [];
var k = 0;
var len = data.length;
for (var i=0;i0 && data[j].feed_id == data[i].feed_id){
new_data[k-1].data.push(data[i].pic_host+'/large/'+data[i].pic_name)
}else{
new_data[k].title = data[i].caption_render;
new_data[k].data = [data[i].pic_host+'/large/'+data[i].pic_name];
k++;
}
}
callback(new_data);
}
// 插入面板
function insert_dom(data){
//console.log(data)
var html = '';
for (var i=0;i';
html += ''+data[i].title+'
';
html += '';
for (var j=0;j
!['+data[i].title+']('+nurl+')
';
}
html += '';
html += '';
}
$(".ls_node_main").append(html);
}
})();