- // ==UserScript==
- // @name QT Framework for Grepolis
- // @namespace Quack
- // @description A script framework for Grepolis
- // @include http://*.grepolis.*/game*
- // @icon http://s1.directupload.net/images/140711/eshmcqzu.png
- // @version 1.02.01
- // @grant GM_listValues
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_deleteValue
- // @grant GM_info
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
-
- /************************************************************************
- * Main Script
- ***********************************************************************/
- function main_script(DATA) {
- /************************************************************************
- * Global variables
- ***********************************************************************/
- var QT = {};
- var wID = Game.world_id;
- var mID = Game.market_id;
- var aID = Game.alliance_id;
- var sID = Game.player_id;
- var pName = Game.player_name;
-
- /************************************************************************
- * Languages
- ***********************************************************************/
- QT.Lang = {
- get : function (a, b) {
- if (QT.Lang[mID] != undefined && QT.Lang[mID][a] != undefined && QT.Lang[mID][a][b] != undefined) {
- return QT.Lang[mID][a][b]
- } else {
- return QT.Lang.en[a][b]
- }
- },
- de : {
- test : {
- teststring : 'Sprache wurde erkannt'
- }
- },
- en : {
- test : {
- teststring : 'Language detected'
- }
- }
- };
-
- /************************************************************************
- * Images
- ***********************************************************************/
- QT.Images = {};
-
- /************************************************************************
- * Links
- ***********************************************************************/
- QT.Links = {};
-
- /************************************************************************
- * Settings
- ***********************************************************************/
- QT.Settings = {
- values : {
- "messageOpenAlert" : true,
- "reportOpenAlert" : true,
- "onlinetotal" : 0
- },
- save : function (name, value) {
- QT_saveValue(name, value);
- },
- save_all : function (valuesToSave) {
- QT_saveAllValues(QT.Settings.values, valuesToSave);
- },
- delete : function (name) {
- QT_deleteValue(name);
- },
- delete_all : function () {
- QT_deleteAllValues();
- },
- setValues : function () {
- for (var opt in DATA) {
- QT.Settings.values[opt] = DATA[opt];
- }
- }
- };
-
- /************************************************************************
- * Ajax Call functions
- ***********************************************************************/
- QT.CallAjaxFunction = {
- message : {
- default:
- function (event, xhr, settings) {
- if (QT.Settings.values.messageOpenAlert)
- QT.Functions.messageOpenAlert();
- }
- },
- report : {
- index : function () {
- if (QT.Settings.values.reportOpenAlert)
- QT.Functions.reportOpenAlert();
- }
- }
- };
-
- /************************************************************************
- * Functions
- ***********************************************************************/
- QT.Functions = {
- messageOpenAlert : function () {
- alert("Die Nachrichten wurden geöffnet");
- },
- reportOpenAlert : function () {
- alert("Die Berichte wurden geöffnet");
- },
- testButtons : function () {
- $('#ui_box').append('<div id="qt_buttons" style="position: relative;top: 54px;z-index: 100"><button id="qt_save">Save</button><button id="qt_saveall">Save all</button><button id="qt_delete">Delete</button><button id="qt_deleteall">Delete all</button></div>');
- $("#qt_save").click(function () {
- QT.Settings.save("messageOpenAlert", false);
- });
- $("#qt_saveall").click(function () {
- var values = {};
- values.messageOpenAlert = false;
- values.reportOpenAlert = false;
- QT.Settings.save_all(values);
- });
- $("#qt_delete").click(function () {
- QT.Settings.delete("messageOpenAlert");
- });
- $("#qt_deleteall").click(function () {
- QT.Settings.delete_all();
- });
- }
- };
-
- /************************************************************************
- * Observer
- ***********************************************************************/
- $.Observer(GameEvents.game.load).subscribe('QT', function (e, data) {
- QT.Settings.setValues();
- QT.Functions.testButtons();
-
- $(document).ajaxComplete(function (event, xhr, settings) {
- var a = settings.url.split("?");
- var b = a[0].substr(6);
- var c = a[1].split("&")[1].substr(7);
- if (b in QT.CallAjaxFunction && c in QT.CallAjaxFunction[b]) {
- QT.CallAjaxFunction[b][c](event, xhr, settings);
- }
- });
- });
- }
-
- /************************************************************************
- * Start Method
- ***********************************************************************/
- var DATA = {
- script_version : GM_info.script.version
- };
-
- var keys = GM_listValues();
- for (var i = 0, key = null; key = keys[i]; i++) {
- DATA[key] = GM_getValue(key);
- }
-
- unsafeWindow.QT_saveValue = function (name, val) {
- setTimeout(function () {
- GM_setValue(name, val);
- window.location.reload();
- }, 0);
- };
- unsafeWindow.QT_saveAllValues = function (QTsettings, values) {
- setTimeout(function () {
- var exceptions = ["qmenu_update_next", "qmenu_online_version", "onlinetotal"];
- for (key in QTsettings) {
- if (exceptions.indexOf(key) === -1) {
- if (key in values) {
- GM_setValue(key, values[key]);
- } else {
- GM_deleteValue(key);
- }
- }
- }
- window.location.reload();
- }, 0);
- };
- unsafeWindow.QT_deleteValue = function (name) {
- setTimeout(function () {
- GM_deleteValue(name);
- window.location.reload();
- }, 0);
- };
- unsafeWindow.QT_deleteAllValues = function () {
- setTimeout(function () {
- var keys = GM_listValues();
- for (var i = 0, key = null; key = keys[i]; i++) {
- GM_deleteValue(key);
- }
- window.location.reload();
- }, 0);
- };
-
- if (typeof exportFunction == 'function') {
- exportFunction(unsafeWindow.QT_saveValue, unsafeWindow, {
- defineAs : "QT_saveValue"
- });
- exportFunction(unsafeWindow.QT_saveAllValues, unsafeWindow, {
- defineAs : "QT_saveAllValues"
- });
- exportFunction(unsafeWindow.QT_deleteValue, unsafeWindow, {
- defineAs : "QT_deleteValue"
- });
- exportFunction(unsafeWindow.QT_deleteAllValues, unsafeWindow, {
- defineAs : "QT_deleteAllValues"
- });
- }
-
- function appendScript() {
- if (unsafeWindow.Game) {
- var QT_script = document.createElement('script');
- QT_script.type = 'text/javascript';
- QT_script.textContent = main_script.toString() + "\n main_script(" + JSON.stringify(DATA) + ");";
- document.body.appendChild(QT_script);
- } else {
- setTimeout(function () {
- appendScript();
- }, 100);
- }
- }
-
- appendScript();