您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Caches recently played games.
// ==UserScript== // @name Kongregate played // @description Caches recently played games. // @include http://www.kongregate.com/* // @version 0.0.1.20160306133707 // @namespace https://gf.qytechs.cn/users/32649 // ==/UserScript== if(typeof GM_setValue == "undefined") { function GM_setValue(name, value) { localStorage.setItem(name, value); } function GM_getValue(name, defaultValue) { var value = localStorage.getItem(name); if(value) return value; else return defaultValue; } function GM_deleteValue(name) { localStorage.removeItem(name); } } if(location.toString().split("?")[0].split("#")[0] == "http://www.kongregate.com/accounts/"+unsafeWindow.active_user.username()) setTimeout(show, 0); if(/^http:\/\/www\.kongregate.com\/games\/[a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+$/.test(location.toString())) setTimeout(save, 5000); function show() { var games = GM_getValue("kongregateRecentlyPlayedList", "null"); var preferences = JSON.parse(GM_getValue("kongregateRecentlyPlayedPreferences", "{\"maxGames\":18,\"minRating\":2.75,\"registerUnrated\":false,\"autoLoad\":true}")); if(games == "null") return; var gamesList = games.split("|"); var currentGame, firstOfPage; var pages = Math.floor((gamesList.length-1)/6)+1, settings, clearButton; var pagesList = [], currentSelectedPage = -1, currentPagePlaceHolder; var globalGamesHolder = document.getElementById("secondary"); var insertBeforePoint = document.getElementById("cards"); var mainGamesHolder = document.createElement("div"); var gamesHolder = document.createElement("div"); var recentlyPlayedTitle = document.createElement("h2"); var recentlyPlayedPages = document.createElement("h3"); function addGameToProfileList(name, target, imageURL, first) { var container_L0 = document.createElement("dl"); container_L0.setAttribute("class", "favgame"+(first?" first":"")); var container_L1 = document.createElement("dt"); container_L0.appendChild(container_L1); var imageLink = document.createElement("a"); imageLink.setAttribute("href", "http://www.kongregate.com/games/"+target); container_L1.appendChild(imageLink); var image = document.createElement("img"); image.setAttribute("src", "http://cdn"+imageURL.charAt(0)+".kongregate.com/game_icons/"+imageURL.substring(1)); image.setAttribute("alt", "Play "+name); image.setAttribute("width", 93); image.setAttribute("height", 74); imageLink.appendChild(image); var container_link = document.createElement("dd"); container_L0.appendChild(container_link); var textLink = document.createElement("a"); textLink.innerHTML = name; textLink.setAttribute("href", "http://www.kongregate.com/games/"+target); container_link.appendChild(textLink); gamesHolder.appendChild(container_L0); } function loadPage(pageIndex) { while(gamesHolder.childNodes.length) gamesHolder.removeChild(gamesHolder.childNodes[0]); flagSelectedPage(pageIndex, (pageIndex+1).toString()); firstOfPage = true; for(var i=pageIndex*6;i<pageIndex*6+6&&i<gamesList.length;i++) { currentGame = gamesList[gamesList.length-i-1].split(";"); addGameToProfileList(currentGame[2], currentGame[0], currentGame[1], firstOfPage); firstOfPage = false; } } function flagSelectedPage(pageIndex, flagText) { if(currentSelectedPage != -1) { recentlyPlayedPages.insertBefore(pagesList[currentSelectedPage], currentPagePlaceHolder); recentlyPlayedPages.removeChild(currentPagePlaceHolder); } recentlyPlayedPages.insertBefore(currentPagePlaceHolder = document.createTextNode(flagText), pagesList[pageIndex]); recentlyPlayedPages.removeChild(pagesList[pageIndex]); currentSelectedPage = pageIndex; } function addItem(name) { var open_text = document.createTextNode(" ("); var link = document.createElement("a"); var close_text = document.createTextNode(")"); link.innerHTML = name; link.setAttribute("href", "javascript:void(0);"); recentlyPlayedPages.appendChild(open_text); recentlyPlayedPages.appendChild(link); recentlyPlayedPages.appendChild(close_text); pagesList.push(link); return link; } function addPage(index) { var link = addItem((index+1).toString()); link.addEventListener("click", function(event) {loadPage(index)}, false); } function loadSettings(event) { var GM_preferences = GM_getValue("kongregateRecentlyPlayedPreferences", "{\"maxGames\":18,\"minRating\":2.75,\"registerUnrated\":false,\"autoLoad\":true}"); var settings_input = unsafeWindow.prompt("This is a JSON reflection of the changeable variables:", GM_preferences); if(settings_input == null) return; settings_input.replace(/ /g, ""); if(/^\{"maxGames":[0-9]+,"minRating":(([1-3](\.[0-9]{1,2})?)|(4(\.[0-4][0-9]?|\.50?))),"registerUnrated":(true|false),"autoLoad":(true|false)\}$/.test(settings_input)) { GM_setValue("kongregateRecentlyPlayedPreferences", settings_input); alert("Settings have been overwritten."); } else { alert("Invalid syntax."); } } for(var i=0;i<pages;i++) addPage(i); settings = addItem("Settings"); settings.addEventListener("click", loadSettings, false); clearButton = addItem("Clear"); clearButton.addEventListener("click", function(event) { if(!window.confirm("Are you sure you want to clear your recently played games history?")) return; GM_deleteValue("kongregateRecentlyPlayedList"); globalGamesHolder.removeChild(mainGamesHolder); if(window.confirm("Do you want to clear the settings too? Reset them to default?")) GM_deleteValue("kongregateRecentlyPlayedPreferences"); }, false); recentlyPlayedTitle.innerHTML = "Recently played"; mainGamesHolder.appendChild(recentlyPlayedTitle); mainGamesHolder.appendChild(recentlyPlayedPages); gamesHolder.setAttribute("class", "games wrapper"); mainGamesHolder.appendChild(gamesHolder); globalGamesHolder.insertBefore(mainGamesHolder, insertBeforePoint); if(preferences.autoLoad) loadPage(0); } function save() { var url = location.toString(); var urlPart = url.match(/^http:\/\/www\.kongregate\.com\/games\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)/)[1]; var metas = document.getElementsByTagName("meta"), icon; for(var i=0;i<metas.length;i++) if(metas[i].getAttribute("property") == "og:image") { icon = metas[i].getAttribute("content"); break; } var iconPart = icon.match(/^http:\/\/cdn([0-9])\.kongregate\.com\/game_icons\/([0-9]{4}\/[0-9]{4}\/.+?\.(png|jpg|gif))/); iconPart = iconPart[1] + iconPart[2]; var gameTitle = document.getElementById("gamepage_header").innerHTML.match(/<\/span>\W*([^\n\r]*)/)[1]; var rating = document.getElementById("game_ratings_size").innerHTML.toString().match(/[1-5]\.[0-9]{2}/) || "0.00"; var preferences = JSON.parse(GM_getValue("kongregateRecentlyPlayedPreferences", "{\"maxGames\":18,\"minRating\":2.75,\"registerUnrated\":false,\"autoLoad\":true}")); if(parseFloat(rating) >= preferences.minRating || (rating == "0.00" && preferences.registerUnrated)) { var games = GM_getValue("kongregateRecentlyPlayedList", "null"); var games_list = games.split("|"); var results = urlPart+";"+iconPart+";"+gameTitle; for(i=0;i<games_list.length;i++) if(games_list[i].match(urlPart) || games_list[i] == "null") { games_list.splice(i,1); break; } games_list.push(results); if(games_list.length>preferences.maxGames) games_list.splice(0,games_list.length-preferences.maxGames); GM_setValue("kongregateRecentlyPlayedList", games_list.join("|")); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址