IITC plugin: Highlight unique portals

Highlight unique portals by capture, visit or scout controller

À partir de 2021-02-08. Voir la dernière version.

// ==UserScript==
// @author         Odrick
// @name           IITC plugin: Highlight unique portals
// @description    Highlight unique portals by capture, visit or scout controller
// @category       Highlighter
// @version        0.0.1
// @id             highlight-unique-portals
// @match          https://*.ingress.com/intel*
// @match          http://*.ingress.com/intel*
// @match          https://*.ingress.com/mission/*
// @match          http://*.ingress.com/mission/*
// @include        https://*.ingress.com/intel*
// @include        http://*.ingress.com/intel*
// @include        https://*.ingress.com/mission/*
// @include        http://*.ingress.com/mission/*
// @grant          none
// @namespace https://greasyfork.org/users/410740
// ==/UserScript==

function wrapper(plugin_info) {
    if(typeof window.plugin !== 'function') window.plugin = function() {};

    plugin_info.buildName = 'odrick@highlight-unique-portals';
    plugin_info.dateTimeVersion = '2021-02-08-220302';
    plugin_info.pluginId = 'highlight-unique-portals';

    var e = {};

    e.highlightCaptured = function(data) {
        if(!((data.portal.options.ent[2][18] & 0b10) !== 0)) {
            data.portal.setStyle({fillColor: '#ff0000', fillOpacity: 1, weight: 1});
            //console.log(data.portal);
        }
    }

    e.highlightVisited = function(data) {
        if(!((data.portal.options.ent[2][18] & 0b01) !== 0)) {
            data.portal.setStyle({fillColor: '#ff0000', fillOpacity: 1, weight: 1});
        }
    }

    e.highlightScoutControlled = function(data) {
        if(!((data.portal.options.ent[2][18] & 0b100) !== 0)) {
            data.portal.setStyle({fillColor: '#ff0000', fillOpacity: 1, weight: 1});
        }
    }

    window.plugin.highlightUniquePortals = e;

    function setup() {
        window.addPortalHighlighter('Unique - captured', window.plugin.highlightUniquePortals.highlightCaptured);
        window.addPortalHighlighter('Unique - visited', window.plugin.highlightUniquePortals.highlightVisited);
        window.addPortalHighlighter('Unique - scout controled', window.plugin.highlightUniquePortals.highlightScoutControlled);
    }

    setup.info = plugin_info;

    if (!window.bootPlugins) window.bootPlugins = [];
    window.bootPlugins.push(setup);
    if (window.iitcLoaded && typeof setup === 'function') setup();
}

var script = document.createElement('script');
var info = {};

if(typeof GM_info !== 'undefined' && GM_info && GM_info.script) {
    info.script = {
        version: GM_info.script.version,
        name: GM_info.script.name,
        description: GM_info.script.description
    };
}

var textContent = document.createTextNode('('+ wrapper +')('+ JSON.stringify(info) +')');
script.appendChild(textContent);
(document.body || document.head || document.documentElement).appendChild(script);