IITC-CE / ingress-intel-total-conversion

intel.ingress.com total conversion user script with some new features. Should allow easier extension of the intel map.
https://iitc.app
ISC License
289 stars 109 forks source link

IITCm: plugins manager #257

Open johnd0e opened 5 years ago

johnd0e commented 5 years ago

Currently IITCm plugins manager home-brew implementation does not handle plugins in proper way.

To follow docs plugins should be distinguished not by filename, but by pair @namespace+@name.

But as long as scripts are stored in filesystem, special handling needed for edge cases.

Note: Currently IITCm also uses @id metadata field. It is often misinterpreted as some unique id, but in fact it is used ONLY in one case: as filename, when plugin is extracted from email attachment. I'd suggest to drop it in favor of some more obvious fields, such as @downloadURL

Related issue: #63

Update notes There is no update algorithm described neither in GM, nor it TM docs.

The only officially source - GM primer here: https://www.greasespot.net/2012/02/automatic-script-updates-come-to.html

Unfortunately, it does not have all the details, and as result - real implementations may vary (see also https://stackoverflow.com/questions/38023717/why-is-usage-of-the-downloadurl-updateurl-keys-called-unusual-and-how-do-they)

HubertZhang commented 5 years ago

I propose a new manager that responsible for managing script.

johnd0e commented 5 years ago

The manager could contains several embedded versions of IITC.

I propose something different: option to choose 'update channel', like in IITC-Button.

BTW, forgot to mention in description: we could work without storage permission.

HubertZhang commented 5 years ago

Yeah, I think the important part is providing and switching the base set of plugins.

For the permission, maybe we should check if IITCm works well on android 10 since it add sandbox for old apps

johnd0e commented 5 years ago

maybe we should check if IITCm works well on android 10 since it add sandbox for old apps

I'm pretty sure it works well. Why is it important?

May be I should explain what I mean: currently storage is needed to use external plugins, because IITCm writes them to external storage. But it could write the to own internal storage instead, without additional permissions.

Aradiv commented 4 years ago

Is there somebody working on this because this is a huge painpoint for plugin updates had it happen now multiple times that plugins where broken because the update process didn't check the server response before overwriting

johnd0e commented 4 years ago

@Aradiv https://github.com/IITC-CE/ingress-intel-total-conversion/labels/help%20wanted