Ingress Report inappropriate gameplay Tool

Auto Report inappropriate gameplay

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Ingress Report inappropriate gameplay Tool
// @namespace    ingressboxy
// @version      0.2
// @description  Auto Report inappropriate gameplay
// @author       QQBoxy
// @match        https://support.ingress.com/hc/*/requests/*
// @grant        none
// ==/UserScript==

//提交前
//https://support.ingress.com/hc/zh-tw/requests/new?ticket_form_id=164398

//提交完成後
//https://support.ingress.com/hc/zh-tw/requests/397683

(function() {
    'use strict';
    function $(id) {
		return document.getElementById(id.substr(1));
	}
	function getCookie(name) {
	    var n = name + "=";
	    var nlen = n.length;
	    var clen = document.cookie.length;
	    var i = 0;
	    while(i < clen) {
	        var j = i + nlen;
	        if(document.cookie.substring(i, j) == n) {
	            var endstr = document.cookie.indexOf(";", j);
	            if(endstr == -1)
	                endstr = clen;
	            return unescape(document.cookie.substring(j, endstr));
	        }
	        i = document.cookie.indexOf(" ", i) + 1;
	        if(i == 0) break;
	    }
	    return null;
	}
	if(!window.location.pathname.match("/hc/zh-tw/requests/new")) {
		if(parseInt(getCookie("loop"),10)==1) {
			window.location = "https://support.ingress.com/hc/zh-tw/requests/new?ticket_form_id=164398";
		}
		return;
	}
	
	var TARGET = 0;
	if(parseInt(getCookie("loop"),10)==1) {
		TARGET = parseInt(getCookie("target"),10) + 1;
		document.cookie = "target=" + escape(TARGET+"");
	}
	
	var TYPE = 0;
	if(parseInt(getCookie("loop"),10)==1) {
		TYPE = parseInt(getCookie("type"),10);
	}
	
	var NAME = "";
	if(parseInt(getCookie("loop"),10)==1) {
		NAME = getCookie("name");
	}
	
	var INFO_TEXT = "The following agent are the same guy.";
	var SUBJECT_TEXT = [
		"Multi-account sharing",
		"Account buying/selling",
		"GPS spoofing",
	];
	var OPTIONS = [
		"abuse_ma",
		"abuse_sell",
		"abuse_cheat"
	];
	var OPTIONS_EXPLAIN = [
		"Multiple accounts/account sharing",
		"Account buying/selling",
		"GPS spoofing"
	];
	var INAPPROPRIATE = "";
    var CODENAMES = [];
    if(getCookie("codenames")) {
    	var codenames = JSON.parse(getCookie("codenames"));
    	CODENAMES = codenames;
    }
    var guys = "";
    var at_guys = "";
    for(var c in CODENAMES) {
    	guys += ( (c==0)?"":"\n" ) + CODENAMES[c];
    	at_guys += "\n@" + CODENAMES[c];
    }
    
	if(parseInt(getCookie("loop"),10)==1) {
		if(TARGET>=CODENAMES.length) {
			TARGET = 0;
			document.cookie = "loop=" + escape("0");
			document.cookie = "target=" + escape("0");
		}
	}
    
    //Form
    var form = $("#new_request");
	//Your email address
	//var email = $("#request_anonymous_requester_email");
	//Subject
	var subject = $("#request_subject");
	//Additional info/reason for your request
	var description = $("#request_description");
	//Type of inappropriate gameplay
	var inappropriate = $("#request_custom_fields_26993577");
	var inappropriate_text = inappropriate.nextElementSibling;
	//Codename of suspected Agent (one codename per report, please)
	var suspected = $("#request_custom_fields_27867927");
	//Your codename
	var codename = $("#request_custom_fields_26753947");
	
	subject.value = (CODENAMES[TARGET]?CODENAMES[TARGET]+" ":"") + SUBJECT_TEXT[TYPE];
	description.value = INFO_TEXT + at_guys;
	inappropriate.value = OPTIONS[TYPE];
	inappropriate_text.innerHTML = OPTIONS_EXPLAIN[TYPE];
    suspected.value = CODENAMES[TARGET]?CODENAMES[TARGET]:"";
    codename.value = NAME;
    
    var control = document.createElement("div");
    
    var div = document.createElement("div");
    div.setAttribute("class", "form-field text required request_description");
    
    var label = document.createElement("label");
    label.setAttribute("for", "request_description");
    label.innerHTML = "Input codename list";
    
    var textarea = document.createElement("textarea");
    textarea.setAttribute("id", "codename_list");
    textarea.onkeyup = function() {
		var list_arr = $("#codename_list").value.split("\n");
    	var at_guys = "";
		for(var c in list_arr) {
	    	at_guys += "\n@" + list_arr[c];
	    }
	    $("#request_description").value = INFO_TEXT + at_guys;
    	$("#request_subject").value = (list_arr[0]?list_arr[0]+" ":"") + SUBJECT_TEXT[0];
	    $("#request_custom_fields_27867927").value = list_arr[0]?list_arr[0]:"";
	};
    textarea.value = guys;
    
    div.appendChild(label);
    div.appendChild(textarea);
    control.appendChild(div);
    
    form.parentNode.insertBefore(control, form);
    
	console.log("TARGET:", getCookie("target"));
	console.log("LOOP:", getCookie("loop"));
	console.log("TYPE:", getCookie("type"));
	console.log("NAME:", getCookie("name"));
    if(parseInt(getCookie("loop"),10)==1) {
    	/*setTimeout(function() {
    		window.location = "https://support.ingress.com/hc/zh-tw/requests/397683";
    	}, 2000);*/
    	//form.submit();
    }
    form.onsubmit = function() {
    	if(parseInt(getCookie("loop"),10)!=1) {
    		var name = $("#request_custom_fields_26753947").value;
    		var list_arr = $("#codename_list").value.split("\n");
    		var list_text = JSON.stringify(list_arr, null, 0);
			var type = 0;
			for(type=0;type<OPTIONS.length;type++) {
				if(OPTIONS[type] == inappropriate.value) break;
			}
			document.cookie = "target=" + escape("0");
			document.cookie = "codenames=" + escape(list_text);
			document.cookie = "type=" + escape(type);
			document.cookie = "loop=" + escape("1");
			document.cookie = "name=" + escape(name);
			
			//window.location = "https://support.ingress.com/hc/zh-tw/requests/397683";
			form.submit();
		}
    	return false;
	};
})();