Easy/fast nested nodes & FilesToEdit hiding (09Nov08)

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

sbondi

Post by sbondi »

nynaevelan wrote:I c where I missed that 'AND', unfortunately I threw that one in after I completed my testing because I do not have any 'Skits' in my collection. Were you able to give any thought on how to accomplish all the "Not Likes' in some kind of list? I would really be interested in knowing because Mizery_Made's idea has given me some thoughts on a new node or two but I would like to have that multvalue list in a better format if possible? Just when I thought my nodes were complete. :-?

Nyn
*$%*^, I lost my whole reply :(

Well, here it goes again.

-----

Mizery_Made / Nyn,

Here are some queries that may be in the right direction to what Mizery_Made originally asked for:

1. This one lists tracks that are in an Album where "at least some tracks are missing Conductor":

Code: Select all

trackCriteria="trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE (Songs2.IDAlbum = Songs.IDAlbum)) <> (SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor = ''))))"
2. This one lists tracks that are in an Album where "all tracks are missing Conductor":

Code: Select all

trackCriteria="trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor <> ''))) = 0)"
Mizery_Made, is this along the right lines? If needed, we can add support for the list of track titles that will not have Composer (Intro, Outro, Skit, etc.).

Note the SQL/SQLite syntax for using "AS" to compare the same field in the same table with a sub-query.

Regards,

Steve
sbondi

Re: New site host

Post by sbondi »

nohitter151 wrote:
sbondi wrote:I am now hosted at gigacities.net (no ads, more file types, more space, still free, etc.), so note the new links in the original post. Also, at this time, the .INI file no longer requires the extra .TXT extension on the host site. Hopefully, soon the .VBS file will also not require it.
sbondi, why don't you try making an installation package for the script? You could set up one package for first time install, and another one for simple script updating (so the .ini is not overwritten).
Thanks for the suggestion, nohitter151 :)

It is near the top of my "BEING CONSIDERED" list (see the bottom of my ReadMe file). Nyn and Jörg ("jn") also suggested it, but I had always thought that since my script was based on a .INI file - basic users would not likely be using it; and thus, it was not worth any extra effort for implementing a package that just copied it to a folder.

However, I notice more and more that non-techie users are showing interest (Note: due in large part to Nyn posting her screen shots illustrating some of the script's potential), and I am more motivated to make it even more user-friendly.
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Post by Mizery_Made »

Woah, sbondi. "2. This one lists tracks that are in an Album where "all tracks are missing Conductor":" sounds like it should do exactly what I'm looking for. If it will indeed filter out any album that has a value in the conductor field for even just one track, then it should do the trick perfectly. If I've done an album, then as much information that is available to me has been entered (either from the booklet, or online source) so if a single track on an album has something in that value, I consider it 'done,' least for now.

Often times, it's the Skits, Intros, etc that don't have any information for this field as they have no backing instrumental, thus I gave them as an example of the problem incase they could be used in a work-a-round. However, the sounds of your query seems to get straight to the point.

I'm not able to test it right this moment, I'm on an old crappy PC that I don't even have MediaMonkey or any music on at the moment, but I should be at the other PC sometime later tonight to be able to test it and report back.

As for the installation package. I don't think it has much to do with 'n00bs' and more in the lines of 'ease of use.' It's surely easier to download an 'installer' and just doulbe click and let it do the job then it is to navigate to the scripts folder, open the script, enter the new version and save.

Also, Scripts would be an easy way to keep track of what version your using. You can just open up the extensions window and you have a version number right there for the script. However, I don't recall you using a version number set up and instead have been using a update date type of deal. So...

Not to mention, if the 'Script Database' that has been touched on by some of the developers ever makes it's grand debut, having a script installer for the script would surely mean easier updating (automatic update checking or whatever)
nohitter151
Posts: 23640
Joined: Wed Aug 09, 2006 10:20 am
Location: NJ, USA
Contact:

Re: New site host

Post by nohitter151 »

sbondi wrote:
nohitter151 wrote:
sbondi wrote:I am now hosted at gigacities.net (no ads, more file types, more space, still free, etc.), so note the new links in the original post. Also, at this time, the .INI file no longer requires the extra .TXT extension on the host site. Hopefully, soon the .VBS file will also not require it.
sbondi, why don't you try making an installation package for the script? You could set up one package for first time install, and another one for simple script updating (so the .ini is not overwritten).
Thanks for the suggestion, nohitter151 :)

It is near the top of my "BEING CONSIDERED" list (see the bottom of my ReadMe file). Nyn and Jörg ("jn") also suggested it, but I had always thought that since my script was based on a .INI file - basic users would not likely be using it; and thus, it was not worth any extra effort for implementing a package that just copied it to a folder.

However, I notice more and more that non-techie users are showing interest (Note: due in large part to Nyn posting her screen shots illustrating some of the script's potential), and I am more motivated to make it even more user-friendly.
Well I mainly suggested it as it would probably have solved your uploaded 'filetypes' problem, but I can totally understand where you're coming from, too.
MediaMonkey user since 2006
Need help? Got a suggestion? Can't find something?

Please no PMs in reply to a post. Just reply in the thread.
sbondi

Post by sbondi »

Mizery_Made wrote:Woah, sbondi. "2. This one lists tracks that are in an Album where "all tracks are missing Conductor":" sounds like it should do exactly what I'm looking for. If it will indeed filter out any album that has a value in the conductor field for even just one track, then it should do the trick perfectly. If I've done an album, then as much information that is available to me has been entered (either from the booklet, or online source) so if a single track on an album has something in that value, I consider it 'done,' least for now.

Often times, it's the Skits, Intros, etc that don't have any information for this field as they have no backing instrumental, thus I gave them as an example of the problem incase they could be used in a work-a-round. However, the sounds of your query seems to get straight to the point.

I'm not able to test it right this moment, I'm on an old crappy PC that I don't even have MediaMonkey or any music on at the moment, but I should be at the other PC sometime later tonight to be able to test it and report back.

As for the installation package. I don't think it has much to do with 'n00bs' and more in the lines of 'ease of use.' It's surely easier to download an 'installer' and just doulbe click and let it do the job then it is to navigate to the scripts folder, open the script, enter the new version and save.

Also, Scripts would be an easy way to keep track of what version your using. You can just open up the extensions window and you have a version number right there for the script. However, I don't recall you using a version number set up and instead have been using a update date type of deal. So...

Not to mention, if the 'Script Database' that has been touched on by some of the developers ever makes it's grand debut, having a script installer for the script would surely mean easier updating (automatic update checking or whatever)
So when you try it, just edit this node (it has trackCriteria #2):

NOTE: Edited from previous post - thanks, Nyn! All those trackCriteria were a bit much ;)

Code: Select all

[Testing Purposes] 
icon=Artist 
sortLike=Artist 
level=AlbumArtist 
level=Album 
trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor <> ''))) = 0)"" 
parent="Personal Node"
P.S. Thanks for further enlightening my perception about the installation package. Just more fuel for me to work on this next :)
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Post by Mizery_Made »

Thought of another reason an installer might be useful. If I remember correctly, if you install a script from an installer, it's able to 'refresh the monkey' or whatever and call that script and allow you to start using it's functions immediately. Doing a manual install would require restarting the monkey for it to load up the script.

If I'm remembering correctly that is.

EDIT: Bingo, your node looks to be doing the trick sbondi. Much appreciated :) One small question though, with that query, it there also an easy way to toss in a statement that will exclude albums with only 2-3 tracks? I've got some loose tracks that I don't have the full album of. No biggie if not, still leaps and bounds better then I expected. :)

EDIT 2: I think I found a work-a-round for my other problem (the singles and such being listed) I use the Custom 1 field as a 'grouping field' of sorts, adding "--Album--" for complete albums. Using that, and with some experimentation, I came up with:

Code: Select all

[Missing Producer(s) - Test]
icon=Artist
sortLike=Artist
level=AlbumArtist
level=Album
trackCriteria="Custom1 LIKE '--Album--'"
trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor <> ''))) = 0)"
parent="Files to Edit"
It appears to be working as expected. I no longer see the non-full albums I was seeing before, while still only seeing those albums missing information in the Conductor field. This might not be the most elegant way of achieving it, but hey... it's working, right? :P Again, thanks for the help Nyn & sbondi, I think when I finally get around to reading the manual and examining the sample INI in depth, I'm going to love this script. :D
callmetom
Posts: 90
Joined: Sun Jul 15, 2007 12:18 pm

Time added

Post by callmetom »

Hi everybody !

Nice Script btw !! :P

I would need the TimeAdded in Addition to the DateAdded.

So i could do the following Query for example:

Show me the albums added in the last 2 hours

Its that possible now or can be done in future versions ?


Thanx
Tom
My Specs:
Windows XP / SP2
Always latest MM version
Sorry for my sometimes bad english (-:
sbondi

Re: Time added

Post by sbondi »

callmetom wrote:Hi everybody !

Nice Script btw !! :P

I would need the TimeAdded in Addition to the DateAdded.

So i could do the following Query for example:

Show me the albums added in the last 2 hours

Its that possible now or can be done in future versions ?


Thanx
Tom
It is possible by assigning trackCriteria SQLite statements, but I have not assigned any easyCriteria for this purpose.

You will need trackCriteria as follows:

Code: Select all

trackCriteria="(julianday('now')*24 - (julianday(DateAdded) + julianday('1899-12-30'))*24) <= 2)"
sbondi

Post by sbondi »

Mizery_Made wrote:Thought of another reason an installer might be useful. If I remember correctly, if you install a script from an installer, it's able to 'refresh the monkey' or whatever and call that script and allow you to start using it's functions immediately. Doing a manual install would require restarting the monkey for it to load up the script.

If I'm remembering correctly that is.

EDIT: Bingo, your node looks to be doing the trick sbondi. Much appreciated :) One small question though, with that query, it there also an easy way to toss in a statement that will exclude albums with only 2-3 tracks? I've got some loose tracks that I don't have the full album of. No biggie if not, still leaps and bounds better then I expected. :)

EDIT 2: I think I found a work-a-round for my other problem (the singles and such being listed) I use the Custom 1 field as a 'grouping field' of sorts, adding "--Album--" for complete albums. Using that, and with some experimentation, I came up with:

Code: Select all

[Missing Producer(s) - Test]
icon=Artist
sortLike=Artist
level=AlbumArtist
level=Album
trackCriteria="Custom1 LIKE '--Album--'"
trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor <> ''))) = 0)"
parent="Files to Edit"
It appears to be working as expected. I no longer see the non-full albums I was seeing before, while still only seeing those albums missing information in the Conductor field. This might not be the most elegant way of achieving it, but hey... it's working, right? :P Again, thanks for the help Nyn & sbondi, I think when I finally get around to reading the manual and examining the sample INI in depth, I'm going to love this script. :D
This is great, Mizery_Made! Already using the power!

FYI, a cleaner (but possibly slower way) would have been:

Code: Select all

[Missing Producer(s) - Test]
icon=Artist
sortLike=Artist
level=AlbumArtist
level=Album
trackCriteria="(SELECT count(*) FROM Songs AS Songs3 WHERE (Songs3.IDAlbum = Songs.IDAlbum)) > 3)"
trackCriteria="((SELECT count(*) FROM Songs AS Songs2 WHERE ((Songs2.IDAlbum = Songs.IDAlbum) AND (Songs2.Conductor <> ''))) = 0)"
parent="Files to Edit"
SIDE NOTE: Since your added query was for an exact match (case-insensitive) as opposed to a "partial" match, you did not need the LIKE clause; you could have had just:

Custom1 = '--Album--'

Regards,

Steve
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Post by Mizery_Made »

sbondi wrote:SIDE NOTE: Since your added query was for an exact match (case-insensitive) as opposed to a "partial" match, you did not need the LIKE clause; you could have had just:

Custom1 = '--Album--'
Surprised I didn't catch that one myself. I'll look into the other method you suggest and see how the performance may differ.
sbondi

Just 1 month old and over 5,000 views :)

Post by sbondi »

Thanks to Nyn (there were only about 50 views before she posted her screen shots)!

And thanks to all of you for supporting the script :)

More to come ...

Track 1. Continue to make it more user-friendly:

a. MMIP installation package
b. User interface for editing nodes
c. English-like language that can be interpreted into complex SQL statements

Note: Regarding item b, I plan for the core configuration to always be in the .INI file. The user interface would just visually allow the editing of nodes and then save them back to the .INI file. Thus, the underlying mechanism would be the same with no additional impact on performance or compromise the configurability for expert users that want to directly edit the .INI file.

Track 2. Continue to improve performance

a. Faster MediaMonkey startup time
b. Temporary tables for frequent queries

Track 3. Beyond ...

a. Auto-tag fixing logic
b. Smarter auto-playlist logic
c. Diverse iPod integration
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Post by nynaevelan »

Looking forward to the upgrades, especially 1c, hopefully this will help me get some of my ideas out of my head and into my nodes. As it is now I have 4 level 1 nodes, 20 level 2 nodes and 32 level 3 nodes. Have I mentioned I'm a little anal when it comes to organizing? :-? I don't use any of MM's original nodes except for Files to Edit and I only keep that around because I need Bex's Tagging Inconsistencies and Advanced Duplicate Find and Fix scripts.

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
spacefish
Posts: 1427
Joined: Mon Jan 14, 2008 7:21 am
Location: Denmark

Post by spacefish »

Everything sounds great!

I just wanted to say that with the new refresh logic and the manual options I'm having an absolute blast with this script and NO performance problems! I can play all the concerts and dj mixes I like with no "gaps". When I think of a new node, I love being able to edit my .ini file and reload it from within MM rather than having to restart. And the refresh node count button is perfect for me.

Thanks again for all your work on this!

Cheers,
Paula
Image
MM Gold 3.0.3.1183 : Vista HP SP1 (x86) : Zen Stone (2GB)
Zekton: An original MM3 skin by Eyal.
Scripts in Use: Add/Remove PlayStat | Auto Album DJ | AutoRateAccurate | Backup
Case & Leading Zero Fixer | Classification & Genre Changer | Clean Scripts.ini | Clear
Field | Custom Report | Discogs Auto-Tag Web Search | Forget Crossfade | Invert
Selection/Select None | Last 100... | Lyricator | Lyrics to Instrumental | MonkeyRok
MusicBrainz Tagger | My Custom Nodes | Now Playing Art Node | Play History & Stats
Right Click for Reports | Right Click for Scripts | Right Click for Web | Stop After Current
WebNodes
spacefish
Posts: 1427
Joined: Mon Jan 14, 2008 7:21 am
Location: Denmark

Original Date?

Post by spacefish »

I have found a global use for this field and would like to make use of a node that shows me which are empty. I looked through the readme but I wasn't sure if it was supported. I have tried

Code: Select all

[No Original Date]
icon=Year
sortLike=Artist
easyCaption=BaseCaptionAndTrackCount
hideIfEmpty=1
refresh=1
trackCriteria="(OrigYear = '')"
parent="Files to Edit"
but that doesn't seem to work. Any help appreciated. :)
Image
MM Gold 3.0.3.1183 : Vista HP SP1 (x86) : Zen Stone (2GB)
Zekton: An original MM3 skin by Eyal.
Scripts in Use: Add/Remove PlayStat | Auto Album DJ | AutoRateAccurate | Backup
Case & Leading Zero Fixer | Classification & Genre Changer | Clean Scripts.ini | Clear
Field | Custom Report | Discogs Auto-Tag Web Search | Forget Crossfade | Invert
Selection/Select None | Last 100... | Lyricator | Lyrics to Instrumental | MonkeyRok
MusicBrainz Tagger | My Custom Nodes | Now Playing Art Node | Play History & Stats
Right Click for Reports | Right Click for Scripts | Right Click for Web | Stop After Current
WebNodes
Mizery_Made
Posts: 2283
Joined: Tue Aug 29, 2006 1:09 pm
Location: Kansas City, Missouri, United States

Re: Original Date?

Post by Mizery_Made »

spacefish wrote:Any help appreciated. :)

Code: Select all

[No Original Date]
icon=Year
sortLike=Artist
easyCaption=BaseCaptionAndTrackCount
hideIfEmpty=1
refresh=1
trackCriteria="OrigYear = -1"
parent="Files to Edit"
:wink:
Last edited by Mizery_Made on Mon Feb 18, 2008 7:28 am, edited 2 times in total.
Post Reply