by Volition » Sat Aug 08, 2009 5:57 am
Hi Everyone,
In an effort to sync MediaMonkey to Squeezecenter. I need to workout how to run the script below from Squeezecenter. I know that this script is being run however, i am getting no action. I also no the script works as i've run it with minor variable changes as a script within Mediamonkey.
What needs to be done to get it to work. I need to run this from a PERL script in another program. I don't want to Have MM open either.
Code: Select all
Option Explicit
Sub SqueezeSync(path)
Dim str, arr, songpath, sit, itm, playdate, newrate, pldat, propdat
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(path) then
Dim txt : Set txt = fso.OpenTextFile(path,1,False)
SDB.Database.BeginTransaction
Do While Not txt.AtEndOfStream
SDB.ProcessMessages
str = Trim(txt.ReadLine)
arr = Split(str,"|")
'arr(0) is Title
'arr(1)
'arr(2)
'arr(3) is SongPath
'arr(4) is Played or Rated
'arr(5) is Date in this format 20081209074549 yyyymmddhhmmss
'arr(6) is Rating
songpath = Mid(arr(3),2)
newrate = arr(6)
Set sit = SDB.Database.QuerySongs("AND (Songs.SongPath = '"&Replace(songpath,"'","''")&"')")
If Not (sit.EOF) Then
Set itm = sit.Item
if arr(4) = "rated" then
itm.rating = newrate
else
itm.Playcounter = itm.Playcounter + 1
pldat = arr(5)
propdat = Left(pldat, 4) & "-" & Mid(pldat, 5, 2) & "-" & Mid(pldat, 7, 2) & " " & mid(pldat, 9, 2) & ":" & mid(pldat, 11, 2) & ":" & right(pldat, 2)
playdate = FormatDateTime(propdat)
if DateValue(itm.LastPlayed) < DateValue(playdate) then
itm.LastPlayed = playdate
end if
end if
itm.UpdateDB
End If
Loop
Set sit = Nothing
SDB.Database.Commit
else
exit sub
end if
End sub
So for example, this script basically updates the DB with track played information whenever the squeezecenter plays it. As Squeezecenter has been designed to never write to files or edit tags, it is just a player. It is a way of syncing my plays. I also use MM do create my playlists and autoplaylists as they are exceptional. Which Squeezecenter picks up. And of course i use MM to sync my ipod. So that way all my plays, ratings playtimes are updated.
I have to acknowledge the help of Erland Isaksson, who has written the Squeezecenter plugin to hang this off. Thanks kindly.
Any help would get me my dream of Squeezecenter, Mediamonkey & ipod syncronization, automated. Woohoo. Then i can move on to World Domination of course.
Hi Everyone,
In an effort to sync MediaMonkey to Squeezecenter. I need to workout how to run the script below from Squeezecenter. I know that this script is being run however, i am getting no action. I also no the script works as i've run it with minor variable changes as a script within Mediamonkey.
What needs to be done to get it to work. I need to run this from a PERL script in another program. I don't want to Have MM open either.
[code] Option Explicit
Sub SqueezeSync(path)
Dim str, arr, songpath, sit, itm, playdate, newrate, pldat, propdat
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(path) then
Dim txt : Set txt = fso.OpenTextFile(path,1,False)
SDB.Database.BeginTransaction
Do While Not txt.AtEndOfStream
SDB.ProcessMessages
str = Trim(txt.ReadLine)
arr = Split(str,"|")
'arr(0) is Title
'arr(1)
'arr(2)
'arr(3) is SongPath
'arr(4) is Played or Rated
'arr(5) is Date in this format 20081209074549 yyyymmddhhmmss
'arr(6) is Rating
songpath = Mid(arr(3),2)
newrate = arr(6)
Set sit = SDB.Database.QuerySongs("AND (Songs.SongPath = '"&Replace(songpath,"'","''")&"')")
If Not (sit.EOF) Then
Set itm = sit.Item
if arr(4) = "rated" then
itm.rating = newrate
else
itm.Playcounter = itm.Playcounter + 1
pldat = arr(5)
propdat = Left(pldat, 4) & "-" & Mid(pldat, 5, 2) & "-" & Mid(pldat, 7, 2) & " " & mid(pldat, 9, 2) & ":" & mid(pldat, 11, 2) & ":" & right(pldat, 2)
playdate = FormatDateTime(propdat)
if DateValue(itm.LastPlayed) < DateValue(playdate) then
itm.LastPlayed = playdate
end if
end if
itm.UpdateDB
End If
Loop
Set sit = Nothing
SDB.Database.Commit
else
exit sub
end if
End sub
[/code]
So for example, this script basically updates the DB with track played information whenever the squeezecenter plays it. As Squeezecenter has been designed to never write to files or edit tags, it is just a player. It is a way of syncing my plays. I also use MM do create my playlists and autoplaylists as they are exceptional. Which Squeezecenter picks up. And of course i use MM to sync my ipod. So that way all my plays, ratings playtimes are updated.
I have to acknowledge the help of Erland Isaksson, who has written the Squeezecenter plugin to hang this off. Thanks kindly.
Any help would get me my dream of Squeezecenter, Mediamonkey & ipod syncronization, automated. Woohoo. Then i can move on to World Domination of course.