Plugin AP List: use timestamp to check update of portal data.

This commit is contained in:
Xelio 2013-09-03 21:50:28 +08:00
parent d976a8c033
commit a5523280ad

View File

@ -2,7 +2,7 @@
// @id iitc-plugin-ap-list@xelio // @id iitc-plugin-ap-list@xelio
// @name IITC plugin: AP List // @name IITC plugin: AP List
// @category Info // @category Info
// @version 0.5.6.@@DATETIMEVERSION@@ // @version 0.5.7.@@DATETIMEVERSION@@
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @namespace https://github.com/jonatkins/ingress-intel-total-conversion
// @updateURL @@UPDATEURL@@ // @updateURL @@UPDATEURL@@
// @downloadURL @@DOWNLOADURL@@ // @downloadURL @@DOWNLOADURL@@
@ -268,12 +268,13 @@ window.plugin.apList.updateSortedPortals = function() {
var cachedPortal = oldcachedPortal[key]; var cachedPortal = oldcachedPortal[key];
// If portal is changed, update playerApGain with latest // If portal is changed, update playerApGain with latest
// information // information
if(!plugin.apList.isSamePortal(portal,cachedPortal)) { if(!cachedPortal || value.timestamp !== cachedPortal.timestamp) {
// Copy portal detail to cachedPortal // Copy portal detail to cachedPortal
cachedPortal = $.extend({}, portal); cachedPortal = $.extend({}, portal);
var side = plugin.apList.portalSide(portal); var side = plugin.apList.portalSide(portal);
var getApGainFunc = plugin.apList.playerApGainFunc[side]; var getApGainFunc = plugin.apList.playerApGainFunc[side];
// Assign playerApGain and guid to cachedPortal // Assign playerApGain and guid to cachedPortal
cachedPortal.timestamp = value.timestamp
cachedPortal.playerApGain = getApGainFunc(portal); cachedPortal.playerApGain = getApGainFunc(portal);
cachedPortal.effectiveLevel = plugin.apList.getEffectiveLevel(portal); cachedPortal.effectiveLevel = plugin.apList.getEffectiveLevel(portal);
cachedPortal.guid = value.options.guid; cachedPortal.guid = value.options.guid;
@ -373,29 +374,6 @@ window.plugin.apList.updateTotalPages = function() {
}); });
} }
window.plugin.apList.isSameResonator = function(oldRes, newRes) {
if(!oldRes && !newRes) return true;
if(!oldRes || !newRes) return false;
if(typeof oldRes !== typeof newRes) return false;
if(oldRes.level !== newRes.level) return false;
if(oldRes.energyTotal !== newRes.energyTotal) return false;
if(oldRes.distanceToPortal !== newRes.distanceToPortal) return false;
return true;
}
window.plugin.apList.isSamePortal = function(a,b) {
if(!a || !b) return false;
if(a.team !== b.team) return false;
if(a.level !== b.level) return false;
for(var i = 0; i < 8; i++) {
if(!plugin.apList.isSameResonator(a.resonatorArray.resonators[i],b.resonatorArray.resonators[i]))
return false;
}
return true;
}
window.plugin.apList.portalSide = function(portal) { window.plugin.apList.portalSide = function(portal) {
return (portal.controllingTeam.team === PLAYER.team return (portal.controllingTeam.team === PLAYER.team
|| portal.controllingTeam.team === 'NEUTRAL') || portal.controllingTeam.team === 'NEUTRAL')