Help - Search - Members - Calendar
Full Version: Album Art Downloader XUI
Hydrogenaudio Forums > Hydrogenaudio Forum > General Audio
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
AlexVallat
QUOTE(eldust @ Feb 17 2008, 04:19) *
<snip> /ar %artist%" <snip>

Looks like you're missing a " mark there, that should be "%artist%". If that was just a typo copying to the forum, then please copy the first 3 or 4 lines of the error popup which should contain the command line passed to it and the error message.

QUOTE(kanak @ Feb 17 2008, 04:50) *
Can you use it to query the contents of a playlist in foobar (instead of querying the media library)?

Yes, that sounds like a good idea. I'll add that into the next version. The foobar browser will have a drop-down for picking either All Media, or one of the playlists.

Alex
eldust
QUOTE(AlexVallat @ Feb 16 2008, 23:04) *

QUOTE(eldust @ Feb 17 2008, 04:19) *
<snip> /ar %artist%" <snip>

Looks like you're missing a " mark there, that should be "%artist%". If that was just a typo copying to the forum, then please copy the first 3 or 4 lines of the error popup which should contain the command line passed to it and the error message.


Woooooooooooooooooow, I was missing a quotation mark, thanks for proof reading. I feel terrible.

edit:
Great program !
Tich
A crash just occured while running from foo_run (latest version) with the following arguments:

"C:\Program Files\AlbumArtDownloader\AlbumArt.exe" /ar "%album artist%" /al "%album%" /p "$replace(%_path%,%_filename_ext%,)'%artist%' - '%album%' - Front.'%extension%'"

The first time this crash appeared.

edit: on album Fresh Cream by artist Cream

CODE

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\AlbumArtDownloader\errorlog.txt

App version: 0.13.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.FormatException: Input string was not in a correct format.
at System.Text.StringBuilder.FormatError()
at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
at System.String.Format(IFormatProvider provider, String format, Object[] args)
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.OnAttach(DependencyObject d, 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.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.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.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
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 System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
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.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
at AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
at AlbumArtDownloader.App.Main(String[] args)

AlexVallat
QUOTE(Tich @ Feb 18 2008, 22:45) *
A crash just occured <snip />

From that error log, I suspect I know what the problem is - could you check if the path to that album includes { or } characters please? If it does, then there is currently a known bug with paths including those characters, a fix for which will be included in the next version. If not, then please let me know the full path to the album so I can figure out if something else has gone wrong.

Thanks,

Alex
Tich
You are right, the path includes { and }:
CODE
U:\Cream - Fresh Cream (1966) [FLAC] {DCC Gold Steve Hoffman remaster}

Thanks for the quick reply, I was probably too stoned to search the forum thread for the answer if you had given it already. tongue.gif
thuan
Crash report: I had one instance of AlbumArtDownloader XUI then I launch another using foobar. Before the new instance show up, I closed the old one and it crashed. Here's the error log:
CODE
App version: 0.13.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.ServiceModel.FaultException: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.

Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at AlbumArtDownloader.IPriorInstance.Signal(String[] parameters)
at AlbumArtDownloader.InstanceMutex.QueryPriorInstance(String[] args, String channelUri)
at AlbumArtDownloader.App.Main(String[] args)
AlexVallat
QUOTE(thuan @ Feb 20 2008, 11:03) *
Crash report: I had one instance of AlbumArtDownloader XUI then I launch another using foobar. Before the new instance show up, I closed the old one and it crashed. Here's the error log:

Thanks for reporting this. It seems to be a case of extremely unlucky timing, but I'll see what I can do about mitigating it so it won't crash under those circumstances.

Alex
~*McoreD*~
I am finding more and more use of this excellent app: Album Art Downloader XUI. In iTunes I got iTSfv to pass Artist and Album information to Album Art Downloader XUI to search for Artwork. AAD saves it as Folder.jpg and when you validate the album in iTunes, the artwork is detected and embedded to tracks.

Thanks again Alex!

Looking forward to a release from you with the previous folder name fixes.
AlexVallat
AlbumArt Downloader XUI v0.14 Released

Some fairly big new features added this time round. As has been much requested, it is now possible to use a file path pattern to determine Artist and Album information instead of using tags. Another request was to be able to search just a specific playlist from Foobar, rather than the whole library, so I've added a playlist picker to the Foobar browser. Of course, you can still choose Entire Library there.

To use the file path pattern thing, start the File Browser as usual, and click the Options link. There are now two additional options, which you can use to choose between Tags or File Path Pattern Matching. If you choose the pattern matching option, there is also a box where you can enter the pattern your files are named by, for example \%artist%\%album%\* would match against c:\music\muse\showbiz\01. Sunburn.mp3 as Artist = muse, Album = showbiz. Or, to use an example from a few posts earlier, U:\Cream - Fresh Cream (1966) [FLAC] {DCC Gold Steve Hoffman remaster} could be matched by \%artist% - %album% (*\*. If you've got a really freaky naming scheme which can't be covered by just * and ? wildcards, then you can include literal regular expression code in the pattern in between " marks. For example, the previous pattern could be improved as \%artist% - %album% ("\d{4}")*\* to avoid problems with albums with ( characters in. If you don't want to use the built-in %artist% substitutions, any regex capturing group named artist (or album) can be used.

If you have a freaky naming scheme, and you don't know regular expressions, and you really don't want to use tags, then post some examples of your paths here and someone who does know regular expressions can probably help you out.

The file path pattern matching is generally much, much faster than tag matching, but may be less reliable, depending on how well organised your collection is.

I've also fixed the following bugs:
  • Fixed bug with paths with {} characters
  • Characters which can not be part of filenames are now automatically replaced by underscores when substituting placeholders.
  • Fixed bug when closing a prior instance while a new one was starting up
Download:
AlbumArtDownloaderXUI.exe (Installer. Recommended)
AlbumArtDownloaderXUI.zip (zip archive for those who don't like installers)
.NET Framework 3.5 (required)
kanak
Wow. Thanks for the excellent release! The playlist browser is a godsend. biggrin.gif
thuan
Crash report: when I open up a preview and foobar browser then I turn off the preview window and foobar browser in order, it crashed. Foobar Com Automation component is not installed on my computer. Here's the errorlog:
CODE
App version: 0.14.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.NullReferenceException: Object reference not set to an instance of an object.
at AlbumArtDownloader.FoobarBrowser.OnClosed(EventArgs e)
at System.Windows.Window.WmDestroy()
at System.Windows.Window.WindowFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.PublicHooksFilterMessage(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 System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
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.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at AlbumArtDownloader.App.AlbumArtDownloader.IPriorInstance.Run()
at AlbumArtDownloader.InstanceMutex.RunAppAsServiceHost(IPriorInstance instance, String channelUri)
at AlbumArtDownloader.App.Main(String[] args)


Also, when I open more than 2 albumartdownloader window and close the older ones sometimes make the currently running one hang. On some occasion it recovers after a while and most of the time not. All albumartdownloader instances I launch are from foobar run service component.
AlexVallat
QUOTE(thuan @ Feb 24 2008, 09:13) *
Crash report: when I open up a preview and foobar browser then I turn off the preview window and foobar browser in order, it crashed. Foobar Com Automation component is not installed on my computer.

Thanks for that report. I can confirm that with 0.14, closing the foobar browser window when the foobar com automation component is not installed will cause this crash. The preview window and order of closing does not affect this, and of course foobar itself is unaffected. I will have a fix for this in the next release, but until then I'd recommend either installing the com automation component, or not using the foobar browser (which doesn't do much without it installed anyway).

Alex
thuan
Well, I was just playing around. After that crash somehow it still crashes with this error a bunch of times until I restart. I didn't use the foobar browser again:
CODE
App version: 0.14.0.0, running on Microsoft Windows NT 5.1.2600 Service Pack 2

System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

Server stack trace:
at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Close()

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.ServiceModel.ICommunicationObject.Close()
at AlbumArtDownloader.InstanceMutex.QueryPriorInstance(String[] args, String channelUri)
at AlbumArtDownloader.App.Main(String[] args)

AlexVallat
QUOTE(thuan @ Feb 24 2008, 09:46) *
Well, I was just playing around.

Yes, fair enough, and it should absolutely not crash under those circumstances, I know. It was my own mistake that crept in while adding the playlist functionality, and I'll fix it as soon as possible.

The other crash you report is related to trying to communicate with an existing instance of the app which is not responding (possibly because of the earlier crash? Only a guess). If it happens again, please check Task Manager to see if there is an AlbumArt.exe entry in the processes list. If there isn't, then please let me know as something else strange is going on and I'll need to investigate. If there is, then you can End Process on AlbumArt.exe and avoid having to restart to clear the error.

In either case, I'll see what I can do about adding some automatic recovery for this situation.

Alex
thuan
Before I restarted the computer I did check for AlbumArt.exe ghost process using Process Explorer, but there's none. That's why I had to restart my computer.

EDIT: I encounter the 2nd crash again and this time, indeed there's a ghost AlbumArt.exe in my process list. It makes me doubt my memory.
AlexVallat
QUOTE(thuan @ Feb 24 2008, 10:12) *
Before I restarted the computer I did check for AlbumArt.exe ghost process using Process Explorer, but there's none. That's why I had to restart my computer.

OK; good to know. I've tried adding some additional robustness to the single instance code, hopefully faced with the same situation now it would automatically recover itself (although potentially having two instances running, if one could not be communicated with).

I've uploaded 0.14.1 which should hopefully resolve these issues - If you could give it a try and let me know if you encounter them again (or any others, of course!), then that would be appreciated. Download links remain the same:

AlbumArtDownloaderXUI.exe, or AlbumArtDownloaderXUI.zip

Thanks,

Alex
thuan
I can only get 0.14 with your links, please check them again.
dano
-Can you update the Amazon.de script with the image dimensions like the .com version?

-When the option Automatically download full sized images (x) Only when size is unkown
is selected, the size is not updated when the image was loaded, only if you preview the image
AlexVallat
QUOTE(thuan @ Feb 24 2008, 11:20) *
I can only get 0.14 with your links, please check them again.

Just checked, they are downloading 0.14.1 when I try them here. The filename doesn't include the extra .1 part of the version number, perhaps that is the source of confusion?

QUOTE(dano @ Feb 24 2008, 11:22) *
-Can you update the Amazon.de script with the image dimensions like the .com version?

-When the option Automatically download full sized images (x) Only when size is unkown
is selected, the size is not updated when the image was loaded, only if you preview the image

I didn't write Amazon.de, that's one of Marc's. Looking at it, though, I don't think it can determine the image dimensions without downloading the image. The .com one uses the Amazon web services API, which does give that information. The .de one relies on reading the Amazon html pages, and the information just isn't there.

I'm not sure why you aren't seeing the size being automatically updated. Are you saying that the full size image has loaded, but the size for it is not updated? Or that the full size image is not being downloaded at all?

Alex
dano
QUOTE(AlexVallat @ Feb 24 2008, 12:03) *
I didn't write Amazon.de, that's one of Marc's. Looking at it, though, I don't think it can determine the image dimensions without downloading the image. The .com one uses the Amazon web services API, which does give that information. The .de one relies on reading the Amazon html pages, and the information just isn't there.

Oh ok, so the best would be to drop the html version (it also gets images with white borders) and replace it with a web api version. I figured I just have to replace .com with .de in url request but not in the namespace to make me a .de version. It seems to work fine.
QUOTE
I'm not sure why you aren't seeing the size being automatically updated. Are you saying that the full size image has loaded, but the size for it is not updated?

Yes. Some scripts don't get the image size, so I thought they would show it if I let them download the complete images.
AlexVallat
QUOTE(dano @ Feb 24 2008, 12:34) *

Oh ok, so the best would be to drop the html version (it also gets images with white borders) and replace it with a web api version. I figured I just have to replace .com with .de in url request but not in the namespace to make me a .de version. It seems to work fine.
QUOTE
I'm not sure why you aren't seeing the size being automatically updated. Are you saying that the full size image has loaded, but the size for it is not updated?

Yes. Some scripts don't get the image size, so I thought they would show it if I let them download the complete images.
If that web api version of the .de script works, that's good news, it could replace the html one. Do you know of any test albums to search for that the .de version returns differently from the .com version?

The automatic image downloading thing is a mystery, I can't see why that wouldn't be working for you. To test this, try deselecting all scripts except Coveralia (a slow source that doesn't have sizes). With the automatically download fullsize images option on Never, search for an album. You should get around 3 images back, usually front cover, back cover and CD. The image size should be "Unknown", and the thumbnails fuzzy (make the thumbnails larger if you can't tell). Then, click on the "Only when size unknown" option, and one of the results should show a little browse globe icon in the top left of the thumbnail, indicating it is downloading. After a few seconds, the thumbnail should become sharp and the image size filled in (usually around 1000 x 1000). Another of the results should then get the globe icon indicating it is being downloaded, and so on until all are completed.

Alex
dano
QUOTE
If that web api version of the .de script works, that's good news, it could replace the html one. Do you know of any test albums to search for that the .de version returns differently from the .com version?

I don't think that's an issue, quite some albums return different covers, but the code works for both versions.

The automatic image downloading works now, thanks. Was my fault.

I have a new question:
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?
AlexVallat
QUOTE(dano @ Feb 24 2008, 13:15) *
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
thuan
Thanks, Alex. I can confirm that the foobar COM crash problem is fixed. Here's a bunch of endpoint values that you can change the URL request to, to get your version of Amazon cover search:
CODE

CA:    http://ecs.amazonaws.ca/onca/xml
DE:    http://ecs.amazonaws.de/onca/xml
FR:    http://ecs.amazonaws.fr/onca/xml
JP:    http://ecs.amazonaws.jp/onca/xml
UK:    http://ecs.amazonaws.co.uk/onca/xml
US:    http://ecs.amazonaws.com/onca/xml


Alex, what is the namespace in your Amazon.boo does anyway. That link is dead I think, it redirects to another page.
AlexVallat
QUOTE(thuan @ Feb 24 2008, 14:01) *
Alex, what is the namespace in your Amazon.boo does anyway. That link is dead I think, it redirects to another page.

It isn't exactly a link, it is a namespace. They look like links, for uniqueness reasons, but don't actually have to even be resolvable.

The important thing about it is that it must exactly match the namespace of the returned xml data. If you look at the XML data returned from amazon, it starts like this:

<?xml version="1.0" encoding="UTF-8"?><ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05">...

The xmlns bit defines the namespace, and it is this that the namespace in the .boo file must match.

Thanks for the list of domain suffixes too. I'm not sure what the best way to deal with this is, whether to bundle a script for each domain, or have one script and come up with some way of setting the domain to use in the UI. I'll do some experimenting, anyway.

Alex
dano
QUOTE(AlexVallat @ Feb 24 2008, 13:30) *

QUOTE(dano @ Feb 24 2008, 13:15) *
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.
AlexVallat
QUOTE(dano @ Feb 24 2008, 17:35) *
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
antares
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
_eclectic_
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....
AlexVallat
QUOTE(antares @ Feb 27 2008, 14:50) *
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
\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.

QUOTE(antares @ Feb 27 2008, 14:50) *
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
\mpc\"(Various|%artist%)"\"(\[\d{4}\] )?"%album%"( CD \d+)?"\*


QUOTE(_eclectic_ @ Feb 27 2008, 16:12) *
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 biggrin.gif

Alex
_eclectic_
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 biggrin.gif

Alex

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

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

thank you very much for your kind help!


Martin
Tirade
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
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)
AlexVallat
QUOTE(Tirade @ Mar 5 2008, 02:25) *
Im using a fresh install of Vista x64 SP1 and the latest AAD XUI

Could you try downloading the x64 version of MediaInfo and extracting MediaInfo.dll into the Album Art Downloader program folder?

Thanks,

Alex
Tirade
QUOTE(AlexVallat @ Mar 5 2008, 03:44) *

QUOTE(Tirade @ Mar 5 2008, 02:25) *
Im using a fresh install of Vista x64 SP1 and the latest AAD XUI

Could you try downloading the x64 version of MediaInfo and extracting MediaInfo.dll into the Album Art Downloader program folder?

Thanks,

Alex



/bow

You are the man.

Fixed! smile.gif
entrecour
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.



ryran
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!
AlexVallat
Sorry about the delayed reply here.

QUOTE(entrecour @ Mar 5 2008, 20:06) *
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.

QUOTE(ryran @ Mar 8 2008, 20:04) *
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
sylla
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!
AlexVallat
QUOTE(sylla @ Mar 18 2008, 13:33) *
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
KarnEvil9
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!
AlexVallat
QUOTE(KarnEvil9 @ Mar 18 2008, 19:16) *
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
jasperooni
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)
KarnEvil9
QUOTE(AlexVallat @ Mar 18 2008, 11:43) *

QUOTE(KarnEvil9 @ Mar 18 2008, 19:16) *
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. smile.gif
AlexVallat
QUOTE(jasperooni @ Mar 23 2008, 18:04) *
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.

QUOTE(KarnEvil9 @ Mar 23 2008, 18:16) *
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
KarnEvil9
QUOTE(AlexVallat @ Mar 23 2008, 12:28) *
QUOTE(KarnEvil9 @ Mar 23 2008, 18:16) *
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. biggrin.gif
AlexVallat
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)
cartman(2vd)
QUOTE(AlexVallat @ Mar 24 2008, 20:21) *

... 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
bsleeth
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

Razzeli
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

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)

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.