getmusicbee.com

MusicBee & Add-Ons => Customizations => Plugins => Topic started by: boroda on May 28, 2015, 08:36:54 PM

Title: Add-on Manager
Post by: boroda on May 28, 2015, 08:36:54 PM
IMPORTANT NOTE: I don't have enough time to maintain online repositories up to date. Let me know if somebody is willing to do this.



Description
Plugin allows to automatically install/update/uninstall plugins, skins, icons, etc.

How to install and use
Extract content of archive to plugins subfolder of MusicBee installation folder. Run AS ADMINISTRATOR "Setup Add-on Manager" (NOT the "Add-on Manager Setup Tool"!) from 'Plugins' folder. See 'Tools/Add-on Manager...' menu item. Ticked customizations will be installed/updated. Unticked customizations will be uninstalled. Grayed checkboxes mean that customization won't be touched.

To configure plugin go to 'Edit/Preferences/Plugins'.

NOTE 1:
You might want to maximize plugin window to see enlarged screenshots.

NOTE 2:
Although plugin is heavily based on Google Drive, you don't need to use or have Google account to download customizations.

NOTE 3:
First run of plugin may be very slow, but subsequent runs should be faster due to caching.

NOTE 4:
Application icons (unlike toolbar icons) are searched by MusicBee in 'MusicBee\Skins' folder by default, but plugin installs ALL icons to 'MusicBee\Icons' folder. This is not a problem actually, because you can select application icon not from default folder only.

NOTE 5:
If you have run 'Setup Add-on Manager' (as ADMINISTRATOR) from 'Plugins' folder and anyway are getting error:
Code
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext()
then manually change "<runtime/>" to:
Code
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
in file "C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config". You wil need admin rights to do this.

Screenshot
(https://www.mediafire.com/convkey/e361/rhp7d7ba7e8gvti6g.jpg)

License
Do all you want with plugin binary and source code at your own risk.

Download
Stable release, 2015-09-07, only for MusicBee 2.4 or later
Binary (http://www.mediafire.com/download/t9r1mjq8tfaqj96/mb_AddonManager_2015-09-07.zip)
Source code won't be published due to security reasons

Use the Latest Update (http://musicbee.wikia.com/wiki/Latest_Update) for full plugin functionality.

Version history
7 september, 2015
Title: Re: Add-on Manager
Post by: psychoadept on May 28, 2015, 10:01:36 PM
This is really exciting.  I'm glad you're working on it!
Title: Re: Add-on Manager
Post by: redwing on May 29, 2015, 03:00:17 AM
  • What is common file/folder structure for toolbar icons? Is it possible to download several toolbar icon packages at the same time?
Currently there's no support for customized icon set folders. I assume most users would store them in a sub-folder under \MusicBee\Icons\ folder. That's why I requested the following feature:

Also, consider making MB look for a icons sub-folder in the same name as selected skin first and use, if the folder is not present, icons in default icons folder. This would allow people to use various designs of icon sets supplied by skinners without any manual setup.

If that's implemented, then each icon set should use the same folder name as the skin under \MusicBee\Icons\ folder.

  • What is common file/folder structure for embedded and not embedded (how they are called correctly?) theater modes?
There's no official name for non-embedded TM views. BTW this is a good chance to correct the typo in the TM folder name from "embeded" to "embedded".

<Non-embedded TM view files>

TM view xml files (\MusicBee\Plugins\TheaterMode.List\)

- Optional
Background images  (\MusicBee\Plugins\TheaterMode.List\SharedArtwork\custom folder\)
Icon images (\MusicBee\Plugins\TheaterMode.List\Images\custom folder\)

<Embedded TM view files>
TM view xml files (\MusicBee\Plugins\TheaterMode.Embeded\)

- Optional
Background images  (\MusicBee\Plugins\TheaterMode.Embeded\SharedArtwork\custom folder\)
Icon images (\MusicBee\Plugins\TheaterMode.Embeded\Images\custom folder\)

Maybe we should ask skinners to use the same folder name as the TM view.
Title: Re: Add-on Manager
Post by: Bee-liever on May 31, 2015, 03:26:17 AM
What a great plug-in idea!

  • What is common file/folder structure for visualizations?
\MusicBee\Plugins\ and are in the form vis_*.dll

The exception being 'Milkdrop' visualizations. The *.milk files going in
\MusicBee\Plugins\Milkdrop2\presets\

Install a fresh copy of MB to some WRITABLE folder (e.g. desktop).

Can I use a portable version of MB on a USB drive here?

  • What is common file/folder structure for toolbar icons? Is it possible to download several toolbar icon packages at the same time?
Currently there's no support for customized icon set folders.

redwing is correct. All toolbar icon sets get lumped together in \MusicBee\Icons\ and the only current way to "download several toolbar icon packages at the same time" is to have a unique name for every icon.
Title: Re: Add-on Manager
Post by: redwing on May 31, 2015, 09:04:48 AM
I just tested this plugin, but the two points you made seem to be a big hassle for any user.

  • Its recommended to create new Google account to use with this plugin because plugin will delete ALL files on Google drive when it uploads files.
  • Google drive INITIALIZATION is very slow. I cache all I can cache, but this doesn't help much. Also, the less online repositories exist, the better download performance (but worse upload performanse) is.
For me, it takes about 4 minutes to initialize whenever I open the plugin. Not sure how longer it would take if people start uploading stuff. Creating an additional Google account dedicated just to this plugin is another issue (for developers).

What other online repository options do we have except for Google drive?
Title: Re: Add-on Manager
Post by: boroda on June 01, 2015, 02:40:32 PM
Can I use a portable version of MB on a USB drive here?
yes. actually i've tested this plugin only with portable version of mb, but i'll be glad  if somebody tests this plugin with non-portable version later (when i'll upload new fixed version).
Title: Re: Add-on Manager
Post by: boroda on June 01, 2015, 02:58:32 PM
For me, it takes about 4 minutes to initialize whenever I open the plugin. Not sure how longer it would take if people start uploading stuff.
it seems i've found the way i could speed up google drive siggnificanly. not sure though,
Creating an additional Google account dedicated just to this plugin is another issue (for developers).
i could fix this when i publish final version.
What other online repository options do we have except for Google drive?
i want to add support for any customizations available.
Title: Re: Add-on Manager
Post by: redwing on June 01, 2015, 05:56:55 PM
OK. I'll test again with the new version.
Title: Re: Add-on Manager
Post by: boroda on June 02, 2015, 10:58:42 AM
New version released
Instructions and download link are updated in the 1st post of this topic.

What's new:


TO DO:
Now plugin has the status of 'beta'. Please test it. Also please test uploading.
Title: Re: Add-on Manager
Post by: redwing on June 02, 2015, 03:10:20 PM
The new version fails to initialize with the following error:

6.1.7601.65536 - 2.5.5606.32711 - System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)

From the second time, I get this (without the above error) and the initialization never ends.

6.1.7601.65536 - 2.5.5606.32711 - System.IO.FileNotFoundException: Could not find file 'D:\MB\AppData\MusicBee Add-on Manager\emptyfile'.
File name: 'D:\MB\AppData\MusicBee Add-on Manager\emptyfile'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
   at System.IO.File.Copy(String sourceFileName, String destFileName)
   at MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root)
   at MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   at MusicBeePlugin.MainWindow.MainWindow_Shown(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Form.CallShownEvent()
   at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
Title: Re: Add-on Manager
Post by: redwing on June 02, 2015, 03:20:26 PM
BTW can't you use a sub-folder for this plugin? I don't really like to put theses 28 files under \Plugins\ folder where some files are overlapped with files from other plugins. It's quite a mess to the extent that I can't even figure out which files are for which plugin.
Title: Re: Add-on Manager
Post by: boroda on June 03, 2015, 05:17:52 AM
The new version fails to initialize with the following error:

6.1.7601.65536 - 2.5.5606.32711 - System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)

From the second time, I get this (without the above error) and the initialization never ends.

6.1.7601.65536 - 2.5.5606.32711 - System.IO.FileNotFoundException: Could not find file 'D:\MB\AppData\MusicBee Add-on Manager\emptyfile'.
File name: 'D:\MB\AppData\MusicBee Add-on Manager\emptyfile'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
   at System.IO.File.Copy(String sourceFileName, String destFileName)
   at MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root)
   at MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   at MusicBeePlugin.MainWindow.MainWindow_Shown(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Form.CallShownEvent()
   at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
http://www.mediafire.com/download/lgi3a3pc4tcas5a/mb_AddonManager_2015-06-03.zip
Title: Re: Add-on Manager
Post by: boroda on June 03, 2015, 05:18:44 AM
BTW can't you use a sub-folder for this plugin?
i'm afraid, no. at least i don't know to do this.
Title: Re: Add-on Manager
Post by: redwing on June 03, 2015, 02:35:34 PM
Initialization and uploading worked fine, except for taking too long.

- Can't close/exit the plugin while it's connecting or retrieving. Have to kill MB process
- Keys assigned to hotkeys are unusable while entering text into the plugin window
- Would be nice if available buttons gets highlighted when at least one item gets ticked
- No legend shown for any items
- Not sure what these buttons are meant to do: clean removed, reset all, apply all pages
- Gets the following error from clicking on mark updated, clean removed, reset all buttons

MusicBee v2.5.5606.32711 (Win6.1)

System.InvalidCastException: Unable to cast object of type 'System.Windows.Forms.Button' to type 'System.Windows.Forms.DataGridView'.
   at MusicBeePlugin.MainWindow.markUpdatedButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Title: Re: Add-on Manager
Post by: boroda on June 03, 2015, 05:35:07 PM
- Can't close/exit the plugin while it's connecting or retrieving. Have to kill MB process
- Keys assigned to hotkeys are unusable while entering text into the plugin window
yes, these are known issues. i'll fix them later, after adding support for theater modes and toolbar icons.
- Would be nice if available buttons gets highlighted when at least one item gets ticked
don't understand what you mean
- No legend shown for any items
this should work, but icons are displayed only for installed plugins/skins
- Not sure what these buttons are meant to do: clean removed, reset all, apply all pages
clear removed - mark for uninstallation customizations which are not available online anymore
reset all - change status of all customizations to 'do not touch them'
apply all pages - apply all changes on all pages (i.e install/uninstall/update according to your marks)
- Gets the following error from clicking on mark updated, clean removed, reset all buttons

MusicBee v2.5.5606.32711 (Win6.1)

System.InvalidCastException: Unable to cast object of type 'System.Windows.Forms.Button' to type 'System.Windows.Forms.DataGridView'.
   at MusicBeePlugin.MainWindow.markUpdatedButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
its fixed

http://www.mediafire.com/download/z7r3tgw7tbqg0wk/mb_AddonManager_2015-06-03-2.zip
Title: Re: Add-on Manager
Post by: redwing on June 03, 2015, 06:32:17 PM
apply all pages - apply all changes on all pages (i.e install/uninstall/update according to your marks)

No longer gets the error. But still don't get how to use. How can I mark them differently to install some items and uninstall other items?
Title: Re: Add-on Manager
Post by: boroda on June 03, 2015, 07:16:39 PM
if plugin/skin is not installed, then ticking item will install it. if its installed then unticking will uninstall it. if item is installed and update is available then checkbox will have 3 states: update, don't touch, uninstall.
Title: Re: Add-on Manager
Post by: redwing on June 03, 2015, 07:51:34 PM
if plugin/skin is not installed, then ticking item will install it. if its installed then unticking will uninstall it. if item is installed and update is available then checkbox will have 3 states: update, don't touch, uninstall.

That works, but it doesn't seem obvious nor safe and convenient to use. It's prone to a disaster to end up uninstalling lots of items unintentionally. Also users have to check every item carefully every time just to make a small change.

How about offering "install", "update" and "remove" buttons (instead of apply all pages button) for ticked items while unticked always means "don't touch"? Then users would have to run commands two times for updating and removing items instead of doing once with the current setup, but it would be safer and easier.
Title: Re: Add-on Manager
Post by: boroda on June 03, 2015, 09:33:57 PM
maybe your solution is more safe, but, i think, isn't more obvious. see yourself:

my solution - unticked items will either uninstalled (if they are installed) or will stay not installed (if they are not installed). ticked items will be updated (either installed or just updated). greyed out items will be untouched. but of course i should place more info in plugin's description section.

your solution - suppose user has ticked both installed and not installed items, then has clicked 'install' button. what plugin should do with installed items? just skip them? i don't think its obvious.

i don't disregard you solution, i just want that either you convict me or you agree with me.
Title: Re: Add-on Manager
Post by: redwing on June 03, 2015, 10:18:45 PM
The major issue with the current solution is, as I said, the user has to make sure what's ticked and what's unticked for every item every time.

your solution - suppose user has ticked both installed and not installed items, then has clicked 'install' button. what plugin should do with installed items? just skip them? i don't think its obvious.

It should reinstall them, if already installed. BTW I don't see much differences between install and update with available MB customizations. Maybe install/update can be one button, remove the other button.

Also color marking can be confusing. I would prefer tick/untick regardless of legend.
Title: Re: Add-on Manager
Post by: boroda on June 04, 2015, 04:42:13 AM
The major issue with the current solution is, as I said, the user has to make sure what's ticked and what's unticked for every item every time.
yes, but all boxes are ticked/unticked by defualt automatically so that nothing will be done. i.e. user has to change something manually for some action to be done.

if you still consider that your solution is better i'll implement it.
Title: Re: Add-on Manager
Post by: redwing on June 04, 2015, 07:58:25 AM
all boxes are ticked/unticked by defualt automatically so that nothing will be done. i.e. user has to change something manually for some action to be done.

That's what I assumed. I never said the user has to tick/untick all items every time. But the user has to make sure every item is correctly marked. Consider you want to remove some plugins. Currently, instead of selecting those, you have to unselect those, making them look the same as not-installed ones. It won't be easy to know what you have unselected so far while you're doing that.

Maybe you already saw, but check out how Notepad++'s plugin manager works. We could also wait to hear what other users have to say.
Title: Re: Add-on Manager
Post by: boroda on June 04, 2015, 09:18:48 AM
anybody?
Title: Re: Add-on Manager
Post by: hiccup on June 04, 2015, 11:25:55 AM
I am only slightly following this thread with some interest, but am afraid have not much useful knowledge or input.
The only thought that now comes to my mind is that ideally your plug-in would 'know' what plugins/skins/icon-sets etc. are actually installed.
(like the 'remove programs' functionality of Windows)
But then there probably would have to be made some changes to MusicBee itself by Steven.

It might be sensible to learn Steven's thoughts about your add-on-manager. If he is supportive, and is willing to accommodate you with some changes, it might be better to wait for that before you spend much time on things that you will might have to change later on?

But to answer your question about the discussion you have with redwing, I think I have a preference for the way how you intend the check boxes to work.
Title: Re: Add-on Manager
Post by: boroda on June 04, 2015, 12:12:28 PM
plugin already know which customization are installed and even which files are installed with given customization (so that files could be overlapped without any risk of accidentally deletion when you uninstall customization).

But to answer your question about the discussion you have with redwing, I think I have a preference for the way how you intend the check boxes to work.
me or redwing?
Title: Re: Add-on Manager
Post by: Bee-liever on June 04, 2015, 12:17:59 PM
Sorry boroda74,
Can't add anything to the discussion at the moment as I haven't had time to test out the plugin yet.

Will test it out over the weekend and post my thoughts then.

Thanks for your work so far  :)
Title: Re: Add-on Manager
Post by: boroda on June 04, 2015, 12:34:43 PM
ok, i'll wait for more opinions ))
Title: Re: Add-on Manager
Post by: hiccup on June 04, 2015, 01:25:38 PM
me or redwing?

I was addressing the creator ;-)
Title: Re: Add-on Manager
Post by: Bee-liever on June 08, 2015, 01:48:09 PM
I'm OK with how the icons and boxes ticked/unticked are currently working.
I suppose it will be easier to judge when a few plugins and skins are actually loaded.

The main drawback I find is the speed.  Very slow.
Maybe it could check in the background and open if updates are available?

Also, couldn't get descriptions/versionhistories to load.
Are they supposed to be saved as en.rtf or en.txt?
Title: Re: Add-on Manager
Post by: boroda on June 09, 2015, 08:26:49 PM
en.rtf's
Title: Re: Add-on Manager
Post by: Bee-liever on June 09, 2015, 11:56:18 PM
en.rtf's

Thanks boroda, will have another go.

Would it make any difference, speed-wise, if the plugin was split in to two separate plugins?
One for users to update their plugins/skins and the other for developers to use for maintenance of their work.
Title: Re: Add-on Manager
Post by: boroda on June 10, 2015, 04:38:03 PM
No. I'm trying to speed up plugin now, but wouldn't expect too much of this.
Title: Re: Add-on Manager
Post by: boroda on August 02, 2015, 01:20:58 PM
Next version released:
http://www.mediafire.com/download/iklj7nxtlotox3z/mb_AddonManager_2015-08-02.zip


Title: Re: Add-on Manager
Post by: boroda on August 02, 2015, 10:14:23 PM
Update:
http://www.mediafire.com/download/zmbv8a0hmq1bi8v/mb_AddonManager_2015-08-03.zip



I want to remind that you can safely use regular google account (not specially created for this plugin).
Title: Re: Add-on Manager
Post by: Bee-liever on August 03, 2015, 07:42:44 AM
Update:

Getting this error:
Code
03/08/2015 4:38:38 PM - 6.1.7601.65536 - 2.5.5606.32711 - System.MissingMethodException: Method not found: 'StorageApi.StorageApiFile StorageApi.StorageApiFile.FetchAllFiles(StorageApi.GoogleDrive, System.String)'.
   at MusicBeePlugin.MainWindow.MainWindow_Shown(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Form.CallShownEvent()
   at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
Title: Re: Add-on Manager
Post by: boroda on August 03, 2015, 09:17:55 AM
try this version:
http://www.mediafire.com/download/lxwak5yjbq2kc3b/mb_AddonManager_2015-08-03-2.zip
Title: Re: Add-on Manager
Post by: Bee-liever on August 03, 2015, 01:52:29 PM
Yes! Thank you!    :)    Works great now.

Speed on checking with plugin is reasonably fast now.
Uploading changes to repository was quick.
Speed for downloading updates seems to vary.  Update of 1 skin and 1 plugin went fast.
Updating of same skin with newer uploaded version was slow.   ???

Maybe (http://i.cubeupload.com/bevr96.png) would be better than (http://i.cubeupload.com/zqSE8u.png) for when no updates are needed?
Title: Re: Add-on Manager
Post by: boroda on August 03, 2015, 02:35:08 PM
yes, its better :) where did you take this icon?
Title: Re: Add-on Manager
Post by: boroda on August 03, 2015, 02:46:21 PM
some bugfixes, source code cleanup, new 'UpToDate' icon:

http://www.mediafire.com/download/xvjvdbx3bur31yu/mb_AddonManager_2015-08-03-3.zip

EDIT: plugin settings are added - go to edit> preferences> plugins
Title: Re: Add-on Manager
Post by: Mr. Trev on August 03, 2015, 06:12:54 PM
Tried to give this a try. Don't know what I did wrong, but I get this error. Using version from above post

MusicBee v2.5.5690.35849 (Win6.1), 3 Aug 2015 11:09:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Title: Re: Add-on Manager
Post by: boroda on August 03, 2015, 06:22:46 PM
suggest that you hadn't run 'Setup Add-on Manager' (as ADMINISTRATOR) from 'plugins' folder.
Title: Re: Add-on Manager
Post by: Bee-liever on August 03, 2015, 11:44:43 PM
yes, its better :) where did you take this icon?

Icon from https://www.iconfinder.com/iconsets/fatcow (https://www.iconfinder.com/iconsets/fatcow)

new icon shows in legend but not in column
(http://i.cubeupload.com/3IPEhR.jpg)
Title: Re: Add-on Manager
Post by: boroda on August 04, 2015, 05:56:27 AM
i forgot to update icon in archive, fixed now:
http://www.mediafire.com/download/jmv37a8wjl10pea/mb_AddonManager_2015-08-03-4.zip
Title: Re: Add-on Manager
Post by: Bee-liever on August 04, 2015, 05:59:54 AM
reloading repository no longer updates existing files that have had changes made to them.
Items have to be deleted and then re-added and then repository updated to make a change.

also, what is maximum best or preferred size for screenshots please.  :)
Title: Re: Add-on Manager
Post by: Mr. Trev on August 04, 2015, 03:50:10 PM
suggest that you hadn't run 'Setup Add-on Manager' (as ADMINISTRATOR) from 'plugins' folder.

Nope did that - a couple of times, just to be sure.

After i click ok, the plugin seems to get stuck on the connecting process
Title: Re: Add-on Manager
Post by: boroda on August 04, 2015, 04:24:28 PM
@Mr. Trev
try to manually change "<runtime/>" to:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

in file "C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config"
Title: Re: Add-on Manager
Post by: boroda on August 04, 2015, 04:31:47 PM
reloading repository no longer updates existing files that have had changes made to them.
Items have to be deleted and then re-added and then repository updated to make a change.
not sure if i unerstood you correctly, but new behavior is:

file are uploaded in any case as previously, but downloaded to temp folder files overwrite existing installed files only if their modification date-time is more than modication date-time of existing installed files. also modification date-time of whole uploaded customization should be more than modification date-time of installed customization.

also, what is maximum best or preferred size for screenshots please.  :)
there is no recommended size unlike icon, screenshots are resizied automatically. i think its better to maximize main plugin window to enlage screenshots.
Title: Re: Add-on Manager
Post by: Mr. Trev on August 04, 2015, 09:30:32 PM
@Mr. Trev
try to manually change "<runtime/>" to:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

in file "C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config"


That did the trick. Thanks
Title: Re: Add-on Manager
Post by: Bee-liever on August 04, 2015, 11:14:12 PM
reloading repository no longer updates existing files that have had changes made to them.
Items have to be deleted and then re-added and then repository updated to make a change.
not sure if i unerstood you correctly, but new behavior is:

file are uploaded in any case as previously, but downloaded to temp folder files overwrite existing installed files only if their modification date-time is more than modication date-time of existing installed files. also modification date-time of whole uploaded customization should be more than modification date-time of installed customization.

With Update 2015-08-03-2
>Developer Tools
>Edit skin eg. add screenshot
>Upload repository
>Close Developer Tools
>Add-on manager shows updated changes to skin profile

With Update 2015-08-03-4, above process doesn't work.
To get skin profile to update
>Developer Tools
>Delete skin you want to change
>Upload repository
>Close Developer Tools and wait for add-on manager to update
>Developer Tools
>Add skin back in with updated information
>Upload repository
>Close Developer Tools
>Add-on manager shows new skin profile with updated information
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 07:27:33 AM
are you sure that you MANUALLY changed customization modification date in developer tools?
Title: Re: Add-on Manager
Post by: Bee-liever on August 05, 2015, 08:36:51 AM
are you sure that you MANUALLY changed customization modification date in developer tools?

Yes.
But it can only be done once a day.
If you make a mistake, or decide to add a second screenshot, you can't edit the file in the repository immediately without deleting the file and starting over or waiting till the next day.
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 12:09:08 PM
i would recommend to set tomorrow date in this case
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 12:36:04 PM
New beta released:
http://www.mediafire.com/download/0dpa5kw363b9kl3/mb_AddonManager_2015-08-03-5.zip

Upgrade instructions for developers:
Note:
For visualization (which should be uploaded as regular plugins), icons, theater modes and sometimes for regular plugins you will need non-flat hierarchical folder/file structure. To do this just create in your source folder necessary subfolders, place required files in these subfolders and shorten base path to source folder for every file, e.g. if you want to install 'MySkin.xml' from 'SomeSourceFolder' to 'MusucBee\Skins\My Skins\' folder instead of 'MusicBee\Skins\', create 'My Skins' subfolder in 'SomeSourceFolder', place 'MySkin.xml' into 'SomeSourceFolder\My Skins' and define base path for 'MySkin.xml' as 'SomeSourceFolder'. See folder/file structure below for Additional Tagging and Reporting Tools plugin as an example:

(http://www.mediafire.com/convkey/f17d/wkdwc9xxc0krc6x6g.jpg) (http://www.mediafire.com/view/wkdwc9xxc0krc6x/am_devtools.png)
Title: Re: Add-on Manager
Post by: Bee-liever on August 05, 2015, 12:37:02 PM
i would recommend to set tomorrow date in this case

OK
Title: Re: Add-on Manager
Post by: Mr. Trev on August 05, 2015, 04:18:29 PM
Maybe since I'm asking this question means I shouldn't be doing it, but how do you open developers tools? I don't have that gear icon anymore
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 04:24:33 PM
Create empty file 'DevMode.txt' in 'Plugins' folder.
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 04:28:09 PM
Last beta is considered to be a release candidate and will be 1st public release if no bugs are found. 1st page of this topic is updated.

PLEASE HOST YOUR AND ABANDONED CUSTOMIZATIONS! THIS PLUGIN IS USELESS WITHOUT UPLOADERS.
Title: Re: Add-on Manager
Post by: boroda on August 05, 2015, 05:52:18 PM
Release Candidate 2, version 4.0.5695, 2015-03-05, only for MusicBee 2.4 or later
Binary (http://www.mediafire.com/download/h6clc7xr8unlx1j/mb_AddonManager_2015-08-03-5-2.zip)

Title: Re: Add-on Manager
Post by: de.cayed on August 07, 2015, 03:36:16 AM
Every time I try to use the add-on manager I get this error message:


MusicBee v2.5.5690.35849 (Win6.1), 6 Aug 2015 22:34:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Title: Re: Add-on Manager
Post by: hamma on August 07, 2015, 06:58:17 AM
Same here:

MusicBee v2.5.5690.35849 (Win6.2), 7 Aug 2015 7:57:

System.IO.FileNotFoundException: Die Datei oder Assembly "System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: "System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
   bei Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   bei Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext()

WRN: Protokollierung der Assemblybindung ist AUS.
Sie können die Protokollierung der Assemblybindungsfehler aktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) auf 1 festlegen.
Hinweis: Die Protokollierung der Assemblybindungsfehler führt zu einer gewissen Leistungseinbuße.
Sie können dieses Feature deaktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] entfernen.
Title: Re: Add-on Manager
Post by: boroda on August 07, 2015, 08:29:21 AM
@de.cayed, @hamma, run 'Setup Add-on Manager' (as ADMINISTRATOR) from 'plugins' folder. if this don't do the trick then manually change "<runtime/>" to:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

in file "C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config"
Title: Re: Add-on Manager
Post by: hamma on August 07, 2015, 08:35:20 AM
I ran the setup as administrator.
Manually editiing did the trick.

Thanks
Title: Re: Add-on Manager
Post by: boroda on August 07, 2015, 09:29:05 AM
it seems to be very common error. cant understand why. I've updated installation instructions on the 1st post.
Title: Re: Add-on Manager
Post by: de.cayed on August 07, 2015, 01:00:51 PM
I ran it as administrator the first time, but manually editing it worked. Thank you! :)
Title: Re: Add-on Manager
Post by: boroda on August 08, 2015, 06:16:31 PM
Release Candidate 3 is published, version 4.0.5698
Binary (http://www.mediafire.com/download/khoxxc5slhqauk8/mb_AddonManager_2015-08-08.zip)

Title: Re: Add-on Manager
Post by: phred on August 08, 2015, 06:50:40 PM
If there anyway to rig this plugin so all its files can be in a subdirectory of the plugins folder?
MusicBee\Plugins\Add-on Manager
Title: Re: Add-on Manager
Post by: boroda on August 08, 2015, 08:48:02 PM
i'm afraid its not possible without support by Steven.
see this thread:
http://getmusicbee.com/forum/index.php?topic=15776.0
Title: Re: Add-on Manager
Post by: boroda on August 08, 2015, 08:49:50 PM
Release Candidate 4 is published, version 4.0.5698
Binary (http://www.mediafire.com/download/h6w2kcwi26a3ics/mb_AddonManager_2015-08-08-2.zip)


Title: Re: Add-on Manager
Post by: phred on August 08, 2015, 09:11:19 PM
i'm afraid its not possible without support by Steven.
see this thread:
http://getmusicbee.com/forum/index.php?topic=15776.0
Sorry to hear that as it's the one thing keeping me from trying out this plugin.
But thanks for the link.  I +1'd it.
Title: Re: Add-on Manager
Post by: boroda on August 12, 2015, 07:52:23 AM
@somebody
thanks for uploading 2 toolbar icon packs!
Title: Re: Add-on Manager
Post by: Bee-liever on August 12, 2015, 08:01:24 AM
I started to upload some icons, skins and theater modes, but I'm still finding the speed of the plugin an issue.
It seems the more that is uploaded to the repository, the more the performance suffers.  :(

Would putting the plugin and repositories on Github be a viable alternative?
I know they have usage limits, but it's something like 5,000 requests an hour.
I don't think  the Add-on Manager is in that league yet.  :)
Title: Re: Add-on Manager
Post by: boroda on August 12, 2015, 07:18:03 PM
I don't want to publish plugin source code for security reasons, but i have some ideas how to speed up plugin more.
Title: Re: Add-on Manager
Post by: Bee-liever on August 12, 2015, 11:25:01 PM
OK.  Will wait and see how your ideas work out.
Title: Re: Add-on Manager
Post by: boroda on August 18, 2015, 11:45:31 AM
Initial public release, version 4.0.5708:
http://www.mediafire.com/download/aqrk6i7pa3rg1q7/mb_AddonManager_2015-08-18.zip

Note for developers: its not required, but recommended to delete all plugin related files/folders from your Google Drive using your browser and reupload customizations using latest plugin version.
Title: Re: Add-on Manager
Post by: Bee-liever on August 18, 2015, 01:43:15 PM
Getting this error
Code
MusicBee v2.5.5707.30422 (Win10.0), 18 Aug 2015 22:41:

System.NullReferenceException: Object reference not set to an instance of an object.
   at MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root)
   at MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   at MusicBeePlugin.MainWindow.MainWindow_Shown(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Form.CallShownEvent()
   at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
Title: Re: Add-on Manager
Post by: boroda on August 18, 2015, 08:34:24 PM
@Bee-liever, try this version:
http://www.mediafire.com/download/k4accunoo1flg7t/mb_AddonManager_2015-08-18-2.zip
Title: Re: Add-on Manager
Post by: Bee-liever on August 18, 2015, 11:34:41 PM
Working OK again now  :)

Will upload some skins, icons, etc and see how it goes, speed-wise, on this version.

Thank you again for all your work on this.
Title: Re: Add-on Manager
Post by: nogoya2002 on August 22, 2015, 10:53:39 PM
please portable version ;D ;D
Title: Re: Add-on Manager
Post by: boroda on August 23, 2015, 01:35:17 PM
what do you mean by portable version? plugin already uses MusicBee\AppData folder like mb itself for storing settings and cache if mb is portable.
Title: Re: Add-on Manager
Post by: boroda on September 01, 2015, 03:43:36 AM
New version released:
http://www.mediafire.com/download/e6mwll8310u00ru/mb_AddonManager_2015-09-01.zip

NOTE:
First run of plugin may be very slow, but subsequent runs should be much faster due to caching.
Title: Re: Add-on Manager
Post by: boroda on September 01, 2015, 03:45:11 AM
well, it seems that almost nobody wants to host customizations, so i've uploaded all available skins. will upload icons and theater modes later this week.
Title: Re: Add-on Manager
Post by: hamma on September 01, 2015, 03:45:45 AM
Thanks for your work.
Title: Re: Add-on Manager
Post by: boroda on September 01, 2015, 04:02:03 AM
@Bee-liever
if you want to host your customizations then i'll remove them from my repository, so we wont need to keep in sync our repositories.

i would recommend you to give friendly names for skins like 'Bee-liever: skin name' and install them to 'MusicBee\Skins\Bee-liever' folder (see 1st post on this topic for instructions).
Title: Re: Add-on Manager
Post by: Bee-liever on September 01, 2015, 12:13:34 PM
@Bee-liever
if you want to host your customizations then i'll remove them from my repository, so we wont need to keep in sync our repositories.

I'll leave you to host them for now.
I've got a few things happening at the moment, and have not had the time to add more to my repository.
Will take over maintenance of my stuff when things settle down and I have more free time again.



Also getting this error when applying updates:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\Bee-liever\AppData\Local\MusicBee\MusicBee Add-on Manager\FilesToDelete.xml'

FilesToDelete.xml and all other AppData for MB is located in:
C:\Users\Bee-liever\AppData\Roaming\MusicBee\


Title: Re: Add-on Manager
Post by: boroda on September 01, 2015, 01:41:20 PM
try this version:
http://www.mediafire.com/download/daid2ndhajsodla/mb_AddonManager_2015-09-01-2.zip
Title: Re: Add-on Manager
Post by: Bee-liever on September 02, 2015, 12:04:13 AM
2015-09-01-2.zip works for me.  Thank you.

Organizing the skins by the creators name is great in the Add-on Manager but I don't think it works to install them into MB like that.

It doesn't follow the colour folders that Steven has already set out for the included skins and it lumps skin sets together making it hard to work out what goes together in the same style.



Title: Re: Add-on Manager
Post by: boroda on September 02, 2015, 05:01:13 AM
Organizing the skins by the creators name is great in the Add-on Manager but I don't think it works to install them into MB like that.

It doesn't follow the colour folders that Steven has already set out for the included skins and it lumps skin sets together making it hard to work out what goes together in the same style.
i agree, but its too hard for me to organize skins by style, because ALL skins should be organized by style in this case. maybe creators themselves could organize skins that way, but nobody has a time/willing to do this ((((
Title: Re: Add-on Manager
Post by: Bee-liever on September 02, 2015, 10:27:33 PM
i agree, but its too hard for me to organize skins by style, because ALL skins should be organized by style in this case. maybe creators themselves could organize skins that way, but nobody has a time/willing to do this ((((

Then please remove my skins from your repository and I will load and organize them as time permits.

I think the Add-on Manager is useless for skins if it doesn't conform to the folder structure already in place, especially when you have loaded skins that are included in the installation of MusicBee.

Don't get me wrong, I appreciate the time and effort you have put into this plugin and I believe it's a great addition to MB, but if you want to have all the categories filled and you can't wait for authors to load and organize their skins correctly, then you are the one that has to set them up correctly so they don't clash with the existing folder structure.
Title: Re: Add-on Manager
Post by: boroda on September 02, 2015, 11:45:52 PM
Then please remove my skins from your repository and I will load and organize them as time permits.
i'll leave them for now, but let me know when you are ready to host your skins and i'll remove them. i foresee no incompatibility issues. skins hosted by me could be easily uninstalled later even if they will have removed from my repository and skins which you will host could be installed, even they are the same skins.
Title: Re: Add-on Manager
Post by: boroda on September 03, 2015, 12:47:21 PM
----
Title: Re: Add-on Manager
Post by: boroda on September 03, 2015, 12:47:42 PM
New version released:
http://www.mediafire.com/download/50kzd0rbxdrcpdb/mb_AddonManager_2015-09-03.zip

NOTE:
Application icons (unlike toolbar icons) are searched by MusicBee in 'MusicBee\Skins' folder by default, but plugin installs ALL icons to 'MusicBee\Icons' folder. This is not a problem actually, because you can select application icon not from default folder only.
Title: Re: Add-on Manager
Post by: boroda on September 03, 2015, 12:48:16 PM
i've upoladed all available icons.
Title: Re: Add-on Manager
Post by: boroda on September 03, 2015, 12:48:35 PM
@Bee-leiver
I think the Add-on Manager is useless for skins if it doesn't conform to the folder structure already in place, especially when you have loaded skins that are included in the installation of MusicBee.
actually such skins must be removed from online repositories, it was not intended. could you enumerate them?
Title: Re: Add-on Manager
Post by: Mephisto on September 03, 2015, 07:02:11 PM
Hi,
I'm having this error:

MusicBee v2.5.5721.12459 (Win6.1), 3 sept. 2015 19:56:

System.UnauthorizedAccessException:  Access to the path 'C:\Program Files (x86)\MusicBee\Plugins\[email protected]' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at StorageApi.StoredResponse.Save()
   at StorageApi.GoogleDrive..ctor(String clientId, String clientSecret, String dataFolder, String dataFileName)
   at MusicBeePlugin.MainWindow.MainWindow_Shown(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Form.CallShownEvent()
   at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
Title: Re: Add-on Manager
Post by: boroda on September 03, 2015, 07:22:05 PM
for now check if you have read access to file 'C:\Program Files (x86)\MusicBee\Plugins\[email protected]'. if you do, then give full access to this file (temporary). but i anyway will test plugin with non-portable mb on weekend.
Title: Re: Add-on Manager
Post by: Mephisto on September 03, 2015, 07:51:40 PM
It worked, thanks!
Although I am on admin session, it uses the regular user authorisations.
I gave the file total access for the first launch, and it worked. After that, I came back to default authorisations, and it seems to work too (I was able to install a plugin).
Title: Re: Add-on Manager
Post by: Bee-liever on September 04, 2015, 12:46:03 AM
@Bee-leiver
I think the Add-on Manager is useless for skins if it doesn't conform to the folder structure already in place, especially when you have loaded skins that are included in the installation of MusicBee.
actually such skins must be removed from online repositories, it was not intended. could you enumerate them?

These are the skins included in the current 2.5 release:

Blue
(http://i.imgur.com/4M8Nbfk.jpg)

Dark
(http://i.imgur.com/G0sOyxJ.jpg)

Multi-Color
(http://i.imgur.com/syvIy8F.jpg)

Neutral
(http://i.imgur.com/47Fr5CB.jpg)

you also have the skin sets
Dark-Fine Tuned by redwing
Dark-Metro Series by Endeavour1934
Pastels by redwing
Title: Re: Add-on Manager
Post by: boroda on September 05, 2015, 03:05:53 PM
@Bee-leiver
thank you for finding skin duplicates. i also have found some duplicates.

@all
i've removed 'default' skins (which are included to mb 2.5 installation package) from my repository. they had been uploaded accidentally.
Title: Re: Add-on Manager
Post by: boroda on September 05, 2015, 09:07:03 PM
New plugin version released:
http://www.mediafire.com/download/mm9qnccnp8ouwmg/mb_AddonManager_2015-09-05.zip

Title: Re: Add-on Manager
Post by: Mephisto on September 06, 2015, 09:21:23 AM
Just a suggestion, but it could be useful to have a "cancel" button when the plugin is retrieving data, since it can be quite long, and the musicbee window is blocked during that time.
Title: Re: Add-on Manager
Post by: boroda on September 06, 2015, 12:16:12 PM
i really don't want to use background thread for access to inet. this always causes much problems. instead i've added prepared cache to plugin package, so 1st run of plugin should be as fast as subsequent runs of plugin.

maybe i'll add multitheading later.
Title: Re: Add-on Manager
Post by: boroda on September 07, 2015, 04:47:41 AM
i really don't want to use background thread for access to inet. this always causes much problems.
i've changed my mind. now retrieving metadata from Internet may be canceled. but canceling may take some time (downloading of metadata of current customization must be completed):
http://www.mediafire.com/download/t9r1mjq8tfaqj96/mb_AddonManager_2015-09-07.zip
Title: Re: Add-on Manager
Post by: Bee-liever on September 07, 2015, 09:20:07 AM
I know you have done a lot of work on this to make it faster using Google Drive, but have you considered using Microsoft OneDrive?

With the release of Windows 10, changes have been made to the API to make it easier and faster to access data stored on OneDrive.

Microsoft have also stated they will continue to streamline the API calls for data checking as they want to make it as easy as possible for developers to store their apps data there.
Title: Re: Add-on Manager
Post by: boroda on September 07, 2015, 10:39:45 AM
i'll try to investigate this, but onedrive api probably significantly differs from google drive one. if this is so then i don't want to rewrite plugin without guarantee that speed will be noticeably improved.
Title: Re: Add-on Manager
Post by: Bee-liever on September 08, 2015, 05:05:54 AM
i'll try to investigate this

OK. Will wait patiently to hear the result.  :)
Title: Re: Add-on Manager
Post by: Mephisto on September 08, 2015, 11:28:40 AM
Hi, I have the following error when I try to uninstall plugins (I tried with Last.fm Playing Track Data (not a dll plugin, but still has the problem), Last.fm Playlist generator, and Last.fm Similar tracks.



MusicBee v2.5.5721.12459 (Win6.1), 8 sept. 2015 12:12:

System.NullReferenceException: Object reference not set to an instance of an object.
   at MusicBeePlugin.MainWindow.UninstallItem(String sectionName, CustomizationEntry entry)
   at MusicBeePlugin.MainWindow.applyButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Title: Re: Add-on Manager
Post by: WannaBee on September 08, 2015, 12:19:23 PM
Thank you very much for your plugin, Add-on Manager, which I installed for the first time a little while ago.

I have yet to get it running properly, as retrieving the metadata does not progress beyond about 50%, leading me to cancel the process. Repeated starts delivers the same result.

I appreciate any advice given.

[EDIT] Please ignore. It eventually passed the 50% mark.
Title: Re: Add-on Manager
Post by: boroda on September 08, 2015, 01:34:26 PM
retrieving metadata for the 1st time should be much faster with *clean* install of plugin latest version (suggest that you tried to use previous version of plugin). but as you solved this, i wont give instructions how to make clean install. for 1st time users this is not a problem.
Title: Re: Add-on Manager
Post by: WannaBee on September 08, 2015, 01:43:07 PM
retrieving metadata for the 1st time should be much faster with *clean* install of plugin latest version (suggest that you tried to use previous version of plugin). but as you solved this, i wont give instructions how to make clean install. for 1st time users this is not a problem.

Actually mine was a first install of the latest version of Add-on Manager. Does it usually slow down retrieval at about the 50% mark?
Title: Re: Add-on Manager
Post by: boroda on September 08, 2015, 03:58:34 PM
Does it usually slow down retrieval at about the 50% mark?
yes. its because progressbar shows (roughly) percentage of processed online repostories, and only 1 of 3 repositories stores much data.
Title: Re: Add-on Manager
Post by: Mr. Trev on September 08, 2015, 05:49:25 PM
Just want to say thanks for the plugin, but I can't get it running.
Using the latest update, I get this error:


MusicBee v2.5.5721.12459 (Win6.1), 8 Sep 2015 10:37:

System.AggregateException: One or more errors occurred. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at StorageApi.GoogleDrive.DownloadFile(String fileId, String downloadFilePathName)
   at StorageApi.StorageApiFile.DownloadFile(String filePathName)
   at MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root, SortedDictionary`2 lastUpdatedDates)
   at MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   at MusicBeePlugin.MainWindow.RetreiveMatadata(Object obj)
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
---> (Inner Exception #0) System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).<---
Title: Re: Add-on Manager
Post by: boroda on September 08, 2015, 06:02:32 PM
google drive api is very buggy (i've tired of making workarounds for it, especially retrying failed requests dozens of times waiting for success). just restart mb and try again (i think all be without errors next time).
Title: Re: Add-on Manager
Post by: pieralessandro on February 24, 2016, 01:46:32 PM
Good afternoon everybody,
today I got the following error when I tried to use this Add-on Manager:

MusicBee v3.0.5895.37007 (Win6.1), 24 feb 2016 14:42:

System.ObjectDisposedException: Impossibile accedere a un oggetto eliminato.
Nome oggetto: '#=qCsb01OcKbR$AufYeib1k5wY7FyIurbHu7KBANQ63Cbc='.
   in System.Windows.Forms.Control.CreateHandle()
   in System.Windows.Forms.Form.CreateHandle()
   in System.Windows.Forms.Control.get_Handle()
   in System.Windows.Forms.Form.UpdateHandleWithOwner()
   in System.Windows.Forms.Form.CreateHandle()
   in System.Windows.Forms.Control.get_Handle()
   in System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   in System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   in MusicBeePlugin.PluginWindowTemplate.Display(Boolean modal)
   in MusicBeePlugin.Plugin.CommandEventHandler(Object sender, EventArgs e)
   in #=qxdSUzfnYT5wAyjItYrr67wr0iChKLekiOM3Uy3Spzd8Si$sygsaIXDHWRYtqeKsq.#=qwOmjiq7WkRmsGLi5mqqEoQ==(Object #=qNA975iityFaJ4HZKdiYFZg==, EventArgs #=q6se_n9RE9uLNPeOKJhpr6g==)
   in System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   in System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   in System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   in System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   in System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   in System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   in System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   in System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   in System.Windows.Forms.Control.WndProc(Message& m)
   in System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   in System.Windows.Forms.ToolStrip.WndProc(Message& m)
   in System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Have you got any idea about this error?
Thanks for your kind support.
Title: Re: Add-on Manager
Post by: boroda on February 24, 2016, 02:36:43 PM
suggest that have switched view (e.g. to mini player or compact player), may be then have switched view back, then have tried to open plugin window. can you reproduce this bug?
Title: Re: Add-on Manager
Post by: pieralessandro on February 25, 2016, 11:32:59 AM
Hi Boroda
I tried to deactivate mini player view and Add-on manager Plugin started working again properly.
Title: Re: Add-on Manager
Post by: pieralessandro on February 25, 2016, 11:36:19 AM
No I get the following error:

25/02/2016 12:35:05 - 6.1.7601.65536 - 3.0.5895.37007 - The service drive has thrown an exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
Internal Error [500]
Errors [
   Message[Internal Error] Location[ - ] Reason[internalError] Domain[global]
]

   in Google.Apis.Requests.ClientServiceRequest`1.Execute()
   in StorageApi.GoogleDrive.DownloadFile(String fileId, String downloadFilePathName)
   in StorageApi.StorageApiFile.DownloadFile(String filePathName)
   in MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root, SortedDictionary`2 lastUpdatedDates)
   in MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   in MusicBeePlugin.MainWindow.RetreiveMatadata(Object obj)
   in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Threading.ThreadHelper.ThreadStart(Object obj)

Title: Re: Add-on Manager
Post by: boroda on February 25, 2016, 07:43:43 PM
Hi Boroda
I tried to deactivate mini player view and Add-on manager Plugin started working again properly.
this was a known bug for additional tagging tools plugin and it has been fixed for this plugin. add-on manager shares part of source code with tag tools, so i'm surprised that this is present in add-on manager. if its very important for you i can fix it, or just start mb in full player mode and use plugin before switching to another view. probably i'll fix this bug anyway, but now it's not my priority task.
Title: Re: Add-on Manager
Post by: boroda on February 25, 2016, 07:48:22 PM
No I get the following error:

25/02/2016 12:35:05 - 6.1.7601.65536 - 3.0.5895.37007 - The service drive has thrown an exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
Internal Error [500]
Errors [
   Message[Internal Error] Location[ - ] Reason[internalError] Domain[global]
]

   in Google.Apis.Requests.ClientServiceRequest`1.Execute()
   in StorageApi.GoogleDrive.DownloadFile(String fileId, String downloadFilePathName)
   in StorageApi.StorageApiFile.DownloadFile(String filePathName)
   in MusicBeePlugin.MainWindow.DownloadRepositorySection(String repositoryName, String sectionName, StorageApiFile root, SortedDictionary`2 lastUpdatedDates)
   in MusicBeePlugin.MainWindow.DownloadRepository(String repositoryName)
   in MusicBeePlugin.MainWindow.RetreiveMatadata(Object obj)
   in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   in System.Threading.ThreadHelper.ThreadStart(Object obj)



my related earlier answer (for similar bug reported not by you):
google drive api is very buggy (i've tired of making workarounds for it, especially retrying failed requests dozens of times waiting for success). just restart mb and try again (i think all be without errors next time).

i've tried to move plugin from google drive to microsoft one drive (which seems to be faster and more stable/reliable), but there is some problems. not sure when (and if) i complete this work.
Title: Re: Add-on Manager
Post by: boroda on September 03, 2016, 06:16:35 PM
IMPORTANT NOTE: I don't have enough time to maintain online repositories up to date. Let me know if somebody is willing to do this.