Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Album Art Downloader XUI (Read 2049546 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Album Art Downloader XUI

Reply #225
Can the file browser recognize compilation albums (e.g. a tag like Album Artist) when it scans in ID3 tag mode so that it doesn't return 20 albums instead of one?

No. I did look into this back in version 0.13, but while the Foobar library has the %album artist% titleformatting value for this, there appears to be no standard ID3 tag for compilation albums.

Alex

You could check for the ALBUM ARTIST tag in the files, it's very common among foobar users. It's also the same name for all tag formats.
I've checked if mediainfo can read it. At least the GUI shows the tag, although on mp3 it cuts the first 3 letters of TXXX frames, but I mailed the author, he has already fixed the issue.
Of course I don't know if the DLL returns all tag fields, but maybe you can give it another look.

Album Art Downloader XUI

Reply #226
You could check for the ALBUM ARTIST tag in the files, it's very common among foobar users.

The TXXX ALBUM ARTIST tag appears to be a foobar specific thing. Other media players use the BAND (TPE2) tag, or a TXXX ALBUMARTIST tag (no space), and I've even heard that WMP 11 stores the Artist as the ID3v1 artist tag and Album Artist as the ID3v2 artist tag. There may be other schemes too. The problem is that there appears to be no standardisation at all, and for the File Browser I can't assume that the tags were written by foobar2000.

Alex

Album Art Downloader XUI

Reply #227
Hi Alex,

I have been working with File Broswer and it works like a charm! Thanks for your effort! To improve my results, I would like to know if it is possible, to exclude information which may disturb some search results.

My file-scheme for example is "E:\Musik\mpc\Alice Cooper\[1999] Life And Crimes Of Alice Cooper CD 2"

Is it possible to exclude the Year: "[1999]" and the Volume: "CD 2"? Without these information the results are mostly better. Is this possible and how?

Another question is , how to improve results at albums with various artists? These albums are displayed as "Various" in the "Artist"- naming field of Album Art Downloader. Are there better results if I use other terms than Various?

Thanks for your help


Martin

Album Art Downloader XUI

Reply #228
I have just now discovered your tool.  It is absolutely, hands-down, the best, most complete tool I have used bar none for covers.  Every aspect of it has been well-thought out, from using tags or dire structure, size of the existing image, etc.etc.etc..  I am so impressed, I can't stop smiling!  You have saved me immeasurable amounts of time in scanning or searching the web for covers!!!!

ThankyouThankyouThankyouThankyouThankyouThankyouThankyouThankyouThankyouThankyou!!!!!!!

So, do you have a paypal link?  There are few programs out there that deserve it more....

Album Art Downloader XUI

Reply #229
My file-scheme for example is "E:\Musik\mpc\Alice Cooper\[1999] Life And Crimes Of Alice Cooper CD 2"

Is it possible to exclude the Year: "[1999]" and the Volume: "CD 2"? Without these information the results are mostly better. Is this possible and how?

Yes, this is possible. Try:
Code: [Select]
\mpc\%artist%\"(\[\d{4}\] )?"%album%"( CD \d+)?"\*

That assumes that both the date the CD number are optional, but that all music is under \mpc\... If either of those assumptions are wrong, it will need tweaking.

Another question is , how to improve results at albums with various artists? These albums are displayed as "Various" in the "Artist"- naming field of Album Art Downloader. Are there better results if I use other terms than Various?

I would guess that would depend on how the source being searched has classified them. You might try just searching for the album name without anything in the Artists field, that will probably work for most sources. The file-scheme can be tweaked to make the Album come out blank when the folder is Various like so:
Code: [Select]
\mpc\"(Various|%artist%)"\"(\[\d{4}\] )?"%album%"( CD \d+)?"\*


So, do you have a paypal link?  There are few programs out there that deserve it more....

Thanks for your kind words! It is really great to know when my work is appreciated, but I've also got to acknowledge my own debt of thanks to the residents of this forum who have suggested many of those features, and helped me track down bugs when they've appeared.

I hadn't set up a paypal link - it was something I was considering if I ever got round to putting together a proper website and documentation for a 1.0 release. But, as you specifically ask, any donation will be gratefully received here: Paypal Donation 

Alex

Album Art Downloader XUI

Reply #230
Quote
I hadn't set up a paypal link - it was something I was considering if I ever got round to putting together a proper website and documentation for a 1.0 release. But, as you specifically ask, any donation will be gratefully received here: Paypal Donation 

Alex

Okiedokie, seeing as how the US Dollar is crap compared with the pound, I had to double my efforts. 

Go have a nice pint on me, truly miss those nice mugs...

Album Art Downloader XUI

Reply #231
Hi Alex,

thank you very much for your kind help!


Martin

Album Art Downloader XUI

Reply #232
Im using a fresh install of Vista x64 SP1 and the latest AAD XUI

Ive not been able to get it to start yet as I get an error every time I click on the File Browser option.

Here is the error

Code: [Select]
Album Art Downloader has encountered a fatal error, and has had to close.
If you wish to report this error, please include this information, which
has been written to the file: C:\Program Files (x86)\AlbumArtDownloader\errorlog.txt

App version: 0.14.1.0, running on Microsoft Windows NT 6.0.6001 Service Pack 1

System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at MediaInfoLib.MediaInfo.MediaInfo_New()
   at MediaInfoLib.MediaInfo..ctor()
   at AlbumArtDownloader.FileBrowser.OnIsVisibleChanged(Object sender, DependencyPropertyChangedEventArgs e)
   at System.Windows.UIElement.RaiseDependencyPropertyChanged(EventPrivateKey key, DependencyPropertyChangedEventArgs args)
   at System.Windows.UIElement.OnIsVisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.UIElement.UpdateIsVisibleCache()
   at System.Windows.PresentationSource.RootChanged(Visual oldRoot, Visual newRoot)
   at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
   at System.Windows.Window.SetRootVisual()
   at System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
   at System.Windows.Window.CreateSourceWindowImpl()
   at System.Windows.Window.ShowHelper(Object booleanBox)
   at System.Windows.Window.Show()
   at AlbumArtDownloader.FileBrowser.AlbumArtDownloader.IAppWindow.Show()
   at AlbumArtDownloader.Common.NewFileBrowser(IAppWindow existingWindow)
   at AlbumArtDownloader.Menu.NewFileBrowserExec(Object sender, ExecutedRoutedEventArgs e)
   at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
   at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
   at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
   at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
   at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
   at System.Windows.Input.CommandManager.TransferEvent(IInputElement newSource, ExecutedRoutedEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
   at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
   at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
   at AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
   at AlbumArtDownloader.App.Main(String[] args)

 


Album Art Downloader XUI

Reply #235
Hi Alex,

Album Art Dowloader has grown from strenth to strength -it's definitely the best tool I have found.

As the new owner of a HTPC I wonder wether you have ever looked at adding DVD covers as an additional capability? The concepts involve seem very similar to me.

Thanks, David.

Album Art Downloader XUI

Reply #236
Hey everyone. Hoping to get some guidance here...
I've used the original Album Art Downloader up until now but finally decided to try this out. Got net3.5 all installed and then this (version 0.14) but now when I load the executable I just get a properly titled black window. I can resize it... if I move the mouse around the cursor changes to text input or hyperlinkink cursors.. but... nothing I can do.
HALP plz!

Album Art Downloader XUI

Reply #237
Sorry about the delayed reply here.

As the new owner of a HTPC I wonder wether you have ever looked at adding DVD covers as an additional capability? The concepts involve seem very similar to me.
There's no particular reason why DVD covers can't be found using this tool, it all depends on the source. For something like Google Images, they'll be returned already. Other more specific DVD cover sources could be written too, which in some cases might just be a modification of an existing script.

I don't think there's any equivalent to ID3 Tags for DVD's, but the folder browser using path pattern matching would still work.

I just get a properly titled black window.
Sorry, Ryran, but this is a complete mystery to me. I've searched around and found no likely explanations, so I can't give you any suggestions on what might be causing this or how to fix it.

Alex

Album Art Downloader XUI

Reply #238
An idea is to show the size of existing albumart in pixels instead of in kb in the file browser, that makes more sense to me at least.

Great program this, thanks!

Album Art Downloader XUI

Reply #239
An idea is to show the size of existing albumart in pixels instead of in kb in the file browser, that makes more sense to me at least.

Thanks for the suggestion, but this would require each existing image to actually be loaded from disk, resulting in a considerable decrease in performance. The current system does not need to actually load the image files to display the file size.

Alex

Album Art Downloader XUI

Reply #240
A very simple request:  Tab and Shift-Tab highlight the previous entry (as it once did).  That way you don't have to manually delete the old entry, but can simply start typing.

That said, awesome program!

Album Art Downloader XUI

Reply #241
A very simple request:  Tab and Shift-Tab highlight the previous entry (as it once did).  That way you don't have to manually delete the old entry, but can simply start typing.
I'm not sure I understand what you are asking for here, could you be more specific? If you could tell me in what state the program is (including where the focus is, if you can tell) when you click Tab or Shift Tab, what it actually does, and what you expected it to do, I can probably fix this.

Alex

Album Art Downloader XUI

Reply #242
Crash:
Quote
Album Art Downloader has encountered a fatal error, and has had to close.
If you wish to report this error, please include this information, which
has been written to the file: C:\Programme\foobar2000\AlbumArtDownloader\errorlog.txt

App version: 0.14.1.0, running on Microsoft Windows NT 5.1.2600 Service Pack 3, v.3244

System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
  bei AlbumArtDownloader.AlbumArt.get_ImageCodecInfo()
  bei AlbumArtDownloader.AlbumArt.CoerceFilePath(DependencyObject sender, Object value)
  bei System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, OperationType operationType)
  bei System.Windows.DependencyObject.CoerceValue(DependencyProperty dp)
  bei AlbumArtDownloader.AlbumArt.OnDefaultFilePathPatternChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
  bei System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
  bei System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
  bei System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, OperationType operationType)
  bei System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp)
  bei System.Windows.Data.BindingExpression.Invalidate(Boolean isASubPropertyChange)
  bei System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
  bei System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean isASubPropertyChange)
  bei MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
  bei MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
  bei MS.Internal.Data.PropertyPathWorker.OnDependencyPropertyChanged(DependencyObject d, DependencyProperty dp, Boolean isASubPropertyChange)
  bei MS.Internal.Data.ClrBindingWorker.OnSourceInvalidation(DependencyObject d, DependencyProperty dp, Boolean isASubPropertyChange)
  bei System.Windows.Data.BindingExpression.HandlePropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
  bei System.Windows.Data.BindingExpression.OnPropertyInvalidation(DependencyObject d, DependencyPropertyChangedEventArgs args)
  bei System.Windows.DependentList.InvalidateDependents(DependencyObject source, DependencyPropertyChangedEventArgs sourceArgs)
  bei System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
  bei System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, OperationType operationType)
  bei System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, OperationType operationType, Boolean isInternal)
  bei System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
  bei AlbumArtDownloader.Controls.ArtPathPatternBox.set_PathPattern(String value)
  bei AlbumArtDownloader.App.ProcessCommandArgs(String[] args)
  bei AlbumArtDownloader.App.<>c__DisplayClass3.<Signal>b__2()
  --- Ende der internen Ausnahmestapelüberwachung ---
  bei System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
  bei System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
  bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  bei System.Delegate.DynamicInvokeImpl(Object[] args)
  bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
  bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
  bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
  bei System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
  bei System.Threading.ExecutionContext.runTryCode(Object userData)
  bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
  bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
  bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  bei System.Windows.Threading.DispatcherOperation.Invoke()
  bei System.Windows.Threading.Dispatcher.ProcessQueue()
  bei System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
  bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
  bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
  bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
  bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
  bei System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
  bei System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
  bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
  bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
  bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
  bei System.Windows.Threading.Dispatcher.Run()
  bei System.Windows.Application.RunInternal(Window window)
  bei System.Windows.Application.Run(Window window)
  bei System.Windows.Application.Run()
  bei AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
  bei AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
  bei AlbumArtDownloader.App.Main(String[] args)

Album Art Downloader XUI

Reply #243
A very simple request:  Tab and Shift-Tab highlight the previous entry (as it once did).  That way you don't have to manually delete the old entry, but can simply start typing.
I'm not sure I understand what you are asking for here, could you be more specific? If you could tell me in what state the program is (including where the focus is, if you can tell) when you click Tab or Shift Tab, what it actually does, and what you expected it to do, I can probably fix this.

What I mean is if you're in the Artist field and Tab to the Album field, the previous album in that field is already highlighted, so you can simply type over it.  Conversely, if you're in the Album field and Shift-Tab back to the Artist field, the old artist in that field is already highlighted.

I don't know your native language, so if that's not clear, I can provide images to explain better what I mean.

It's not a big deal.  It just saves a little time manually deleting the old info already in the field.  It used to work that way (at my request), but somehow got changed somewhere along the line.

Thanks. 

Album Art Downloader XUI

Reply #244
Crash: <snip/>
From the error report, it appears that Album Art Downloader was unable to determine the correct file extension for an image format. I can fix it so that it won't crash in this case (and I will do, for the next version), but it would be really useful if you could let me know which album, artist and image source it came from. That way I can figure out what image format it is, and why it wasn't detected correctly.

What I mean is if you're in the Artist field and Tab to the Album field, the previous album in that field is already highlighted, so you can simply type over it.
Oh, I get it! I thought it was Tab not going to the right control - but it is going to the right control, just not selecting all the text in it. I'll make that change for the next version.

Alex

Album Art Downloader XUI

Reply #245
What I mean is if you're in the Artist field and Tab to the Album field, the previous album in that field is already highlighted, so you can simply type over it.
Oh, I get it! I thought it was Tab not going to the right control - but it is going to the right control, just not selecting all the text in it. I'll make that change for the next version.

Alex

Thanks, that would be much appreciated. 

Album Art Downloader XUI

Reply #246
AlbumArt Downloader XUI v0.15 Released

Mostly bug fixes in this release, and a couple of minor improvements that have been requested. I've also improved the reporting of x64 issues. I don't have a 64 bit copy of Windows, so no testing has been done on that platform, but the default behaviour should no longer be to crash. Instead, you should be requested to install the 64 bit version of the MediaInfo dll. The installer should also automatically detect Win64, and offer to take you to the download page for an installer for the x64 version of MediaInfo.dll that I've put together. The reason I haven't just bundled both the 32 bit and 64 bit versions of the dll in the main installer is that this dll is the largest part of the download already, and the 64 bit version is double the file size.

Also in this release I've refactored the Amazon search scripts into one common script and several optional regional variations. If you are using the installer, the you can just pick any of the regions (.com, .co.uk, .jp, etc...) to install. If you are using the zip file, then make sure amazon-common.boo is present, plus one or more of the other Amazon scripts, like amazon-com.boo, for example.

For those who are interested in scripting, these scripts now demonstrate the XUI object oriented script API of implementing the IScript interface. The amazon-common.boo script implements an abstract class which the other, minimal Amazon scripts inherit from - demonstrating one of the benefits of the object oriented approach.

List of other changes for this version:
  • Fixed bug with images whose formats can not be determined
  • Artist and Album text boxes now select their contents when tabbed to
  • Added Copy command to context menu for album art results
  • Upgraded to MediaInfo version 0.7.6.1
  • Fixed bug where closing foobar browser without com automation server installed would cause a crash.
  • Improved single instance mechanism robustness
Download:
AlbumArtDownloaderXUI.exe (Installer. Recommended)
AlbumArtDownloaderXUI.zip (zip archive for those who don't like installers)
.NET Framework 3.5 (required)
AlbumArtDownloaderXUI-MediaInfoX64Upgrade.exe (x64 version of MediaInfo - must be installed if you are running a 64 bit version of Windows)

Album Art Downloader XUI

Reply #247
... I've refactored the Amazon search scripts into one common script and several optional regional variations. ... any of the regions (.com, .co.uk, ,.jp, etc...) to install...


i love you! thanks for new scripts. i was hoping you kind of look into them! THX

Album Art Downloader XUI

Reply #248
Thank you for a great and very handy tool.

I recently found some quality images at Album Art Exchange

I thought I might take a crack at writing an albumartexchange.boo script.  I figured I could use the google.boo  as a starting point, but it was not long before I realized that I have no idea what I am doing.

With the acknowledgment that every web page will present the thumbnails and images slightly different, has anyone put together a general guideline for writing a script?

To be honest, although I would like to write the script myself, unfortunately, I think even with some pointers I will not be able to get a working script.  If someone more capable has the time and thinks a new script for the Album Art Exchange site would be a good addition, I would be very interested in seeing a working script.

Thank you again for a great tool,
Brian

Album Art Downloader XUI

Reply #249
Hi! The program crashes after I have pressed the search button. I have Vista x64 with SP1 and latest version (0.15) of Album Art XUI and Media Info x64 Upgrade. This is the log I get:


Code: [Select]
Album Art Downloader has encountered a fatal error, and has had to close.
If you wish to report this error, please include this information, which
has been written to the file: C:\Program Files (x86)\AlbumArtDownloader\errorlog.txt

App version: 0.15.0.0, running on Microsoft Windows NT 6.0.6001 Service Pack 1

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
  at AlbumArtDownloader.Common.MakeSafeForPath(String value)
  at AlbumArtDownloader.ArtSearchWindow.AlbumArtDefaultFilePathPatternSubstitution.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
  at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
  at System.Windows.Data.BindingExpression.Activate(Object item)
  at System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
  at System.Windows.Data.BindingExpression.AttachOverride(DependencyObject target, DependencyProperty dp)
  at System.Windows.Data.BindingExpressionBase.Attach(DependencyObject target, DependencyProperty dp)
  at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, OperationType operationType, Boolean isInternal)
  at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
  at System.Windows.Data.BindingOperations.SetBinding(DependencyObject target, DependencyProperty dp, BindingBase binding)
  at AlbumArtDownloader.ArtSearchWindow.BindAlbumArtDefaultFilePath(AlbumArt art)
  at AlbumArtDownloader.ArtSearchWindow.OnResultsChanged(Object sender, NotifyCollectionChangedEventArgs e)
  at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
  at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
  at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedAction action, Object item, Int32 index)
  at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
  at System.Collections.ObjectModel.Collection`1.Add(T item)
  at AlbumArtDownloader.Sources.OnSourceResultsChanged(Object sender, NotifyCollectionChangedEventArgs e)
  at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
  at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedAction action, Object item, Int32 index)
  at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
  at System.Collections.ObjectModel.Collection`1.Add(T item)
  at AlbumArtDownloader.Source.ScriptResults.<>c__DisplayClass9.<Add>b__7()
  --- End of inner exception stack trace ---
  at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
  at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
  at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  at System.Delegate.DynamicInvokeImpl(Object[] args)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
  at System.Windows.Threading.DispatcherOperation.InvokeImpl()
  at System.Threading.ExecutionContext.runTryCode(Object userData)
  at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  at System.Windows.Threading.DispatcherOperation.Invoke()
  at System.Windows.Threading.Dispatcher.ProcessQueue()
  at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
  at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
  at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
  at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
  at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
  at System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(MSG& msg)
  at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
  at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
  at System.Windows.Application.RunInternal(Window window)
  at System.Windows.Application.Run(Window window)
  at AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
  at AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
  at AlbumArtDownloader.App.Main(String[] args)