iitc-ce / iitc-button Goto Github PK
View Code? Open in Web Editor NEWFirefox/Chrome extensions that enables IITC features
License: GNU General Public License v3.0
Firefox/Chrome extensions that enables IITC features
License: GNU General Public License v3.0
I use external plugins with IITC button (mainly @AlfonsoML button for Pogo s2 cells) because I play both PoGo and Ingress. In PoGo mode, I do want those tools, because they're extremely useful. However, when I'm planning links and looking at unclaimed portals for the latest event (lol), I don't want a zillion stops/gyms showing up everywhere. On mobile IITC I just disable the plugin for now and re-enable it, but I can't seem to turn the plugin on or off.
I'm on Chrome on MacOS.
When I relaunch browser - all previously opened tabs restored, including pinned Ingress.
And then if I try to open ingress tab from IITC-Button - I get another pinned tab.
This plugin works just fine with IITC-CE inside of tampermonkey, but doesn't appear to even try to load when it's inside of IITC-Button.
The plugin is here: https://gitlab.com/AlfonsoML/pogo-s2
The plugin has a few Pokemon Go centric features, such as flagging a portal as a Gym or Pokestop, being able to overlay S2 cells of adjustable sizes, and highlight S2 Cells that are full and cannot accept any new submissions.
Reporting issue on both repos because I'm not sure where the issue actually is.
Issue on their repo: https://gitlab.com/AlfonsoML/pogo-s2/issues/40
Action is required to update the manifest.json
https://blog.mozilla.org/addons/2023/10/05/changes-to-android-extension-signing/
This is a suggestion / request for enhancement. IITC-Button provides an update mechanism for plugins. To keep user informed and aware of ongoing enhancements and possible changes to plugin behaviors, the IITC-Button could provide both a visual indicator that plugins have been recently updated and a view to show update history where ideally one could read relevant changelog entry. This could have downstream benefit of improving bug reports from users by more accurately identifying version of plugin issue is occurring with and if it started after a recent update or not.
The web extension APIs were delivered with Safari 14 for macOS in WWDC20, and Safari 15 for iOS / iPadOS in WWDC21. Now it is possible to build IITC-Button for Safari with:
npm run build
as usual./dist
to the Safari Extension targetsI've forked the repo, made some changes and added the Xcode project to support-safari
branch, it works so far.
But I have some questions:
Hope we can discuss it!
There is a button to delete external plugins but it doesn't seem to work as expected (like removing the plugin 😉)
When I click the button it tells me that the changes will be applied after rebooting IITC. But this does not happen - how to reboot IITC?? 😕
It should be possible to enable most plugins without page reload.
Compared to the way that IITC works with Tampermonkey, I guess that this extensions injects the code later or is missing some extra clean up because the original intel keeps running and it generates errors on page load and then on every click on the page.
Opening the js console is enough to check this.
The problem affects both Chrome and Firefox
I'd like to have such possibilities:
Add plugin by url
Actually, it's possible now (i can paster url directly in file chooser), I'd prefer more obvious way, like special input field.
Delete plugin
My iitc-m has recently been having issues. When I go to draw a link, withthe Auto draw function, I can't completely scrolling through my bookmarks.
I propose following enhancements:
meta.json
meta.json
meta.json
only, and if it is changed - update all scripts.After adding I see the message mentioning undefined
category, but then my plugin does not get loaded.
IITC-Button/scripts/defaults.js
Line 5 in a27d8fc
When entering address in settings - it get accepted only after removing 'http://' part.
It is not obvious and generally wrong.
When entering wrong address - text become red. But it is not clear enough, e.g. when it's initially red, or for color-blind person.
So better output error message to status line.
Wrong address is not stored. But what if it is not 'wrong', but just temporary unavailable?
I suppose any user-entered value should be stored (and empty should be converted to default).
Instead of 127.0.0.1
better use localhost
.
BTW, in recent version python server defaulted to ip6 (::1
), so localhost
would be more robust.
Userscripts should be distinguished by @namespace + @name (only these 2 fields)
Like Greasemonkey and Violentmonkey do: https://sourceforge.net/p/greasemonkey/wiki/unsafeWindow/ (https://wiki.greasespot.net/UnsafeWindow)
(just copy & pasted the issue from iitc-TG)
I've ran into the status of external plugins being undefined (cause still to be determined) which results in the plugin in the plugin list to not show the plugin name and the plugin actions to be pushed out so aren't visible unless you scroll horizontally which is likely not obvious to user so it looks like there is a plugin they can't easily identify or delete. It may be particular plugins that are causing the issue but ideally user should still be able to disable, enable, download, and delete user plugins even if plugin is misbehaving.
If the description field in the meta block contains special characters (like ; or ") the ittc-button loader will fail to load them.
Reason: loader.js will search for for ";" and truncate the line.
Line 59 in 9db5d8d
IITC-Button/scripts/helpers.js
Line 73 in 9db5d8d
Example:
// ==UserScript==
// @name IITC plugin: MyPlugin
// @id IITC-plugin-MyPlugin
// @category Misc
// @version 1.0
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion
// @description Bug ; " me
// @include https://intel.ingress.com/*
// @grant none
// ==/UserScript==
console.log("loaded");
Gaode Map is choosable from the map tiles
Gaode Map is not there
Uncaught (in promise) DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
at o (chrome-extension://febaefghpimpenpigafpolgljcfkeakn/js/content-script.js:23:239)
at HTMLDocument.a (chrome-extension://febaefghpimpenpigafpolgljcfkeakn/js/content-script.js:23:376)
at <anonymous>:2:14
o @ content-script.js:23
a @ content-script.js:23
(anonymous) @ VM2895:2
And VM2895
is this snippet:
document.dispatchEvent(new CustomEvent('IITCButtonInitJS',{
detail: {
"plugin": {
"author": "johnd0e",
"category": "Map Tiles",
"code": "// ==UserScript==\n// @author johnd0e\n// @name ... TRUNCATED HERE",
"description": "Map layers from AutoNavi / Gaode (高德地图)",
"filename": "basemap-gaode.user.js",
"icon": "https://iitc.app/extras/plugin-icons/basemap-gaode.png",
"icon64": "https://iitc.app/extras/plugin-icons/basemap-gaode-64.png",
"id": "basemap-gaode",
"name": "Gaode (高德地图) / AutoNavi map",
"namespace": "https://github.com/IITC-CE/ingress-intel-total-conversion",
"status": "on",
"uid": "Gaode (高德地图) / AutoNavi map+https://github.com/IITC-CE/ingress-intel-total-conversion",
"version": "0.1.1"
},
"tab_id": 1403434310
}
}));
This broke the plugin because the uid
field of this snippet contained non-latin Chinese characters.
Unrecognized manifest key 'applications'.
Uncaught TypeError: Cannot read property 'addEventListener' of null
app/popup/popup.js:183 (anonymous function)
UserScript Managers allow the user to import/export scripts and their associated data, both individually and all simultaneously.
IITC-Button allows import/export of LocalStorage-based data using a plugin, but there is no apparent means of exporting user-installed plugins (and optionally, their data) all at the same time.
Adding this functionality would bring parity with the UserScript Manager installations and allow easier movement between computers/browsers/profiles without needing to port over the entire Browser profile where IITC-Button is installed.
Depending on the (random) order the scripts are being loaded / sorted in on the external scripts, makes several plugins seem to be enabled / disabled at random due to errors.
It would be useful to make load order deterministic and sortable.
In addition, for toggling enabled status of plugins, it would be cool if they could be sorted alphabetically (as opposed to load order) or grouped into folders much like the default plugins are.
exception in:
IITC-Button/scripts/updater.js
Line 372 in b8a41d9
because cat = "keys"
doesn't have a "plugins" subfield
I successfully add a couple external plugins, and see them in UserScripts
category.
But that's all.
And I even do not see any error in DevTools console.
Edit: some plugins work, some don't.
I will provide examples later.
The IITC-Button is lacking Support for the GM.* functions.
This means all Plugins that are using them don't work in IITC-Button
The GM.* function is commonly used to store credentials or make requests to do stuff like syncing with a backend server in a defined way so other plugins can't access them.
Without them the only other option is store them in a shared area where all scripts can access them.
Thats why IITC-Button should get a proper GM.* support especially:
The extension keeps iitc in pinned tab, but after login iitc opens also on separate tab.
Line 26 in d8b5d8b
will fail if line is empty
like:
// @download sdfsdf
// @author sdfsdf
/edit
additional: a missing space between // and @ is also accepted by tampermonkey but not by iitc-button
//@author sdfsdf
This is only page that should be processed:
https://github.com/TheSned/IITCPlugins/raw/master/copy-portal-details-for-op-sheet.user.js
These pages should not be processed:
https://github.com/TheSned/IITCPlugins/blob/master/copy-portal-details-for-op-sheet.user.js
https://github.com/TheSned/IITCPlugins/blame/master/copy-portal-details-for-op-sheet.user.js
https://github.com/TheSned/IITCPlugins/commits/master/extend-poly-lines.user.js
As for pages like https://github.com/TheSned/IITCPlugins/blob/master/copy-portal-details-for-op-sheet.user.js
It would be perfect to add button (in div.BtnGroup
) to open file in IITC-Button.
It's bad that IITC-Button try to intercept every *.user.js
file, as there may be scripts not related to IITC.
Is it possible to check file's content?
Most IITC plugins have // @name IITC plugin:
line.
When IITC-Button turned off it should not intercept anything.
But it tries, even when I forbid access to pages (via Chrome context menu This can read and change site data >
)
The confirmation message says that the "External script will be in the External Category" but there is no external category on the pull down menu.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.