// ==UserScript== // @id iitc-plugin-raw-portal-data // @name IITC plugin: Debug: Raw portal JSON data // @category Debug // @version 0.2.2.@@DATETIMEVERSION@@ // @namespace rawdata // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ // @description [@@BUILDNAME@@-@@BUILDDATE@@] Developer debugging aid: Adds a link to the portal details to show the raw data of a portal // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* // @match http://www.ingress.com/intel* // @grant none // ==/UserScript== @@PLUGINSTART@@ // PLUGIN START //////////////////////////////////////////////////////// // use own namespace for plugin window.plugin.rawdata = function() {}; window.plugin.rawdata.setupCallback = function() { addHook('portalDetailsUpdated', window.plugin.rawdata.addLink); } window.plugin.rawdata.addLink = function(d) { $('.linkdetails').append(''); } window.plugin.rawdata.showPortalData = function(guid) { if (!window.portals[guid]) { console.warn ('Error: failed to find portal details for guid '+guid+' - failed to show debug data'); return; } var d = window.portals[guid].options.details; var ts = window.portals[guid].options.timestamp; var title = 'Raw portal data: ' + (d.portalV2.descriptiveText.TITLE || '') + ' ('+guid+')'; var body = 'Portal GUID: '+guid+'
' + 'Entity timestamp: '+ts+' - '+window.unixTimeToDateTimeString(ts,true)+'
' + '
'+JSON.stringify(d,null,2)+'
'; body += '

Links referencing this portal

'; var haslinks = false; for (var lguid in window.links) { var l = window.links[lguid]; var ld = l.options.details; if (ld.edge.originPortalGuid == guid || ld.edge.destinationPortalGuid == guid) { body += 'Link GUID: '+l.options.guid+'
'+JSON.stringify(ld,null,2)+'
'; haslinks = true; } } if (!haslinks) body += '

No links to/from this portal

'; body += '

Fields referencing this portal

'; var hasfields = false; for (var fguid in window.fields) { var f = window.fields[fguid]; var fd = f.options.details; if (fd.capturedRegion.vertexA.guid == guid || fd.capturedRegion.vertexB.guid == guid || fd.capturedRegion.vertexC.guid == guid) { body += 'Field guid: '+f.options.guid+'
'+JSON.stringify(fd,null,2)+'
'; hasfields = true; } } if (!hasfields) body += '

No fields linked to this portal

'; dialog({ title: title, html: body, id: 'dialog-rawdata', dialogClass: 'ui-dialog-rawdata', }); } var setup = function () { window.plugin.rawdata.setupCallback(); $('head').append(''); } // PLUGIN END ////////////////////////////////////////////////////////// @@PLUGINEND@@