A Plugin Plugin !!?

Questions and comments specific to a particular plugin should go here.
User avatar
Pako
Plugin Developer
Posts: 2280
Joined: Sat Nov 11, 2006 1:31 pm
Location: Czech Republic
Contact:

Re: A Plugin Plugin !!?

Post by Pako » Sat Oct 03, 2015 6:55 am

@bengalih:
I thank you very much for this initiative. It would be great if the problem was finally resolved. By the way - you've already read this?

Pako

bengalih
Posts: 48
Joined: Sat Feb 25, 2012 1:13 am

Re: A Plugin Plugin !!?

Post by bengalih » Sat Oct 03, 2015 11:03 pm

Pako wrote:@bengalih:
I thank you very much for this initiative. It would be great if the problem was finally resolved. By the way - you've already read this?

Pako
i had seen that thread, but never really read that post. It seems that bitmonster had a similar idea...but I guess it was never implemented? Or am I wrong and there is an established protocol already?

What comments about first having an area to be able to update with all found plugin information that is publicly editable by all?
Is there such a place on this forum or a wiki that we could grant, or would it be best to start up some area on an external site.
I'm not sure that I should be the one to "own" the project, but that someone who maintains EG projects as a whole?

Sem;colon
Experienced User
Posts: 582
Joined: Sat Feb 18, 2012 10:51 am
Location: Germany

Re: A Plugin Plugin !!?

Post by Sem;colon » Sat Oct 03, 2015 11:38 pm

bengalih wrote:but I guess it was never implemented? Or am I wrong and there is an established protocol already?
I think some work has been done on this - if you run EG with the -debug command line switch, you can actually export plugins to a .egplugin file (I guess after all it's some .zip container). As far as I can say that part works very well, but I don't know how to import those .egplugin files... A double click on it does nothing and I don't know any import function of EG.
bengalih wrote:What comments about first having an area to be able to update with all found plugin information that is publicly editable by all?
Good Idea

User avatar
Pako
Plugin Developer
Posts: 2280
Joined: Sat Nov 11, 2006 1:31 pm
Location: Czech Republic
Contact:

Re: A Plugin Plugin !!?

Post by Pako » Sun Oct 04, 2015 5:19 am

bengalih wrote:It seems that bitmonster had a similar idea...but I guess it was never implemented?
Unfortunately, that's true.
Bitmonster left the project shortly thereafter.
Sem;colon wrote:I think some work has been done on this - if you run EG with the -debug command line switch, you can actually export plugins to a .egplugin file (I guess after all it's some .zip container).
Yes, it is in fact a file of "ZIP".
The package includes a complete plugin folder and a file "info.py".
This file looks like this:

Code: Select all

name = u'PushBullet'
author = u'Pako'
version = u'0.2.9'
url = u'http://www.eventghost.net/forum/viewtopic.php?f=9&t=5709'
guid = '{C92AD47A-B959-44D5-A849-9FCCCAAC9572}'
description = u'<p>Sends/receives notifications (and addresses, lists, links, pictures and files)\nto/from your Android device or browser (Chrome, Firefox) via <a class="reference external" href="https://www.pushbullet.com/">PushBullet</a>.</p>\n<p>Google account and PushBullet account (free) are required to use <a class="reference external" href="https://www.pushbullet.com/">PushBullet</a>.</p>\n<div class="line-block">\n<div class="line">Plugin uses libraries <a class="reference external" href="https://pypi.python.org/pypi/websocket-client">websocket-client</a> and <a class="reference external" href="http://pycurl.sourceforge.net/">pyCurl</a>.</div>\n<div class="line">Plugin also incorporates the majority of code from the file <a class="reference external" href="https://www.dlitz.net/software/python-pbkdf2/">pbkdf2.py</a>\nand <strong>gcm.py</strong>.</div>\n<div class="line">The file <strong>gcm.py</strong> is part of a project <a class="reference external" href="https://code.google.com/p/iphone-dataprotection/">iphone-dataprotection</a>,\nwhich is protected by a license <a class="reference external" href="http://opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a>.</div>\n</div>\n<p>Plugin version: 0.2.9</p>\n'
icon = '<shortened - base64 string>'
I think it is a good basis.
Pako

User avatar
Pako
Plugin Developer
Posts: 2280
Joined: Sat Nov 11, 2006 1:31 pm
Location: Czech Republic
Contact:

Re: A Plugin Plugin !!?

Post by Pako » Sun Oct 04, 2015 7:33 am

Sem;colon wrote:... but I don't know how to import those .egplugin files... A double click on it does nothing and I don't know any import function of EG.
I examine it a little more detail and I can say that the import plugin also works.
There are only lacking the possibility to choose the imported file.
I walked around it temporarily, and I am forced there one file firmly.
Imported plugin will appear in the folder "C:\ProgramData\EventGhost\plugins".

Pako

bengalih
Posts: 48
Joined: Sat Feb 25, 2012 1:13 am

Re: A Plugin Plugin !!?

Post by bengalih » Tue Oct 06, 2015 10:23 pm

The import plugin is very flaky. Looking at the code it appears you need to specify a plugin to import with "-p" but it seems to work with simply specifying a plugin name at the prompt such as:

c:\program files (x86)\eventghost\eventghost.exe pluginname.egplugin

This works if EG is open. If it isn't, I'm not sure what's happening as it looks like it is hanging in the background. I tried this a few different times and sometimes out of nowhere (seemingly after minutes had passed) I would get the pop up asking if I wanted to import the plugin. I also found that I had sometimes 4-5 instances of EG running.

For instance, clicking on the .egplugin will always create the ProgramData\EventGhost\Plugin directory, but it doesn't appear to extract the plugin there.
It appears there might have to be an interactive GUI in order to give "consent" to install it.

I don't think this import mechanism is stable and can be relied upon in its present state.

The format of the .egplugin file might be useful, but unless we can fix the source to reliably import these files, and can instantiate the InstallPlugin() from within the code, I don't see a way to automate this.

User avatar
kgschlosser
Site Admin
Posts: 3113
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: A Plugin Plugin !!?

Post by kgschlosser » Thu Oct 08, 2015 12:03 am

Ideally there need to be a way to import a plugin without a restart or having multiple EventGhost processes running.

This has to be added to the Core EG source.

So.....

I am not sure who handles that but that is the one that that really needs to be done to leverage this system properly.

and also adding in the drop down menus ways of exporting/importing without using the command line.

Thanks

K
If you like the work I have been doing then feel free to Image

User avatar
kgschlosser
Site Admin
Posts: 3113
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: A Plugin Plugin !!?

Post by kgschlosser » Thu Oct 08, 2015 12:07 am

Oh, and that in it's self is the means to the solution, when an export option option is available there should be a way to enter the location. and in that location you could put in the information to point to where ever this repository is. and same goes for an import. it should have a default pointer to the repository or it can be changed if the user wants. then it will load a list of what is available.

if the forum actually hosts the repository a username and password that would be identical to what the forum is could be used to place the plugin. and only allow that user to modify that file.
If you like the work I have been doing then feel free to Image

pearbear
Experienced User
Posts: 150
Joined: Mon Apr 02, 2012 10:28 pm
Contact:

Re: A Plugin Plugin !!?

Post by pearbear » Fri Oct 09, 2015 9:19 am

I think making it easier for users to find and install plugins would be a great thing. I see two general approaches: making manual installation easier or creating a package manager system

Manual Installation:
  • Step 1: Find the plugin:
    • Forum topic
      • Make a forum section that is exclusively a list of plugins. The current one has many topics that are about plugin support(not surprisingly since that is the title of the topic). This makes it much more work to find plugins. Any thread created that doesn't contain a plugin or link to a plugin that has not previously been listed should be moved to a different topic. Requests for support on a specific plugin should only be allowed as replies in that plugin's topic.
      • Create plugin category subsections under the Plugins section. Move all plugin topics into the appropriate category subtopic. This will be some work for an admin but I'm willing to help by putting together a list of links to each topic separated into each category so then an admin would just have to go through the list and move each one.
      • The other issue I have with the current system is that searching the forum is so inefficient. I get a result for every post that matches my search query instead of just one result for the thread. This may be a limitation of the forum software.
    • Wiki
      • I think the wiki would be a good alternative to the Plugins forum section but I am unable to log in to the wiki even though I have been added to the wiki user group. As has been said before it has to be easy to use. It seems like EventGhost has used the forum to list plugins for so long that it will be hard to bring people around to the idea of listing their plugins on the wiki.
  • Step 2: Installation
    • The current plugin installation system is ok but I think the system proposed by bitmonster would make it much more beginner friendly.
Package Manager:
This would be the ideal solution for EventGhost users but it will take some cooperation from the plugin developers to make it work. It would be very useful if the package manager could do notifications of new versions of installed plugins. I don't see that there is any more of a security issue with a package manager over manual installation. It is the user's responsibility to decide whether the plugin is safe. I'm willing to help with testing, documentation, and adding support to plugins.
Arduino has recently added some similar features to their software that might be useful as examples:
  • Library Manager: Library developers add a library.properties file that provides metadata. The library must be in a repository on GitHub. They request that their library be added to the Library Manager and then the library is added to a JSON file on Arduino's server. The file is updated hourly so whenever a new version is tagged in the library repository it is added to the JSON file. Users can select libraries from a list that can be browsed by category or searched. When a new version of an installed library becomes available a notification appears and the user can update their library to the new version, they can also roll back the library to previous versions. See: https://github.com/arduino/Arduino/wiki ... cification
  • Boards Manager: This allows installation of 3rd party hardware support to the Arduino IDE. There is a slightly different approach here. The developer creates a JSON file and is responsible for hosting it and the install files. The user adds the URL of the JSON file for the hardware package they want to install and then Boards Manager downloads the JSON file and allows installation of any version. When the JSON file of an installed package is updated by the developer with a new version a notification appears that allows the user to update. See: https://github.com/arduino/Arduino/wiki ... cification

Post Reply