// ==UserScript== // @name 巴哈姆特公會哈拉串數統計 // @namespace http://www.isaka.idv.tw/ // @version 1.0 // @description 只要按一下,就可以確認每個人的留言次數了呦~ // @author Isaka(jason21716@巴哈姆特) // @match https://guild.gamer.com.tw/singlePost.php* // @match http://guild.gamer.com.tw/singlePost.php* // @require https://code.jquery.com/jquery-3.3.1.min.js // @grant GM_xmlhttpRequest // @grant GM_openInTab // @downloadURL https://update.greasyfork.icu/scripts/368243/%E5%B7%B4%E5%93%88%E5%A7%86%E7%89%B9%E5%85%AC%E6%9C%83%E5%93%88%E6%8B%89%E4%B8%B2%E6%95%B8%E7%B5%B1%E8%A8%88.user.js // @updateURL https://update.greasyfork.icu/scripts/368243/%E5%B7%B4%E5%93%88%E5%A7%86%E7%89%B9%E5%85%AC%E6%9C%83%E5%93%88%E6%8B%89%E4%B8%B2%E6%95%B8%E7%B5%B1%E8%A8%88.meta.js // ==/UserScript== var newestContent = {}; (function() { 'use strict'; function getDomainFromUrl(url) { var host = null; if (typeof url == "undefined" || null == url) url = window.location.href; var regex = /.*\:\/\/([^\/]*)\/([^\/]*).*/; var match = url.match(regex); if (typeof match != "undefined" && null != match) { host = new Array(match[1], match[2]); } return host; } function getPHPFileNameString(s) { var host = null; var regex = /([^\/]*)\.php([^\/]*)/; var match = s.match(regex); if (typeof match != "undefined" && null != match) { host = new Array(match[1], match[2]); } return host; } $('.BH-menuE').append('
  • 留言次數統計
  • '); $('#script_count_btn').click(function(){ var current_url = window.location.href; new Promise((resolve, reject) => { console.log('Initial'); var singleACMsgParme = null; var urls = getDomainFromUrl(window.location.href); var pageName = getPHPFileNameString(urls[1]); var sn_regex = /[\?&]sn=(\d*)/; var sn_match = pageName[1].match(sn_regex); var gsn_regex = /[\?&]gsn=(\d*)/; var gsn_match = pageName[1].match(gsn_regex); window.MsgId = sn_match[1]; window.guildId = gsn_match[1]; resolve(); }).then((resolve, reject) => { return $.ajax({ url: globalConfig.apiRoot + '/v1/comment_list_legacy.php', method: 'GET', data: { gsn: guildId, messageId: MsgId, }, xhrFields: { withCredentials: true } }) }).then((resolve, reject) => { var res = resolve; var player_data = {}; var total_num = res.data.comments.length; res.data.comments.forEach((element,idx)=>{ if( player_data[ element['userid'] ] != null ){ player_data[ element['userid'] ].count += 1; }else{ player_data[ element['userid'] ] = {}; player_data[ element['userid'] ].nickname = element['name']; player_data[ element['userid'] ].count = 1; } }); var key_arr = Object.keys(player_data); var result_text = '目前留言統計:\n'; key_arr.forEach(function(element) { result_text += player_data[element].nickname + '(' + element + '):' + player_data[element].count + '\n'; }); result_text += '總留言數:' + total_num; alert(result_text); return Promise.resolve(); }) }); })();