Ingress Report inappropriate gameplay Tool

Auto Report inappropriate gameplay

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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;
	};
})();