TweakMonkey (advanced options page) 1.02 - 4/2/2007 [MM2+3]

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

Moderators: Peke, Gurus

mikolajek
Posts: 14
Joined: Tue Mar 14, 2006 5:39 am
Location: Warsaw, Poland
Contact:

Is it possible to remove also the 'Search' option

Post by mikolajek »

I love this script but I have a question - TM makes possible to remove all the nodes from tree except the "Search" one.

I never use it - is it possible to remove it also, for example in the new version of the TM?
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

is it possible to remove it also, for example in the new version of the TM?
Hiding all nodes (including search node) should indeed be possible (I don't think that it would give problems with MM)
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex »

I believe that if you hide the search node you'll disable the search itself since the result can't be presented anywhere...
Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!

All My Scripts
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Good news: I just tested this and it gives no problems.
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex »

Cool! :)
Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!

All My Scripts
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

TODO:
- Add auto-expand ability for "Net Radio" and "Web" nodes: http://www.mediamonkey.com/forum/viewtopic.php?t=14398
- Make sure that the worker script is called through the wscript/cscript application (and not directly through the file).
- Add checkbox to enable/disable setting of startup node (or check if the StartupNode script is present and activated)
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

I've modified the 1.0 script to better suite my needs.

I did not really add any code, I simply re-arranged some of the existing logic.

My purpose was to avoid having an empty now playlist if MM crashes or does not get shut down properly.

I've added the comments to the script and affected sections.

Basically, 'use fast nowplaying loading' will not delete the database copy of the now playlist at startup, and it will check that the NPSaved playlist does exist before clearing anything in the existing now playing window.

Then at shut down, will check to make sure the NPSaved playlist exists, delete it, then re-create a new NPSaved with now playing list that was present at shut down.

This in effect restores the default functionality that if MM does not shut down properly for any reason, it will restart with the last saved NPSaved playlist and position.

There are no other changes or improvements, feel free to continue to use the existing version if you don't utilize the 'fast nowplaying loading' option.


NOTE: please ensure you are using tweakmonkey.vbs 1.0 from the installer HERE, then you can copy the below code into tweakmonkey.vbs to update the script.

Also, if you are still using the old original tweakmonkeyconfig.vbs be sure to remove or rename the .vbs to .bak or something.

Code: Select all

'====================================================================================
' 
' MEDIAMONKEY SCRIPT: TweakMonkey v1.01 (last updated 2007-2-21)    by   The MediaMonkey Community
'  Initiated by Teknojnky on 2006-21-03 and open development for the whole MediaMonkey Community
'
'  TweakMonkey is a script used to tweak MediaMonkey, i.e. to make more advanced MediaMonkey settings
'   and changes available through MediaMonkey's options panels (See the integrated TweakMonkey options panes)
' 
'  Responsability for using this script (in all cases, in any way) is all on your own shoulders.
'
'====================================================================================

' StartupNode (Steegy)       http://www.mediamonkey.com/forum/viewtopic.php?t=7656
' Backup script (Trixmoto)   http://www.mediamonkey.com/forum/viewtopic.php?t=7746

'***** You are free to do modify this code, but please detail any changes you make public 
'*****  and make sure you credit yourself (and previous authors).
'***** Changes/additions must be true to the spirit, i.e. don't include things that are better of in separate scripts.

' TweakMonkey v1.0 (2006-12-19) implemented by Steegy'

' updated Feb 21 2007 by Teknojnky
' modfied the startup and shut down procedures for fast load now playing
' startup proc first checks for NPSaved playlist before clearing the current NP 
' and leaves the NPSaved intact in case MM crashes'
' shutdown proc will now check for existing NPSaved and delete it, 
' then re-create a new one with the current NP list'
' this in effect prevents having an empty NP if MM crashed, 
' the previous (before crash) NPSaved is re-used. A side effect of this is
' that a playlist called "NPSaved" remains in the playlist node'

' TODO -----------------------------------------------------
' Randomize NowPlaying playlist on startup (test if MM has fixed the necessary script methods)
' Improve backup / restore functionality (autobackup each x days/startups)
' Interface to change MediaMonkey music file associations + icons + option to auto-set at startup (if MM 3.0 doesn't solve this)
' Equaliser auto on / auto of / don't touch (is this necessary ?)

    
Option Explicit


Const ScriptName = "TweakMonkey"     ' Script Name
Const Version = "1.01"                ' Version
Const LastUpdated = "2007-2-21"     ' Last updated

Dim Tree : Set Tree = SDB.MainTree
Dim INI : Set INI = SDB.IniFile
Dim UI : Set UI = SDB.UI 

Dim NodeRef : Set NodeRef = CreateObject("Scripting.Dictionary")
With NodeRef
    .Add "NowPlaying",     Tree.Node_NowPlaying
    .Add "Library",        Tree.Node_Library
    .Add "Location",       Tree.Node_Location
    .Add "Artist",         Tree.Node_Artist
    .Add "Album",          Tree.Node_Album
    .Add "Genre",          Tree.Node_Genre
    .Add "Year",           Tree.Node_Year
    .Add "Rating",         Tree.Node_Rating
    .Add "Classification", Tree.Node_Classification
    .Add "FilesToEdit",    Tree.Node_FilesToEdit
    .Add "VirtualCD",      Tree.Node_VirtualCD
    .Add "Previews",       Tree.Node_Previews
    .Add "Playlists",      Tree.Node_Playlists
    .Add "MyComputer",     Tree.Node_MyComputer
End With

Dim NodeCantExpand : Set NodeCantExpand = CreateObject("Scripting.Dictionary")
With NodeCantExpand            ' Set to True if a node can't be expanded (use False, or don't add an entry at all, if the node can be expanded)
    .Add "NowPlaying",     True
End With

Dim NodeNoLibraryChild : Set NodeNoLibraryChild = CreateObject("Scripting.Dictionary")
With NodeNoLibraryChild        ' Set to True if a subnode of Library node (use False, or don't add an entry at all, if the node isn't)
    .Add "NowPlaying",     True
    .Add "Library",        True
    .Add "Playlists",      True
    .Add "MyComputer",     True
    .Add "Radio",          True
    .Add "Web",            True
End With

Const CTL_LINE_HEIGHT = 16

Dim WorkerArguments
Dim DEFAULT_BACKUP_DIR : DEFAULT_BACKUP_DIR = SDB.ApplicationPath & "Scripts\Auto\TweakMonkey\Backups\"


' ******************************************************************************************************
' EVENT OnShutdown
' **********************************

Sub SDB_OnShutDown

    SetINIString "PlaybackPosition", SDB.Player.PlayBackTime
    SetINIString "PlaybackState", SDB.Player.IsPlaying & "-" & SDB.Player.IsPaused

    If GetINIBool("UseFastNPLoading", False) Then
          If SDB.PlaylistByTitle("NPSaved").Id <> 0 Then 'if old NPSaved exists then delete it'
              SDB.PlaylistByTitle("NPSaved").Delete
          End If
        SetINIString "NPCurrentSong", SDB.Player.CurrentSongIndex
        Dim RootPlaylist : Set RootPlaylist = SDB.PlaylistByTitle("")
        If SDB.PlaylistByTitle("NPSaved").Id <> 0 Then SDB.PlaylistByTitle("NPSaved").Delete
        Dim NPSaved : Set NPSaved = RootPlaylist.CreateChildPlaylist("NPSaved")
        NPSaved.Clear
    
        Dim CSL : Set CSL = SDB.Player.CurrentSongList
        Dim i
        For i = 0 To CSL.Count - 1
            NPSaved.AddTrack(CSL.Item(i))
        Next
    
        SDB.Player.PlaylistClear
    End If
    
    If GetINIBool("ClearNowPlayingOnExit", False) Then
        SDB.Player.PlaylistClear
    End If
    
    
    SetOfflineWorker "ClearSearchHistory", GetINIBool("Always_ClearSearchHistory", False)
    SetOfflineWorker "ClearPlaylistHistory", GetINIBool("Always_ClearPlaylistHistory", False)
    SetOfflineWorker "ClearURLHistory", GetINIBool("Always_ClearURLHistory", False)
    
    If WorkerArguments.Count > 0 Then
        Dim Key, ArgumentsList
        For Each Key In WorkerArguments.Keys
            If WorkerArguments(Key) = True Then
                ArgumentsList = ArgumentsList & " /" & Key
            End If
        Next
        Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run """" & SDB.ApplicationPath & "Scripts\Auto\TweakMonkey\offlineworker.vbs" & """" _
                    & " /INIPath:" & """" & GetINIPath & """" _
                    & " /DBPath:" & """" & GetDBPath & """" _
                    & " /APPPath:" & """" & SDB.ApplicationPath & """" _
                    & " /MyMusicPath:" & """" & SDB.MyMusicPath & """" _
                    & ArgumentsList, 1, False
    End If

End Sub


' **********************************
' EVENT OnStartup
' **********************************

Sub OnStartup

    Set WorkerArguments = CreateObject("Scripting.Dictionary")
    Set SDB.Objects("WorkerArguments") = WorkerArguments

    Tree.Node_Library.Expanded = False
    
    Do While Not SDB.IsRunning
    Loop
    
    ' events to use in the future 
    '   Script.RegisterEvent SDB, "OnPlay", "SDB_OnPlay" 
    '   Script.RegisterEvent SDB, "OnStop", "SDB_OnStop" 
    Script.RegisterEvent SDB, "OnShutDown", "SDB_OnShutDown"
    
    Dim TweakSheetRoot, TweakSheetTree, TweakSheetAutoExec, TweakSheetCleanReset, TweakSheetMMFiles
    TweakSheetRoot = SDB.UI.AddOptionSheet("TweakMonkey & Script Options", Script.ScriptPath, "InitSheetRoot", "SaveSheetRoot", -1)
    TweakSheetAutoExec = SDB.UI.AddOptionSheet("AutoExec Options", Script.ScriptPath, "InitSheetAutoExec", "SaveSheetAutoExec", TweakSheetRoot)
    TweakSheetTree = SDB.UI.AddOptionSheet("Tree Node Options", Script.ScriptPath, "InitSheetTree", "SaveSheetTree", TweakSheetRoot)
    TweakSheetCleanReset = SDB.UI.AddOptionSheet("Clean/Reset Options", Script.ScriptPath, "InitSheetCleanReset", "SaveSheetCleanReset", TweakSheetRoot)
    TweakSheetMMFiles = SDB.UI.AddOptionSheet("MM Files + Backup Options", Script.ScriptPath, "InitSheetMMFiles", "SaveSheetMMFiles", TweakSheetRoot)
 

    ' auto-set player volume at startup
    If GetINIBool("VolumeEnable", False) Then
        Dim Volume : Volume = CInt(GetINIString("Volume", "100"))
        SDB.Player.Volume = (Volume/100)
        SDB.ProcessMessages
    End If


    ' show/hide/expand/collapse any specific nodes ---------------------------------
    Dim NodeName
    For Each NodeName In NodeRef.Keys
        If CanNodeExpand(NodeName) Then
            If GetTreeExpanded(NodeName) Then
                If IsLibrarySubnode(NodeName) Then
                    NodeRef("Library").Expanded = True
                End If
                NodeRef(NodeName).Expanded = True
            End If
        End If
        NodeRef(NodeName).Visible = GetTreeVisibility(NodeName)
    Next


    ' startup node ----------------------------------------------------------------- 
    Dim StartupNode : StartupNode = GetINIString("StartupNode", "") 
    If StartupNode <> "" Then
        If NodeRef.Exists(StartupNode) Then
            SDB.MainTree.CurrentNode = NodeRef(StartupNode)
            SDB.ProcessMessages
        End If
    End If 

    
    If GetINIBool("UseFastNPLoading", False) Then
          If SDB.PlaylistByTitle("NPSaved").Id <> 0 Then 'check first to see that NPSaved exists'
            SDB.Player.PlaylistClear    ' To make sure that the playlist is really empty
            SDB.Player.PlaylistAddTracks(SDB.PlaylistByTitle("NPSaved").Tracks)
            
            SDB.Player.CurrentSongIndex = CLng(GetINIString("NPCurrentSong", "0"))
            SDB.ProcessMessages
          End If
          
        ' First check that the NPSaved node really exists. (If it doesn't exist, the root node would be returned, and deleted!)
        ' commented this out, to leave the NPSaved playlist intact then delete when MM shuts down properly'
'          If SDB.PlaylistByTitle("NPSaved").Id <> 0 Then SDB.PlaylistByTitle("NPSaved").Delete
    Else
        ' Auto-Play/Resume/Shuffle/Repeat/Randomize/LoadPlaylist --------- 
        If GetINIBool("LoadPlaylist", False) Then
            Dim PlaylistName : PlaylistName = GetINIString("Playlist", "")
            If PlaylistName <> "" Then
                If DoesPlaylistExist(PlaylistName) Then
                    SDB.Player.PlaylistClear
                    SDB.Player.PlaylistAddTracks(SDB.PlaylistByTitle(PlaylistName).Tracks)
                End If
            End If      
        End If 
    End If
    
    If GetINIBool("AutoRandomize", False) Then 
        RandomiseNowPlaying
    End If    

    If GetINIString("AutoShuffle", "-") <> "-" Then
        If GetINIString("AutoShuffle", "-") = "on" Then
            SDB.Player.isShuffle = True
        Else
            SDB.Player.isShuffle = False
        End If
    End If 

    If GetINIString("AutoRepeat", "-") <> "-" Then 
        If GetINIString("AutoRepeat", "-") = "on" Then
            SDB.Player.isRepeat = True
        Else
            SDB.Player.isRepeat = False
        End If
    End If
    
    If GetINIString("AutoDJ", "-") <> "-" Then 
        If GetINIString("AutoDJ", "-") = "on" Then
            SDB.Player.isAutoDJ = True
        Else
            SDB.Player.isAutoDJ = False
        End If
    End If
    
    If (GetINIBool("AutoPlay", False) Or GetINIBool("AutoResume", False)) Then
        Dim VolOrig : VolOrig = SDB.Player.Volume
        SDB.Player.Volume = 0
        
        If Not GetINIBool("LoadPlaylist", False) Then
            SDB.Player.Play
        End If
        If GetINIBool("AutoResume", False) And Not GetINIBool("LoadPlaylist", False) Then
            Dim PlayState : PlayState = Split(GetINIString("PlaybackState", "False-False"), "-")
            If PlayState(1) Then
                SDB.Player.Pause
            Else
                If PlayState(0) Then
                    SDB.Player.Play
                Else
                    SDB.Player.Stop
                End If
            End If
            If GetINIBool("AutoPlay", False) Then
                SDB.Player.Play
            End If
            SDB.Player.PlayBackTime = GetINIString("PlaybackPosition", "0")
        Else
            If GetINIBool("AutoPlay", False) Then
                If SDB.Player.PlaylistCount > 0 Then
                    SDB.Player.CurrentSongIndex = 0
                End If
                SDB.Player.Play
            End If
        End If
        
        SDB.Player.Volume = VolOrig
    End If

End Sub 


' ******************************************************************************************************
' INIT Sheet ROOT
' **********************************

Sub InitSheetRoot(Sheet)

    CreateLabel Sheet, String(20, Chr(171)) & "  T  W  E  A  K    T  H  E    M  O  N  K  E  Y  !!  " & String(20, Chr(187)), 10, 10, 400, 20
    CreateLabel Sheet, String(20, Chr(171)) & "  T  W  E  A  K    T  H  E    M  O  N  K  E  Y  !!  " & String(20, Chr(187)), 11, 10, 400, 20
    
    CreateLabel Sheet, "TweakMonkey Advanced Options Panel" _
        & vbNewLine & "Last updated: " & LastUpdated & "              v" & Version _
        & vbNewLine _
        & vbNewLine & "Click a sub-tree to view/set the options." _
        & vbNewLine _
        & vbNewLine & "Most options will only take effect once MediaMonkey has been restarted." _
        & vbNewLine & "Some functions only execute when MediaMonkey is starting or shutting down.", 10, 40, 400, 20
        
    CreateLabel Sheet, "________________________________", 10, 41, 400, 20

End Sub


' **********************************
' SAVE Sheet ROOT
' **********************************

Sub SaveSheetRoot(Sheet)

End Sub 





' ******************************************************************************************************
' INIT Sheet AUTOEXEC
' **********************************

Sub InitSheetAutoExec(Sheet)

    Dim edt

    CreateLabel Sheet, "Turn features on/off at startup:", 10, 10, 200, 20
    CreateLabel Sheet, "__________________________", 10, 11, 200, 20

    CreateCheckBox Sheet, "Player Startup Volume", 10, 32, 140, 20, "VolumeEnable", "Enable/Disable the Startup Volume control", GetINIBool("VolumeEnable", False)

    ' Startup Volume control
    Set edt = UI.NewSpinEdit(Sheet) 
    edt.Common.ControlName = "Volume" 
    edt.Common.SetRect 145, 32, 45, 20 
    edt.MinValue = 0 
    edt.MaxValue = 100 
    edt.Common.Hint = "Set Volume at startup"
    
    Dim Volume : Volume = GetINIString("Volume", 100)
    edt.Value = Volume
  
    ' Auto-play/resume checkboxes  
    CreateCheckBox Sheet, "Auto Play", 10, 57, 80, 20, "AutoPlay", "Start Playing on startup", GetINIBool("AutoPlay", False)
    CreateCheckBox Sheet, "Resume State/Position", 100, 55, 130, 20, "AutoResume", "Resume song from last play time position", GetINIBool("AutoResume", False)

    ' Auto-Randomize the playlist or Now Playing
    'CreateCheckBox Sheet, "Randomize the playlist at startup", 245, 57, 200, 20, "AutoRandomize", "Randomize the selected playlist or 'Now Playing' at startup (not yet functional)", GetINIBool("AutoRandomize", False)
    'Sheet.Common.ChildControl("AutoRandomize").Common.Enabled = False

    CreateLabel Sheet, "Set Player:", 10, 85, 100, 20

    ' Player Auto-Shuffle'
    'CreateCheckBox Sheet, "Shuffle", 80, 80, 70, 20, "AutoShuffle", "Set's Player Shuffle on at startup", GetINIBool("AutoShuffle", False)
    CreateLabel Sheet, "Shuffle", 75, 85, 70, 20
    CreateButton Sheet, GetINIString("AutoShuffle", "-"), 115, 82, 30, 20, "AutoShuffle", "ChangeChecEnabState"

    ' Player Auto-Repeat'
    'CreateCheckBox Sheet, "Repeat", 150, 80, 70, 20, "AutoRepeat", "Set's Player Repeat on at startup", GetINIBool("AutoRepeat", False)
    CreateLabel Sheet, "Repeat", 75, 103, 70, 20
    CreateButton Sheet, GetINIString("AutoRepeat", "-"), 115, 102, 30, 20, "AutoRepeat", "ChangeChecEnabState"
    
    ' Player Auto-DJ'
    'CreateCheckBox Sheet, "AutoDJ", 220, 80, 70, 20, "AutoDJ", "Set's Player AutoDJ on at startup", GetINIBool("AutoDJ", False)
    CreateLabel Sheet, "AutoDJ", 75, 123, 70, 20
    CreateButton Sheet, GetINIString("AutoDJ", "-"), 115, 122, 30, 20, "AutoDJ", "ChangeChecEnabState"

    ' Use Fast NowPlaying Loading
    Set edt = CreateCheckBox(Sheet, "Use Fast NowPlaying Loading", 10, 150, 180, 20, "UseFastNPLoading", "This will make MediaMonkey startup faster, with less disk usage", GetINIBool("UseFastNPLoading", False))
    Script.RegisterEvent edt.Common, "OnClick", "PlaylistToggleHandler"

    ' Auto-Play-Playlist
    Set edt = CreateCheckBox(Sheet, "Load alternate playlist at startup:", 10, 175, 200, 20, "LoadPlaylist", "Load this playlist at startup", GetINIBool("LoadPlaylist", False))
    Script.RegisterEvent edt.Common, "OnClick", "PlaylistToggleHandler"

    Dim Playlist : Playlist = GetINIString("Playlist", "")
    
    Set edt = UI.NewEdit(Sheet) 
    edt.Common.SetRect 200, 175, 260, 20 
    edt.Common.ControlName = "Playlist"
    edt.Text = Playlist
  
    'Set edt = UI.NewButton(Sheet) 
    'edt.Caption = "Choose Playlist"
    'edt.Common.SetRect 450, 130, 20, 20
    'edt.OnClickFunc = ""


    CreateLabel Sheet, "Turn features on/off at shutdown:", 10, 215, 200, 20
    CreateLabel Sheet, "____________________________", 10, 216, 200, 20
    
    ' Clear Now Playing On Exit
    CreateCheckBox Sheet, "Clear the Now Playing list on exit", 10, 235, 200, 20, "ClearNowPlayingOnExit", "This will clear the 'Now Playing' of tracks on exit", GetINIBool("ClearNowPlayingOnExit", False)

End Sub



Dim DontExecEvent : DontExecEvent = False


Sub PlaylistToggleHandler(CheckBox)
    If DontExecEvent Then Exit Sub
    
    Dim CState : CState = CheckBox.Checked
    DontExecEvent = True
    
    CheckBox.Common.TopParent.Common.ChildControl("LoadPlaylist").Checked = False
    CheckBox.Common.TopParent.Common.ChildControl("UseFastNPLoading").Checked = False
    
    CheckBox.Checked = CState
    
    DontExecEvent = False
End Sub


Sub ChangeChecEnabState(Button)
    If Button.Caption = "on" Then
        Button.Caption = "off"
    ElseIf Button.Caption = "off" Then
        Button.Caption="-"
    Else
        Button.Caption = "on"
        If Button.Common.ControlName = "AutoRepeat" Then Button.Common.TopParent.Common.ChildControl("AutoDJ").Caption = "off"
        If Button.Common.ControlName = "AutoDJ" Then Button.Common.TopParent.Common.ChildControl("AutoRepeat").Caption = "off"
    End If
End Sub


' **********************************
' SAVE Sheet AUTOEXEC
' **********************************

Sub SaveSheetAutoExec(Sheet)
    
    Dim LoadPlaylist, Playlist 

    ' Save volume
    SetINIString "Volume", Sheet.Common.ChildControl("Volume").Value
    SaveCheckValue Sheet, "VolumeEnable"
    
    ' Save auto-play/resume
    SaveCheckValue Sheet, "AutoPlay"
    SaveCheckValue Sheet, "AutoResume"

    ' Save LoadPlaylist and Playlist
    LoadPlaylist = Sheet.Common.ChildControl("LoadPlaylist").Checked 
    Playlist = Sheet.Common.ChildControl("Playlist").Text 
  
    If Playlist = "" Then 
        SetINIString "LoadPlaylist", "False"
    Else 
        SetINIString "LoadPlaylist", LoadPlaylist
    End If 
    
    SetINIString "Playlist", Playlist

    ' Save Auto-Randomize playlist
    '''SaveCheckValue Sheet, "AutoRandomize"
    SetINIString "AutoShuffle", Sheet.Common.ChildControl("AutoShuffle").Caption
    SetINIString "AutoRepeat", Sheet.Common.ChildControl("AutoRepeat").Caption
    SetINIString "AutoDJ", Sheet.Common.ChildControl("AutoDJ").Caption
    '''SaveCheckValue Sheet, "ExploreFolder"
    '''SaveCheckValue Sheet, "CommandFolder"
    SaveCheckValue Sheet, "UseFastNPLoading"
    SaveCheckValue Sheet, "ClearNowPlayingOnExit"

End Sub 



' ******************************************************************************************************
' INIT Sheet TREE
' **********************************

Sub InitSheetTree(Sheet)

    Dim lbl, edt

    Set lbl = CreateLabel(Sheet, "Configure the tree:       (restart MM to take effect)", 10, 10, 80, 20)
    CreateLabel Sheet, "_______________", 10, 11, 200, 20
    lbl.Autosize = True

    ' Startup Node 
    Set lbl = CreateLabel(Sheet, "Node to be selected at startup:", 10, 35, 100, 20)
    lbl.Autosize = True

    Set edt = UI.NewDropdown(Sheet) 
    edt.Style = 2 
    edt.Common.ControlName = "StartupNode" 
    edt.Common.Left = 170 
    edt.Common.Top = 31  
    edt.Common.Hint = "MM will start with this node selected"
  
    Dim StartupNode, Node, NodeIndex 
    StartupNode = GetINIString("StartupNode", "")
    NodeIndex = 0 
    
    Dim NodeName
    For Each NodeName In NodeRef.Keys
        edt.AddItem(NodeName) 
        If StartupNode = NodeName Then 
            edt.ItemIndex = NodeIndex 
        End If
        NodeIndex = NodeIndex + 1 
    Next 
    If StartupNode = "" Then 
        edt.ItemIndex = 1 
    End If 


    Dim Position : Position = 60
    Dim Visible, Expanded
    
    For Each NodeName In NodeRef.Keys 
    
        Visible = GetTreeVisibility(NodeName)
        Expanded = GetTreeExpanded(NodeName)
    
        If StartupNode = NodeName Then 
            Visible = True 
        End If 
        
        
        Set lbl = CreateLabel(Sheet, NodeName, 10, Position, 80, 20)
        lbl.Autosize = True

        CreateCheckBox Sheet, "Visible", 100, Position, 120, 20, NodeName & "Visible", "This will hide/unhide the " & NodeName & " Node", Visible
        
        If CanNodeExpand(NodeName) Then
            CreateCheckBox Sheet, "Expanded", 160, Position, 140, 20, NodeName & "Expanded", "This will expand/contract the " & NodeName & " Node", Expanded
        End If
    
        Position = Position + CTL_LINE_HEIGHT
    Next 
End Sub 



' **********************************
' SAVE Sheet TREE
' **********************************

Sub SaveSheetTree(Sheet)

    Dim Node, Position, vis, Visible, Expanded, exp, lbl, StartupNode 

    ' Save startup node'
    Dim NodeNames : NodeNames = NodeRef.Keys
    StartupNode = NodeNames(Sheet.Common.ChildControl("StartupNode").ItemIndex)
    SetINIString "StartupNode", StartupNode

    ' Save visible/expanded node options'
    Dim NodeName
    For Each NodeName in NodeRef.Keys 
        If Sheet.Common.ChildControl(NodeName & "Visible").Checked = True Then 
            SetTreeVisibility NodeName, True
        Else
            SetTreeVisibility NodeName, xIf(StartupNode = Node)
        End If 
    
        If CanNodeExpand(NodeName) Then
            Expanded = Sheet.Common.ChildControl(NodeName & "Expanded").Checked 
            If StartupNode = NodeName Then 
                If IsLibrarySubnode(NodeName) Then 
                    SetTreeVisibility "Library", True
                    SetTreeExpanded "Library", True
                End If 
            End If
            SetTreeExpanded NodeName, Expanded
        End If
    Next 
    
End Sub 



' ******************************************************************************************************
' INIT Sheet CLEAN/RESET
' **********************************

Sub InitSheetCleanReset(Sheet)

    CreateLabel Sheet, "Clear histories:       (restart MM to take effect)", 10, 10, 80, 20
    CreateLabel Sheet, "____________", 10, 11, 200, 20
    
    CreateButton Sheet, "Clear Search History", 10, 35, 150, 20, "ClearSearchHistory", "ClearSearchHistory"
    CreateCheckBox Sheet, "Always automatically", 170, 35, 150, 20, "Always_ClearSearchHistory", "Always automaticly clear search history", GetINIBool("Always_ClearSearchHistory", False)
    
    CreateButton Sheet, "Clear Playlist History", 10, 60, 150, 20, "ClearPlaylistHistory", "ClearPlaylistHistory"
    CreateCheckBox Sheet, "Always automatically", 170, 60, 150, 20, "Always_ClearPlaylistHistory", "Always automaticly clear playlist history", GetINIBool("Always_ClearPlaylistHistory", False)
      
    CreateButton Sheet, "Clear Url History", 10, 85, 150, 20, "ClearURLHistory", "ClearURLHistory"
    CreateCheckBox Sheet, "Always automatically", 170, 85, 150, 20, "Always_ClearURLHistory", "Always automaticly clear url history", GetINIBool("Always_ClearURLHistory", False)
  
  
  
    CreateLabel Sheet, "Reset user interface positions:       (restart MM to take effect)", 10, 130, 80, 20
    CreateLabel Sheet, "________________________", 10, 131, 200, 20
    
    CreateButton Sheet, "Reset Player Position", 10, 155, 150, 20, "ResetPlayerPosition", "ResetPlayerPosition"
    
End Sub


Sub ResetPlayerPosition(Button)
    SetOfflineWorker "ResetPlayerPosition", True
End Sub

Sub ClearSearchHistory(Button)
    SetOfflineWorker "ClearSearchHistory", True
End Sub

Sub ClearPlaylistHistory(Button)
    SetOfflineWorker "ClearPlaylistHistory", True
End Sub

Sub ClearURLHistory(Button)
    SetOfflineWorker "ClearURLHistory", True
End Sub


' **********************************
' SAVE Sheet CLEAN/RESET
' **********************************

Sub SaveSheetCleanReset(Sheet)

    SaveCheckValue Sheet, "Always_ClearSearchHistory"
    SaveCheckValue Sheet, "Always_ClearPlaylistHistory"
    SaveCheckValue Sheet, "Always_ClearURLHistory"

End Sub 



' ******************************************************************************************************
' INIT Sheet MM FILES
' **********************************

Sub InitSheetMMFiles(Sheet)

    CreateLabel Sheet, "Change location of the library and settings files:", 10, 10, 200, 20
    CreateLabel Sheet, "______________________________________", 10, 11, 200, 20
    
    CreateLabel Sheet, "Location of the database:", 10, 35, 300, 20
    
    Dim edt : Set edt = UI.NewEdit(Sheet) 
    edt.Common.SetRect 10, 50, 450, 20 
    edt.Common.ControlName = "LocationOfDatabase"
    
    Dim DBName_previous : DBName_previous = GetDBPath
    SetINIString "DBName_previous", DBName_previous
    
    If GetOfflineWorker("ChangeLocationOfDatabase") Then
        edt.Text = GetINIString("DBName", DBName_previous)
    Else
        edt.Text = DBName_previous
    End If
    
    CreateCheckBox Sheet, "Move current database to the new location (won't overwrite)", 10, 75, 350, 20, "MoveDatabaseToNewLocation", "Move current database to the new location (won't overwrite)", GetOfflineWorker("MoveDatabaseToNewLocation")

    CreateCheckBox Sheet, "Keep copy of current database (copy instead of move)", 40, 95, 350, 20, "KeepCopyCurrentDatabase", "Keep copy of current database (copy instead of move)", GetOfflineWorker("KeepCopyCurrentDatabase")

    Dim INILocation : INILocation = GetINILocation
    Dim FolderDesc : FolderDesc = GetFolderDesc(INILocation)
    CreateLabel Sheet, "The configuration file (MediaMonkey.ini) is now located in " & FolderDesc & " folder.", 10, 128, 400, 20
    Dim FolderDesc2 : If INILocation = 2 Then FolderDesc2 = GetFolderDesc(1) Else FolderDesc2 = GetFolderDesc(2)
    CreateCheckBox Sheet, "Move it to " & FolderDesc2 & " folder", 10, 143, 250, 20, "MoveConfigFile", "Move the configuration file (MediaMonkey.ini)", GetOfflineWorker("MoveConfigFile")
    'CreateLabel Sheet, "Move it to:", 10, 148, 50, 20
    'CreateButton Sheet, "MM Program Folder (for shared environments)", 70, 145, 250, 20, "MoveConfigurationFile", "MoveConfigurationFile"



    CreateLabel Sheet, "Back up the library and settings files:", 10, 180, 200, 20
    CreateLabel Sheet, "_____________________________", 10, 181, 200, 20

    CreateLabel Sheet, "Backup directory:", 10, 203, 100, 20
    
    Set edt = UI.NewEdit(Sheet) 
    edt.Common.SetRect 110, 200, 280, 20 
    edt.Common.ControlName = "BackupDirectory"
    edt.Text = GetINIString("BackupDirectory", DEFAULT_BACKUP_DIR)
    
    Script.RegisterEvent edt, "OnChange", "BackupDirectoryEdit_OnChange"
    
    CreateButton Sheet, "Browse...", 390, 200, 70, 20, "BrowseBackupDirectory", "BrowseBackupDirectory"
    
    CreateCheckBox Sheet, "Create backup (database + configuration files) on exit (only this time!!)", 10, 225, 400, 20, "CreateBackup", "Create backup (database + configuration files) on exit", GetOfflineWorker("CreateBackup")
    
    CreateCheckBox Sheet, "Restore backup (database + configuration files) on exit (only this time!!)", 10, 255, 400, 20, "RestoreBackup", "Restore backup (database + configuration files) on exit", GetOfflineWorker("RestoreBackup")
    CreateCheckBox Sheet, "Overwrite backup of last active database", 40, 275, 300, 20, "OverwriteRestoreBackup", "When a database backup is restored, the last active database (if present) will be moved as backup file." & vbNewLine & "Choose if you want to use (overwrite) this same backup file on each restore, or if you want to create a timestamped new one each time.", GetINIBool("OverwriteRestoreBackup", True)

    CreateLabel Sheet, "Zip file to recover:", 10, 298, 100, 20

    Set edt = UI.NewDropdown(Sheet)
    edt.Style = 2
    edt.Common.ControlName = "ZIPPathToRestore"
    edt.Common.SetRect 110, 295, 350, 20
    edt.Common.Hint = "Select the ZIP file (contains database + configuration files) that you want to restore"
    
    BackupDirectoryEdit_OnChange Sheet.Common.ChildControl("BackupDirectory")

End Sub

Function GetFolderDesc(INILocation)
    If INILocation = 1 Then
        GetFolderDesc = "your My Music\MediaMonkey"
    Else ' INILocation = 2
        GetFolderDesc = "the MediaMonkey program"
    End If
End Function

Dim DontTriggerTheEvent : DontTriggerTheEvent = False

Sub BackupDirectoryEdit_OnChange(Edit)

    If DontTriggerTheEvent Then Exit Sub

    Dim edt : Set edt = Edit.Common.TopParent.Common.ChildControl("ZIPPathToRestore")
    ClearDropDown edt
    
    If Edit.Text = "" Then Exit Sub

    Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
    
    If Not FSO.FolderExists(Edit.Text) Then Exit Sub
    
    If Right(Edit.Text, 1) <> "\" Then
        DontTriggerTheEvent = True
        Edit.Text = Edit.Text & "\"
        DontTriggerTheEvent = False
    End If
    
    Dim Folder : Set Folder = FSO.GetFolder(Edit.Text)
    Dim fc : Set fc = Folder.Files
    Dim icnt : icnt = 0
    Dim f1 : For Each f1 in fc
        icnt = icnt + 1
        edt.AddItem f1.Name
        If GetINIString("ZIPPathToRestore", "") = f1.Path Then edt.ItemIndex = icnt - 1
    Next
    
End Sub


Sub BrowseBackupDirectory(Button)

    Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(DEFAULT_BACKUP_DIR) Then
        FSO.CreateFolder DEFAULT_BACKUP_DIR
    End If
    
    Dim Ret : Ret = SDB.SelectFolder(Button.Common.TopParent.Common.ChildControl("BackupDirectory").Text, "Select folder for backups")
    If Ret <> "" Then
        Button.Common.TopParent.Common.ChildControl("BackupDirectory").Text = Ret
    End If

End Sub


' **********************************
' SAVE Sheet MM FILES
' **********************************

Sub SaveSheetMMFiles(Sheet)

    Sheet.Common.ChildControl("LocationOfDatabase").Text = Trim(Sheet.Common.ChildControl("LocationOfDatabase").Text)
    If Sheet.Common.ChildControl("LocationOfDatabase").Text <> GetINIString("DBName_previous", "") Then
        If Right(Sheet.Common.ChildControl("LocationOfDatabase").Text, 4) = ".mdb" Then
            SetINIString "DBName", Sheet.Common.ChildControl("LocationOfDatabase").Text
            SetOfflineWorker "ChangeLocationOfDatabase", True
            SetOfflineWorker "MoveDatabaseToNewLocation", Sheet.Common.ChildControl("MoveDatabaseToNewLocation").Checked
            SetOfflineWorker "KeepCopyCurrentDatabase", Sheet.Common.ChildControl("KeepCopyCurrentDatabase").Checked
        Else
            MsgBox "Location of the database file must end with file extension mdb!" & vbNewLine &"Also make sure that the path doesn't contain quotation marks." & vbNewLine & vbNewLine & "The database location hasn't been changed."
        End If
    End If
    
    SetOfflineWorker "MoveConfigFile", Sheet.Common.ChildControl("MoveConfigFile").Checked
    
    Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FolderExists(Sheet.Common.ChildControl("BackupDirectory").Text) Then
        SetINIString "BackupDirectory", Sheet.Common.ChildControl("BackupDirectory").Text
    End If
    
    SetOfflineWorker "CreateBackup", Sheet.Common.ChildControl("CreateBackup").Checked
    
    If Sheet.Common.ChildControl("ZIPPathToRestore").Text <> "" Then
        SetOfflineWorker "RestoreBackup", Sheet.Common.ChildControl("RestoreBackup").Checked
        SetINIString "ZIPPathToRestore", Sheet.Common.ChildControl("BackupDirectory").Text & Sheet.Common.ChildControl("ZIPPathToRestore").Text
    Else
        SetOfflineWorker "RestoreBackup", False
    End If
    SaveCheckValue Sheet, "OverwriteRestoreBackup"
    
End Sub 



' ******************************************************************************************************
' HELPER METHODS
' **********************************

Function GetINIBool(pName, pValueIfMissing)
    If pValueIfMissing Then
        If SDB.IniFile.StringValue(ScriptName, pName) = "False" Then
            GetINIBool = False
        Else
            GetINIBool = True
        End If
    Else
        If SDB.IniFile.StringValue(ScriptName, pName) = "True" Then
            GetINIBool = True
        Else
            GetINIBool = False
        End If
    End If
End Function

Function GetINIString(pName, pValueIfMissing)
    GetINIString = SDB.IniFile.StringValue(ScriptName, pName)
    If GetINIString = "" Then
        GetINIString = pValueIfMissing
	End If
End Function

Sub SetINIString(pName, pValue)
	SDB.IniFile.StringValue(ScriptName, pName) = pValue
End Sub

Function GetTreeVisibility(NodeName)
    If INI.StringValue("Tree", NodeName) = "0" Then
        GetTreeVisibility = False
    Else
        GetTreeVisibility = True
    End If
End Function

Function SetTreeVisibility(NodeName, Visible)
    If Visible Then
        INI.StringValue("Tree", NodeName) = "1"
    Else
        INI.StringValue("Tree", NodeName) = "0"
    End If
End Function

Function GetTreeExpanded(NodeName)
    GetTreeExpanded = GetINIBool(NodeName & "_Expanded", False)
End Function

Function SetTreeExpanded(NodeName, Expanded)
    SDB.IniFile.StringValue(ScriptName, NodeName & "_Expanded") = Expanded
End Function

Function CanNodeExpand(NodeName)
    CanNodeExpand = True
    If NodeCantExpand.Exists(NodeName) Then
        If NodeCantExpand(NodeName) Then
            CanNodeExpand = False
        End If
    End If
End Function

Function IsLibrarySubnode(NodeName)
    IsLibrarySubnode = True
    If NodeNoLibraryChild.Exists(NodeName) Then
        If NodeNoLibraryChild(NodeName) Then
            IsLibrarySubnode = False
        End If
    End If
End Function

Function xIf(Condition)
    xIf = Condition
End Function

Sub SaveCheckValue(Sheet, CheckName)
    SetINIString CheckName, Sheet.Common.ChildControl(CheckName).Checked
End Sub
Sub SaveTextValue(Sheet, CheckName)
    SetINIString CheckName, Sheet.Common.ChildControl(CheckName).Text
End Sub

Function DoesPlaylistExist(PlaylistName)
    DoesPlaylistExist = True
    If SDB.PlaylistByTitle(PlaylistName).Id = 0 Then
        DoesPlaylistExist = False
    End If
End Function

Sub RandomiseNowPlaying
    ' TODO
End Sub



Function CreateCheckBox(pOwner, pCaption, pX, pY, pWidth, pHeight, pControlName, pHint, pChecked)
    Set CreateCheckBox = SDB.UI.NewCheckBox(pOwner)
    CreateCheckBox.Caption = pCaption
    CreateCheckBox.Common.SetRect pX, pY, pWidth, pHeight
    CreateCheckBox.Common.ControlName = pControlName
    CreateCheckBox.Common.Hint = pHint
    CreateCheckBox.Checked = pChecked
End Function


Function CreateButton(pOwner, pCaption, pX, pY, pWidth, pHeight, pControlName, pOnClickHandler)
    Set CreateButton = SDB.UI.NewButton(pOwner)
    CreateButton.Caption = pCaption
    CreateButton.Common.SetRect pX, pY, pWidth, pHeight
    CreateButton.Common.ControlName = pControlName
    If pOnClickHandler <> "" Then
        Script.RegisterEvent CreateButton.Common, "OnClick", pOnClickHandler
    End If
End Function


Function CreateLabel(pOwner, pCaption, pX, pY, pWidth, pHeight)
    Set CreateLabel = SDB.UI.NewLabel(pOwner)
    CreateLabel.Common.SetRect pX, pY, pWidth, pHeight 
    CreateLabel.Caption = pCaption
End Function


Sub SetOfflineWorker(Key, State)
    Dim WorkerArguments : Set WorkerArguments = SDB.Objects("WorkerArguments")
    If WorkerArguments.Exists(Key) Then
        WorkerArguments(Key) = State
    Else
        WorkerArguments.Add Key, State
    End If
End Sub


Function GetOfflineWorker(Key)
    Dim WorkerArguments : Set WorkerArguments = SDB.Objects("WorkerArguments")
    If WorkerArguments.Exists(Key) Then
        GetOfflineWorker = WorkerArguments(Key)
    Else
        GetOfflineWorker = False
    End If
End Function

Function GetINIPath()
    Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject") 
  
    GetINIPath = SDB.MyMusicPath & "MediaMonkey\MediaMonkey.ini"
    If FSO.FileExists(GetINIPath) Then Exit Function
  
    GetINIPath = SDB.ApplicationPath & "MediaMonkey.ini"
    If FSO.FileExists(GetINIPath) Then Exit Function
   
    GetINIPath = ""
End Function

Function GetINILocation()
    Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject") 
  
    If FSO.FileExists(SDB.MyMusicPath & "MediaMonkey\MediaMonkey.ini") Then
        GetINILocation = 1
    ElseIf FSO.FileExists(SDB.ApplicationPath & "MediaMonkey.ini") Then
        GetINILocation = 2
    Else   
        GetINILocation = 0
    End If
End Function

Function GetDBPath()
    GetDBPath = SDB.Database.Path
    
    'If SDB.IniFile.StringValue("System", "DBName") <> "" Then
    '    GetDBPath = SDB.IniFile.StringValue("System", "DBName")
    'Else
    '    GetDBPath = SDB.MyMusicPath & "MediaMonkey\MediaMonkey.mdb"
    'End If
End Function


Sub ClearDropDown(DropDown)
  Dim i : For i = DropDown.ItemCount - 1 To 0 Step -1
    DropDown.DeleteItem i
  Next
  DropDown.Text = ""
End Sub
Last edited by Teknojnky on Thu Feb 22, 2007 12:46 pm, edited 1 time in total.
rovingcowboy
Posts: 14163
Joined: Sat Oct 25, 2003 7:57 am
Location: (Texas)
Contact:

Post by rovingcowboy »

i copied the code above.

pasted the whole code in to the tweak monkey config . vbs file over writing the old code with this new code.

upon closing of media monkey every time i close media monkey 2.5.5
it gives me this error.

every time same error.

  • error #-2147024894 -
    file: "C:\Program Files\MediaMonkey\Scripts\Auto\TweakMonkeyConfig.vbs",Line:134, Column: 8


did not check the line just posted this here.
roving cowboy / keith hall. My skins http://www.mediamonkey.com/forum/viewto ... =9&t=16724 for some help check on Monkey's helpful messages at http://www.mediamonkey.com/forum/viewto ... 4008#44008 MY SYSTEMS.1.Jukebox WinXp pro sp 3 version 3.5 gigabyte mb. 281 GHz amd athlon x2 240 built by me.) 2.WinXP pro sp3, vers 2.5.5 and vers 3.5 backup storage, shuttle 32a mb,734 MHz amd athlon put together by me.) 3.Dell demension, winxp pro sp3, mm3.5 spare jukebox.) 4.WinXp pro sp3, vers 3.5, dad's computer bought from computer store. )5. Samsung Galaxy A51 5G Android ) 6. amd a8-5600 apu 3.60ghz mm version 4 windows 7 pro bought from computer store.
Teknojnky
Posts: 5537
Joined: Tue Sep 06, 2005 11:01 pm
Contact:

Post by Teknojnky »

EDIT: cowboy it appears you have the original OLD tweak monkey. you need to first disable that script file (rename .vbs to .bak) then install the 1.0 version @ http://home.scarlet.be/ruben.castelein/ ... key1.0.exe

Then you can copy/paste my modded version into the tweakmonkey.vbs (note the file name has changed from the original).

It appears the reason for the error is because you do not have the auxillary scripts that get installed via steegy's installer.


check to make sure that line did not get wrapped to the next line.

should be one line:

Code: Select all

        WshShell.Run """" & SDB.ApplicationPath & "Scripts\Auto\TweakMonkey\offlineworker.vbs" & """" _
rovingcowboy
Posts: 14163
Joined: Sat Oct 25, 2003 7:57 am
Location: (Texas)
Contact:

Post by rovingcowboy »

it might very well be the old file since i have not got it in almost a year?

i'll get the updated version.


8)

i just had the old version .. i just over installed it to the folders.

did not remove the older files don't know what they were but it stopped
the error on closing now.



8)
roving cowboy / keith hall. My skins http://www.mediamonkey.com/forum/viewto ... =9&t=16724 for some help check on Monkey's helpful messages at http://www.mediamonkey.com/forum/viewto ... 4008#44008 MY SYSTEMS.1.Jukebox WinXp pro sp 3 version 3.5 gigabyte mb. 281 GHz amd athlon x2 240 built by me.) 2.WinXP pro sp3, vers 2.5.5 and vers 3.5 backup storage, shuttle 32a mb,734 MHz amd athlon put together by me.) 3.Dell demension, winxp pro sp3, mm3.5 spare jukebox.) 4.WinXp pro sp3, vers 3.5, dad's computer bought from computer store. )5. Samsung Galaxy A51 5G Android ) 6. amd a8-5600 apu 3.60ghz mm version 4 windows 7 pro bought from computer store.
loubob73
Posts: 24
Joined: Wed Feb 28, 2007 1:18 am
Location: Phoenix, AZ.

Old version of TweakMonkey

Post by loubob73 »

I'm new to the forums, and new to Media Monkey. I was wondering if someone could tell me where to get the old version of TweakMonkey that I've seen mentioned, so that I won't get the error messages when I shut down MM.
Thanks.
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Here's the older version: http://www.mediamonkey.com/forum/viewto ... 8729#48729

(The new version should work fine in MM3 (in alpha phase))
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
loubob73
Posts: 24
Joined: Wed Feb 28, 2007 1:18 am
Location: Phoenix, AZ.

Thanks Steegy

Post by loubob73 »

Thanks Steegy. Appreciate it. I'm new to Media Monkey. When I first got going I went script crazy. I've actually uninstalled most of them, but this one is really useful. Is there anywhere I can donate? I'm not a programmer, and don't want to leech. Let me know.
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Is there anywhere I can donate?
Just spread your love over the MM community :wink:
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Steegy
Posts: 3452
Joined: Sat Nov 05, 2005 7:17 pm

Post by Steegy »

Hey

Can someone please say if the access violations have been fixed in MM3?

Thanks
Steegy
Extensions: ExternalTools, ExtractFields, SongPreviewer, LinkedTracks, CleanImport, and some other scripts (Need Help with Addons > List of All Scripts).
Post Reply