您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes current day's hits from the DB to prepare it for the new update
当前为
// ==UserScript== // @name MTurk HIT DataBase Patch v1 // @namespace https://greasyforks.org/users/710 // @description Removes current day's hits from the DB to prepare it for the new update // @include https://www.mturk.com/mturk/dashboard // @version 6 // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js // ==/UserScript== var HITStorage = {}; var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.mozIDBTransaction; window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.mozIDBKeyRange; HITStorage.IDBTransactionModes = { "READ_ONLY": "readonly", "READ_WRITE": "readwrite", "VERSION_CHANGE": "versionchange" }; var IDBKeyRange = window.IDBKeyRange; HITStorage.indexedDB = {}; HITStorage.indexedDB = {}; HITStorage.indexedDB.db = null; HITStorage.indexedDB.onerror = function(e) { console.log(e); }; var v = 4; var dates = {}; if (confirm("This will delete all hits done from your DB for 2015-06-02.")) { var request = indexedDB.open("HITDB", 4); request.onsuccess = function(e) { HITStorage.indexedDB.db = e.target.result; var db = HITStorage.indexedDB.db; var trans = db.transaction(["HIT"], HITStorage.IDBTransactionModes.READ_WRITE); var store = trans.objectStore("HIT"); range = IDBKeyRange.bound("2015-04-19", "2015-06-02", false, false); range2 = IDBKeyRange.bound("1900-01-01","2015-04-19", false, false); store.index('date').openCursor(range).onsuccess = function(event) { var cursor = event.target.result; //console.log(cursor.value); if (cursor) { if (cursor.value.hitId.indexOf("?") > -1) { //console.log(cursor.value); if (dates[cursor.value.date]) { approved = (cursor.value.status.indexOf("Paid") > -1 ? 1 : 0); pending = (cursor.value.status.indexOf("Pending") > -1 ? 1 : 0); rejected = (cursor.value.status.indexOf("Rejected") > -1 ? 1 : 0); earnings = parseFloat(cursor.value.reward); dates[cursor.value.date]["approved"] += approved; dates[cursor.value.date]["pending"] += pending; dates[cursor.value.date]["rejected"] += rejected; dates[cursor.value.date]["earnings"] += earnings; dates[cursor.value.date]["submitted"] += 1; } else { approved = (cursor.value.status.indexOf("Paid") > -1 ? 1 : 0); pending = (cursor.value.status.indexOf("Pending") > -1 ? 1 : 0); rejected = (cursor.value.status.indexOf("Rejected") > -1 ? 1 : 0); earnings = parseFloat(cursor.value.reward); dates[cursor.value.date] = {"approved": approved, "pending": pending, "rejected": rejected, "earnings": earnings, "submitted": 1 }; } //cursor.delete(); } cursor.continue(); } else { db.close(); } }; } console.log(dates); request = indexedDB.open("HITDB", 4); request.onsuccess = function(e) { HITStorage.indexedDB.db = e.target.result; var db = HITStorage.indexedDB.db; var trans = db.transaction(["HIT"], HITStorage.IDBTransactionModes.READ_WRITE); var store = trans.objectStore("HIT"); trans = db.transaction(["STATS"], HITStorage.IDBTransactionModes.READ_WRITE); store = trans.objectStore("STATS"); console.log("Second"); store.openCursor(range).onsuccess = function(event) { var cursor = event.target.result; if (cursor) { if (dates[cursor.value.date]) { console.log(cursor.value); var i = cursor.value; i.approved -= dates[cursor.value.date]["approved"]; i.pending -= dates[cursor.value.date]["pending"]; i.rejected -= dates[cursor.value.date]["rejected"]; i.earnings -= dates[cursor.value.date]["earnings"]; i.submitted -= dates[cursor.value.date]["submitted"]; console.log(i); //cursor.update(i); } cursor.continue(); } else { db.close(); } }; } }