// ==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 += '
'; for (var j=0;j
'; } html += ''; html += ''; } $(".ls_node_main").append(html); } })();