Page 1 of 28

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

Posted: Sun Jan 13, 2008 7:05 pm
by sbondi
UPDATED 09-Jan-2011

I have not updated this script in over 2 years, and it seems like it does not work well with the latest versions of MediaMonkey. Thus, I am removing all download links.

Posted: Sun Jan 13, 2008 8:01 pm
by nynaevelan
This is fantasic, now I do not have to wade through files to edit nodes which I do not use and I can minimize some of my MNs. Thank you!!

Nyn

Check out the latest changes

Posted: Fri Jan 18, 2008 3:38 am
by sbondi
See link in revised original post

More additions

Posted: Sat Jan 19, 2008 11:22 am
by sbondi
Added lots more stuff (displayNodeCount, ignoreTopLevelCounts, etc.)

Posted: Sat Jan 19, 2008 12:29 pm
by nynaevelan
This is a very cool script, it allows me the ability to add nodes in an organizational manner which I love and the enhancements keep getting better an better. This in conjunction with Magic Nodes makes my Monkey an awesome Audio program. Here is an example what I've been using your script for, I have a few more in the "Edits" section but since I do not have any tracks with the search criteria they are being hidden.

Image

Keep up the good work. :P
Nyn

Posted: Sat Jan 19, 2008 2:33 pm
by spacefish
Does this script have the capability to add say, an Unknown Lyrics node to Files to Edit, among other things?

And nynaevelan, how did you get Files to Edit shortened to Edits? I'd very much like to change the names on many of my nodes but haven't found a way to do that. What script/plugin are you running that allows you to do that, if any?

Thanks!

Posted: Sat Jan 19, 2008 4:20 pm
by sbondi
spacefish wrote:Does this script have the capability to add say, an Unknown Lyrics node to Files to Edit, among other things?

And nynaevelan, how did you get Files to Edit shortened to Edits? I'd very much like to change the names on many of my nodes but haven't found a way to do that. What script/plugin are you running that allows you to do that, if any?

Thanks!
Yes, you can create your own parent nodes, and then put custom nodes under them. Or, you can put your own custom nodes (like "Unknown Lyrics") under the existing "Files to Edit" node. You can also hide any existing FileToEdit subnodes, add your own under "FilesToEdit", and have "FilesToEdit" open as expanded at Startup (if you want). It is really easy with the .ini file. Check out the sample .ini file to get a feel about how you can hide existing FilesToEdit nodes, create new custom parent nodes, add custom nodes to your parents, add custom nodes to FilesToEdit, always expand any desired nodes at Startup, and include caption counts in nodes (like "Unknown Lyrics") which can hide themselves when no tracks meet their criteria.

Let me know if you have any questions in configuring it to your needs.

Also, nynaevelan did not display FilesToEdit in that particular screen shot. "Edits" is a custom parent that she created herself.

Posted: Sat Jan 19, 2008 4:40 pm
by spacefish
Thanks for the reply. Sounds very cool. Going to try it out in the morning when my brain is fresh. :)

Posted: Sat Jan 19, 2008 4:56 pm
by dreadlyone
nynaevelan, can you post up your "ini" file? I like what you did and want to see how you did it. I understand a little on how to build and customize the ini file, but I think that if I saw yours, I would get a better handle on it.

Thanks in advance.

Posted: Sat Jan 19, 2008 7:14 pm
by nynaevelan
dreadlyone wrote:nynaevelan, can you post up your "ini" file? I like what you did and want to see how you did it. I understand a little on how to build and customize the ini file, but I think that if I saw yours, I would get a better handle on it.

Thanks in advance.
Sure here is a copy of my .ini file:

Code: Select all

[Options] 
unknownCaption="[Unknown]" 
defaultIcon="Title" 
defaultSortLike="None" 
refreshWithTracksConvertedOrRipped=1 
refreshWithTracksChanged=1 

;------------------------------------------------------------------------ 

[Library] 
expandExisting=1
checkExistingChildren=1 

[Files to Edit] 
expandExisting=0
checkExistingChildren=1 

[Unclassified Tracks] 
checkExistingChildren=1
;------------------------------------------------------------------------ 

[Duplicate Titles] 
hideExisting=1 

[Unknown Title] 
hideExisting=1 

[Unknown Artist] 
hideExisting=1 

[Unknown Album] 
hideExisting=1 

[Unknown Rating] 
hideExisting=1 

[Unknown Genre] 
hideExisting=1 

[Unknown Year] 
hideExisting=1 

[Unknown Occasion] 
hideExisting=1 

[Multiple Artist Albums] 
hideExisting=1 

[Unknown Album Art] 
hideExisting=1 

;------------------------------------------------------------------------ 

[Personal Node] 
icon=Rating
expandAtStartup=1 

;------------------------------------------------------------------------ 

[Library Additions] 
icon=Title 
parent="Personal Node" 

[Added Today] 
icon=Year 
sortLike=Genre 
level1=Genre
displayTrackCount=1
trackCriteria="((CAST(#VB#CDbl(Now)#VB# AS Integer)) - CAST(DateAdded AS Integer) = 0)" 
parent="Library Additions" 

[Added Yesterday] 
icon=Year 
sortLike=Genre 
level1=Genre
displayTrackCount=1
trackCriteria="((CAST(#VB#CDbl(Now)#VB# AS Integer)) - CAST(DateAdded AS Integer) = 1)" 
parent="Library Additions" 

[Date Added] 
icon=Year 
sortLike=Genre 
displayTrackCount=1
level1=DateAdded:DESC 
level2=Genre 
trackCriteria="(ID <> '')" 
parent="Library Additions" 

[Date Added by Genre] 
icon=Genre 
sortLike=Genre 
level1=DateAdded:DESC 
level2=Genre 
displayNodeCount=0
displayTrackCount=1
trackCriteria="(ID <> '')" 
parent="Library Additions" 

[Date Added by Genre/Artist] 
icon=Artist 
sortLike=Artist 
level1=DateAdded:DESC 
level2=Artist 
level3=Genre 
level4=Title 
displayNodeCount=0
displayTrackCount=1
trackCriteria="(ID <> '')" 
parent="Library Additions" 

;------------------------------------------------------------------------ 

[Playlist Info] 
icon=Title 
parent="Personal Node" 

[Songs In Playlist] 
icon=Playlist 
sortLike=Title 
displayTrackCount=1
level1=Artist 
level2=Playlist 
level3=Title 
trackCriteria="exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

[Playlist Totals] 
icon=Playlist 
sortLike=Title 
displayNodeCount=0
displayTrackCount=1
level1=Playlist 
trackCriteria="exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

[Songs Not In Playlist] 
icon=Playlist 
sortLike=Title 
displayTrackCount=1
level1=Genre 
level2=Artist 
trackCriteria="not exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

;------------------------------------------------------------------------ 

[Edits] 
icon=Title 
parent="Personal Node" 

[Additional Albums] 
icon=Album 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
level1=Genre 
level2=Title 
trackCriteria="(Custom3 <> '')" 
parent="Edits" 

[Comments] 
icon=Artist 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
trackCriteria="(Comment <> '')" 
parent="Edits" 

[Composer Not Empty] 
icon=Artist 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
level1=Title
trackCriteria="(Author <> '')" 
parent="Edits" 

[Featured On Not Empty] 
icon=Album 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
level1=Genre 
level2=Title 
trackCriteria="(Custom2 <> '')" 
parent="Edits" 

[Missing BPM] 
icon=Album 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
trackCriteria="(BPM = -1)" 
parent="Edits" 

[Missing Disc Number] 
icon=MusicCD 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
trackCriteria="(DiscNumber = '')" 
parent="Edits" 

[Missing Involved People] 
icon=Artist 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
trackCriteria="(InvolvedPeople = '')" 
parent="Edits" 

[Missing Lyrics] 
icon=Album 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
level1=Genre 
level2=Title 
trackCriteria="(Lyrics = '')" 
parent="Edits" 

[Missing Track Number] 
icon=MusicCD 
sortLike=Artist 
displayTrackCount=1
hideWhenEmpty=1 
trackCriteria="(TrackNumber = '')" 
parent="Edits" 

;------------------------------------------------------------------------ 

[Play Info] 
icon=Title 
parent="Personal Node" 

[New For Review] 
icon=Playlist 
sortLike=Title 
displayNodeCount=1
displayTrackCount=1
level1=Artist 
level2=Playlist 
level3=Title 
trackCriteria="((CAST(#VB#CDbl(Now)#VB# AS Integer)) - CAST(DateAdded AS Integer) <= 5 AND PlayCounter=0)" 
parent="Play Info"

[Never Played] 
icon=MusicCD 
sortLike=Genre 
displayNodeCount=1
displayTrackCount=1
level1=Genre 
level2=Artist 
level3=Title 
trackCriteria="(PlayCounter=0)" 
parent="Play Info" 

[Played Today] 
icon=MusicCD
sortLike=Genre 
displayNodeCount=1
displayTrackCount=1
level1=Genre 
trackCriteria="((CAST(#VB#CDbl(Now)#VB# AS Integer)) - CAST(LastTimePlayed AS Integer) = 0)"   
parent="Play Info" 

[Played Yesterday] 
icon=MusicCD
sortLike=Genre 
displayNodeCount=1
displayTrackCount=1
level1=Genre 
trackCriteria="((CAST(#VB#CDbl(Now)#VB# AS Integer)) - CAST(LastTimePlayed AS Integer) = 1)"    
parent="Play Info" 

[Played Less Than 5 Times] 
icon=MusicCD 
sortLike=Genre 
displayNodeCount=1
displayTrackCount=1
level1=Played 
level2=Genre 
level3=Title 
trackCriteria="(PlayCounter between 1 and 5)" 
parent="Play Info" 

[Play Counts] 
icon=MusicCD 
sortLike=Genre 
displayTrackCount=1
level1=Played:DESC 
level2=Title 
trackCriteria="(PlayCounter > 0)" 
parent="Play Info" 

[Played Artists] 
icon=MusicCD
sortLike=Genre 
displayNodeCount=1
displayTrackCount=1
level1=Artist
level2=DESC:Played
trackCriteria="(PlayCounter>0)"    
parent="Play Info" 

;------------------------------------------------------------------------ 
Also, here is what my custom Files To Edit Node looks like, I have hidden all the features which I do not use. I use Bex's Tagging Inconsistensies Script for most of my editing needs.

Image

Nyn

Posted: Sun Jan 20, 2008 12:58 am
by spacefish
Thanks, nyn. That's very helpful. :)

Posted: Sun Jan 20, 2008 3:45 am
by spacefish
Just installed this with the default .ini and I can already see how powerful it is. I can't wait to dig in and customize it to my taste. Thanks so much! :)

Posted: Sun Jan 20, 2008 4:21 am
by sbondi
spacefish wrote:Just installed this with the default .ini and I can already see how powerful it is. I can't wait to dig in and customize it to my taste. Thanks so much! :)
That is great to hear :D

FYI, I just uploaded a new version to the link above that supports a whole lot more icon types and includes a new "easyCriteria" feature to help with pre-defined SQLite criteria. You can get a good idea how it is used, since the new default .INI file uses "easyCriteria" instead of "trackCriteria" for most custom nodes.

Posted: Sun Jan 20, 2008 4:39 am
by spacefish
Question: Is there a way to exclude items from a criteria?

For example, the Fix 'Artists' node looks for artists with / in the name. This inevitably brings AC/DC and DJ /rupture although it's not necessary to fix those artists. The slashes are part of the name.

Posted: Sun Jan 20, 2008 4:49 am
by sbondi
spacefish wrote:Question: Is there a way to exclude items from a criteria?

For example, the Fix 'Artists' node looks for artists with / in the name. This inevitably brings AC/DC and DJ /rupture although it's not necessary to fix those artists. The slashes are part of the name.
I store them as "AC-DC", so I have no "Artists" with / in them, and thus, if there are any that pop up, this was from an old convention that slipped in from FreeDB or someplace instead of the correct ";" convention.

In any case, that is just the way I do it. What would you define as your problem criteria? If it is no / with a space on each side, then the "trackCriteria" would be:

"(Artist = '') OR (Artist LIKE '% / %') OR (Artist LIKE '% %')"

Notice the space on each side of the /.

Or if you like the original criteria and just want to exclude those 2 exceptions:

"(Artist = '') OR ((Artist LIKE '%/%') AND (Artist <> 'AC/DC') AND (Artist <> 'DJ /rupture')) OR (Artist LIKE '% %')"