Page 1 of 12
WebSearch Panels (updated March 14, 2007) now with installer
Posted: Mon Jul 24, 2006 2:55 pm
by jn
The following script is based on the
last.fm script.
It adds as many panels as defined to the MM screen, each one performs a specific web search on Artist, Title of Album. The script needs a XML file as a configuration file (I chose XML, as it seems easier to parse by VBS
).
- There is now an MM3 installer available at Google code
- gege wrote a nice documentation how to use the script here.
- The current code can be found here.
Here is a sample config file, which needs to be named
WebSearch.xml and must be located in the main MM directory.
Code: Select all
<?xml version="1.0" encoding="ISO-8859-15"?>
<configuration>
<site>
<name>Google</name>
<caption>Google</caption>
<description>Search Google for Artist</description>
<start>http://www.google.com</start>
<url>http://www.google.com/search?q=%artist%</url>
</site>
<site>
<name>Wikipedia</name>
<caption>Wikipedia</caption>
<description>Search Wikipedia for Artist</description>
<start>http://www.wikipedia.org</start>
<url>http://www.wikipedia.org/wiki/%artist%</url>
</site>
</configuration>
The "url" parameter is the Web Search URL, and the placeholders
%artist%,
%title% ansd
%album% are replaced accordingly.
Here is the script. Save if as WebSearch.vbs and copy it to MM's scripts/auto directory:
Experienced users will notice that there is no kind of error handling whatsoever. So make sure that the XML file is in place and has no errors.
Feedback -- as well on the code and more configurations for more sites -- are greatly appreciated.
Jörg
Posted: Mon Jul 24, 2006 4:47 pm
by MoDementia
Very snazzy, now just have to think of a site/search that I would really like/need
Posted: Mon Jul 24, 2006 10:44 pm
by DiddeLeeDoo
Funny. I was just thinking last night it would be cool to have something like this... and here it is!! Thank you...
Posted: Tue Jul 25, 2006 2:42 am
by jn
I just discovered that this method works with local files as well. As a POC use the following HTML file, save it somewhere and make an entry to WebSearch.xml for the file like
Code: Select all
<site>
<name>SongInfo</name>
<caption>SongInfo</caption>
<description>Displays Information on the current song</description>
<start>about:blank</start>
<url>file:///C:/Programs/MediaMonkey/Scripts/Song.htm</url>
</site>
Here's the HTML file:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Song details
</title>
<style type="text/css">
/*<![CDATA[*/
body {
background-color: White;
font-family: Verdana;
font-size: 8pt;
margin: 0.1em;
}
/*]]>*/
</style>
<script type="text/vbscript" language="VBScript">
'<![CDATA[
Option Explicit
Sub Window_OnLoad
Dim SDB
Dim item
'Connect to MM
Set SDB = CreateObject("SongsDB.SDBApplication")
Set item = SDB.Player.CurrentSong
document.getElementById("artist").InnerHTML = item.ArtistName
document.getElementById("title").InnerHTML = item.Title
document.getElementById("album").InnerHTML = item.AlbumName
Set SDB = Nothing
Set item = Nothing
End Sub
//]]>
</script>
</head>
<body>
Artist: <span id="artist"></span>
<br />
Title: <span id="title"></span>
<br />
Album: <span id="album"></span>
</body>
</html>
The only ugly thing is that an ActiveX warning pops up every time the song changes; but I assume this is due to restrictive/secure IE settings
Posted: Tue Jul 25, 2006 3:02 am
by DiddeLeeDoo
Actually, I didn't get that ActiveX warning. This most likely is related to the 'My Computer' Security Zone.
Internet and Intranet Zones are configurable by the Control Panel - Internet Options - Security, but the Zone for "My Computer" is hidden in the Registry.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0
Key 0="My Computer"
Changing the DWORD 1201 to 0 instead of 1 stops these ActiveX messages
BTW, I think you have started something huge here. Making it so easy to add panels.. Amazing! That is fine coding...
Posted: Tue Jul 25, 2006 3:08 am
by jn
DiddeLeeDoo wrote:Changing the DWORD 1201 to 0 instead of 1 stops these ActiveX messages
That did the Trick, thanks!
DiddeLeeDoo wrote:BTW, I think you have started something huge here. Making it so easy to add panels.. Amazing! That is fine coding...
Thank you... However, I think the code could be brushed up (I don't like globals etc), so any help is appreciated
Posted: Tue Jul 25, 2006 4:19 am
by Peke
I really Like this, already have several ideas that can be easily done.
Some pulldown object in Toolbar beside search some Configuration in MM Options. Good really good I like this and totaly agree with DiddeLeeDoo about huge use of this I think from first look that it can be modified to support podcasts XML but I could be wrong.
I Noticed One Small thing that I misses BACK and FWD Buttons for navigating the links.
P.S. I forgot to wish you welcome here on MM Forum and I must notice that you made impresive entrance.
Posted: Thu Jul 27, 2006 11:44 am
by DiddeLeeDoo
It's been smooth sailing with this script, and I've learned a lot about the artists I play by reading those Wikipedia pages.
I am sort of used to doing Right Click - Back to navigate backwards, or a Backspace will do too.
Not quite sure about those Global Variables you want to get rid of, but SDB.Objects may do the trick. Haven't had a play with the code yet.
Sub Dodo
SDB.Objects("Something")=MyVariable
Micky
End sub
Sub Micky
Msgbox SDB.Objects("Something")
End Sub
May work, dunno.
Posted: Thu Jul 27, 2006 2:03 pm
by Teknojnky
Wow, thats totally cool.
I really like the way that the undocked panels are hidden when MM is not active too. I don't know if thats something with the script or normal behavior for an un-docked dockable (might should be an optional behavior).
And welcome also, very nice script.
Posted: Thu Jul 27, 2006 2:05 pm
by Teknojnky
Peke wrote:I Noticed One Small thing that I misses BACK and FWD Buttons for navigating the links.
Standard IE navigation keys are ALT + LEFT/RIGHT arrows, and backspace also works to go backwards.
They should work for any IE based inet control, I use them alot for google art finder and such.
Posted: Thu Jul 27, 2006 2:27 pm
by jn
First of all, thanks for your positive feedback.
Peke wrote:I Noticed One Small thing that I misses BACK and FWD Buttons for navigating the links.
I think they can be incorporated quite easily.
DiddeLeeDoo wrote:Not quite sure about those Global Variables you want to get rid of, but SDB.Objects may do the trick.
This is indeed a nice pointer, thank you.
The code was a one-day-work. Thinking about it later, I recognized that using globals, I would need only the panels array, so getting rid of the othe globals is a straightforward task. I'll try the Object stuff and see how it could help.
I must admit that I didn't find the API docs before adapting the last.fm script (the docs are very well-hidden
). I'll post a rewrite of the above script in the next week (beign sure that I won't find any time before
)
Jörg
Posted: Fri Jul 28, 2006 10:09 pm
by DiddeLeeDoo
Tried this link
Code: Select all
http://www.google.com/search?hl=en&q=%artist%&btnI=I%27m+Feeling+Lucky
but I guess there's some illegal characthers there somehow... as it didn't work out.
Added:.... actually it was not such a great idea to use this, as I notice many artists web pages feature 'Auto Play Music'.. that play over the current song...
got the link above to work using another technique
Posted: Fri Aug 04, 2006 11:55 am
by Teknojnky
I am trying to use the following to do a google image seach (similar to google art finder script), but it's not working as expected..
Code: Select all
<site>
<name>Google</name>
<caption>Google</caption>
<description>Search Google for Images</description>
<start>http://images.google.com</start>
<url>http://images.google.com/search?q="%artist%"+"%album%"</url>
</site>
Also, please consider adding an %albumartist% variable.
What I am looking to accomplish is a replacment for the built in album art window, that dynamically loads images via google images.
Posted: Sun Aug 06, 2006 4:52 am
by jn
As promised, here is a new version. It turned out to be almost a complete rewrite of the original script. I am now using a class to store all related items in one place, making the code much cleaner (at last I hope so).
Things that were done:
- The menu now appears as a submenu of the "search" toolbar only
- Back and Forward buttons are implemented (credits to Peke), as well as a "Home" button to navigate back to the original search page
- Globals are eliminated, using the above mentioned class and the "SDB.Objects" object (Credits to DiddeLeeDoo)
- %albumartist% is now possible (Credits to Teknojnky)
Here is the code. The format of the config file hasn't changed, so I won't repost it here.
Have fun with it!
Jörg
Posted: Sun Aug 06, 2006 5:07 am
by jn
Teknojnky wrote:I am trying to use the following to do a google image seach
First, please make sure that as well the name
and the caption are unique (this is a limitation of the script
). Next, you are using a slightly wrong URL -- the path should be image, not search. And last, I have added the %albumartist% variable.
Putting it all together, you have
Code: Select all
<site>
<name>GoogleImages</name>
<caption>Google Images</caption>
<description>Search Google for Images</description>
<start>http://images.google.com</start>
<url>http://images.google.com/images?q="%albumartist%"+"%album%"</url>
</site>
which seems to work here
Jörg