NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name HaierUv // @version 1.0.0 // @author chuter // @namespace http://www.chuter.com // @description Get all weibo mid with specific keywords // @require http://libs.baidu.com/jquery/1.9.1/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js // @include http://bbs.haier.com/forum/food/* // @grant GM_xmlhttpRequest // @run-at document-end // ==/UserScript== (function($) { xlog = function(message) { if (console) { console.log(message); } }; /** * 只有等到条件满足之后执行callback,如果设置了最长等待时间,在等待时间超出该上限后会进行超时处理: * 如果超时回调设置,那么直接调用该回调方法,否则打印超时错误信息 * * @param conditionCheckFunc 进行条件判定的方法 * @param callback 条件成立时执行的回调方法 * @param maxWaitTime 最长等待时间 * @param timeoutCallBack 等待超时后执行的回调方法 * @param interval 检查条件的时间间隔 */ waitfor = function(conditionCheckFunc, callback, maxWaitTime, timeoutCallBack, interval) { if (interval == null || typeof(interval) == 'undefined') { interval = 100; } while (! conditionCheckFunc()) { if (maxWaitTime == null || typeof(maxWaitTime) == 'undefined') { setTimeout(function() { waitfor(conditionCheckFunc, callback, maxWaitTime, timeoutCallBack, interval); }, interval); } else if (maxWaitTime && maxWaitTime >= 0) { setTimeout(function() { waitfor(conditionCheckFunc, callback, maxWaitTime, timeoutCallBack, interval); }, interval); maxWaitTime -= interval; } else { if (timeoutCallBack) { console.log(typeof(timeoutCallBack)); timeoutCallBack(); } else { console.error('等待时间过长'); } } return; } // Condition finally met. callback() can be executed. callback(); }; parseQueryString = function(url) { var urlkey2values = {}; url.replace( new RegExp( "([^?=&]+)(=([^&]*))?", "g" ), function( $0, $1, $2, $3 ){ urlkey2values[ $1 ] = $3; } ); return urlkey2values; }; getCurUrl = function() { var href = null; try { href = document.location.href; } catch (e) { xlog("exception where get weibo's url: " + e.name + ", " + e.message); } return href; }; var appendScript = function(url, onload) { var script = document.createElement("script"); script.setAttribute("src", url); if (onload) { script.addEventListener('load', onload, false); } document.body.appendChild(script); }; var appendStyleSheet = function(url, onload) { var styleSheet = document.createElement("link"); styleSheet.setAttribute('rel', 'stylesheet'); styleSheet.setAttribute("href", url); if (onload) { styleSheet.addEventListener('load', onload, false); } document.head.insertBefore(styleSheet, document.head.firstChild); }; var simulateClick = function(element) { if(document.createEvent) { var click = document.createEvent("MouseEvents"); click.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); element.dispatchEvent(click); element.focus(); } else if(document.documentElement.fireEvent) { element.fireEvent("onclick"); element.focus(); } }; var uidCookieName = '_smt_uid'; var showCookie = function() { var cookie = $.cookie(uidCookieName); var cookieHtml = '<p style="width:100%; font-size:36px; text-align:center; line-height:1.5;">' + cookie + '</p>' $('#globlePanel').append($(cookieHtml)); }; var addGloblePanel = function() { $('body').append($('<div id="globlePanel" class="panel global-sidePanel global-sidePanel--left u-textAlignCenter" style="color:#f0f0f0; background-color:rgba(0,0,0,0.6);"></div>')); showCookie(); var height = $(document.body).height(); var ratio = 0.1; function scrollToBottom() { if (ratio >= 1) { $.removeCookie(uidCookieName, {path: "/", domain: ".bbs.haier.com"}); showCookie(); var firstPage = $('a[page]')[0]; simulateClick(firstPage); window.location.reload(); } console.log(height+'--'+ratio); $(document).scrollTop(height * ratio); ratio += 0.1; setTimeout(scrollToBottom, 500); } setTimeout(scrollToBottom, 500); }; var extractPageWeiboIds = function() { var weiboIdsArr = []; $("div[action-type='feed_list_item']").each(function(index, ele) { $(ele).css('border', '2px solid red'); weiboIdsArr.push($(ele).attr('mid')); }); return weiboIdsArr; }; var renderWeiboIds = function() { var weiboIdsArr = extractPageWeiboIds(); var weiboIdsListHtml = '<div class="panel-title"><h3>抽取的微博ID</h3></div><div class="panel-body"><ul>'; $(weiboIdsArr).each(function(index, elem) { weiboIdsListHtml += '<li>'+elem+'</li>'; }); weiboIdsListHtml += '</ul></div>'; $('#globlePanel').append($(weiboIdsListHtml)); }; var createWorkbench = function() { addGloblePanel(); }; $(document).ready(function() { appendStyleSheet('http://123.56.85.253/cdn/css/global.css'); appendStyleSheet('http://123.56.85.253/cdn/css/user_layout.css'); createWorkbench(); }); })(jQuery);