' Shoutcast_to_Xml.vbs RevA.2
' *** modified by D. Lanik Dec 2005, Rev. 1
Dim oShell
Dim lGenre
' ---------------------------------------8<---------------------------------------
Shoutcast_XML_File = "C:\Program Files\Xlobby\databases\shoutcast.xml"
Shoutcast_Pls_Files = "C:\Program Files\Xlobby\databases\Shoutcast"
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
Shoutcast_Pls_List_Files = Shoutcast_Pls_Files & "\Pls_list.lst"
Cnv_html_Link = False
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
Set FSO_XMLShout = CreateObject("Scripting.FileSystemObject")
Set XML_Shoutcast_F = FSO_XMLShout.CreateTextFile(Shoutcast_XML_File,True)
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' Construct Pls list...
Set oShell = WScript.CreateObject ("WSCript.shell")
' Pls_Cmd_Line = "cmd /K dir " & Chr(34) & Shoutcast_Pls_Files & "\*.pls" & Chr(34) &" /S /b > Pls_list.lst & Exit"
'Pls_Cmd_Line = "cmd /K dir " & Chr(34) & Shoutcast_Pls_Files & "\*.pls" & Chr(34) &" /S /b > " & Chr(34) & Shoutcast_Pls_List_Files & Chr(34) &" & Exit"
Pls_Cmd_Line = "cmd /K dir " & Chr(34) & Shoutcast_Pls_Files & "\*.pls" & Chr(34) &" /S /b > " & _
Chr(34) & Shoutcast_Pls_List_Files & Chr(34) & " & Exit"
RetVal = oShell.run(Pls_Cmd_Line,0,True)
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' Read Pls_list file and construct out file
Write_XML_Header_Function
Set FSO_Pls_File = CreateObject("Scripting.FileSystemObject")
Set Pls_File = FSO_Pls_File.OpenTextFile(Shoutcast_Pls_List_Files, 1, True)
Idx = 0
lGenre = ""
Do While Pls_File.AtEndOfLine <> True
Token = Trim(Pls_File.ReadLine)
If ( InStr(Token,".pls") <> 0 ) Then
Idx = Idx + 1
Pls_Parameter = Token
Pls_File_Name = Extract_Pls_File_Name(Token)
Pls_Bitrate = Extract_Pls_Birate(Token)
Pls_Name = Extract_Pls_Name(Token)
Pls_Genre = Extract_Pls_Genre(Token,Pls_File_Name)
Pls_Folder = Extract_Pls_Folder(Token)
Pls_File_Addr = Extract_Pls_File_Addr(Pls_Parameter)
' MsgBox Pls_File_Name & " -> " & Pls_Bitrate & " >> " & Pls_Name & " Genre= [" & Pls_Genre & "]"
XML_Shoutcast_F.WriteLine("")
if( lGenre <> Pls_Genre ) Then
if( Idx <> 1 ) Then
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" ")
End If
XML_Shoutcast_F.WriteLine(" - ")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Genre) & "")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Genre) & "")
XML_Shoutcast_F.WriteLine(" folder")
XML_Shoutcast_F.WriteLine(" ")
lGenre = Pls_Genre
End if
XML_Shoutcast_F.WriteLine("
- ")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Folder) & "")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_File_Name) & "")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine("
- ")
XML_Shoutcast_F.WriteLine(" track")
If Cnv_html_Link Then
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_File_Addr) & "")
Else
XML_Shoutcast_F.WriteLine(" " & Pls_File_Addr & "")
End If
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_File_Name) & "")
XML_Shoutcast_F.WriteLine(" ")
If Cnv_html_Link Then
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_File_Addr) & "")
Else
XML_Shoutcast_F.WriteLine(" " & Pls_File_Addr & "")
End If
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Genre) & "")
XML_Shoutcast_F.WriteLine(" " & Pls_Bitrate & "")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Name) & "")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine("
")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Genre) & "")
XML_Shoutcast_F.WriteLine(" " & Pls_Bitrate & "")
XML_Shoutcast_F.WriteLine(" " & Replace_Special_XML_Caracters(Pls_Name) & "")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" ")
End If
Loop
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" ")
MsgBox "Update done : " & Idx & " radios found."
Pls_File.Close
Write_XML_Tail_Function
XML_Shoutcast_F.Close
Wscript.Quit
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
Function Write_XML_Header_Function()
XML_Shoutcast_F.WriteLine("")
XML_Shoutcast_F.WriteLine("")
XML_Shoutcast_F.WriteLine(" display")
XML_Shoutcast_F.WriteLine(" ")
XML_Shoutcast_F.WriteLine(" genre")
XML_Shoutcast_F.WriteLine(" birate")
XML_Shoutcast_F.WriteLine(" name")
XML_Shoutcast_F.WriteLine(" ")
End Function
Function Write_XML_Tail_Function()
XML_Shoutcast_F.WriteLine("")
XML_Shoutcast_F.WriteLine("")
End Function
Function Replace_Special_XML_Caracters(TokenBase)
TokenBase = Replace(TokenBase,"&","&")
TokenBase = Replace(TokenBase,"'","'")
TokenBase = Replace(TokenBase,"é","é")
TokenBase = Replace(TokenBase,"è","è")
TokenBase = Replace(TokenBase,"ê","ê")
TokenBase = Replace(TokenBase,"à","à")
TokenBase = Replace(TokenBase,"á","á")
TokenBase = Replace(TokenBase,"â","â")
TokenBase = Replace(TokenBase,"ä","ä")
TokenBase = Replace(TokenBase,"æ","æ")
TokenBase = Replace(TokenBase,"å","å")
TokenBase = Replace(TokenBase,"ç","ç")
TokenBase = Replace(TokenBase,"ë","ë")
TokenBase = Replace(TokenBase,"ñ","ñ")
TokenBase = Replace(TokenBase,"ô","ô")
TokenBase = Replace(TokenBase,"ò","ò")
TokenBase = Replace(TokenBase,"ó","ó")
TokenBase = Replace(TokenBase,"ö","ö")
TokenBase = Replace(TokenBase,"ù","ù")
TokenBase = Replace(TokenBase,"ú","ú")
TokenBase = Replace(TokenBase,"û","û")
TokenBase = Replace(TokenBase,"ü","ü")
TokenBase = Replace(TokenBase,"ì","ì")
TokenBase = Replace(TokenBase,"í","í")
TokenBase = Replace(TokenBase,"î","î")
TokenBase = Replace(TokenBase,"ï","ï")
TokenBase = Replace(TokenBase,"°","˚")
TokenBase = Replace(TokenBase,"˜","˜")
TokenBase = Replace(TokenBase,"º","º")
TokenBase = Replace(TokenBase,"ˆ","ˆ")
TokenBase = Replace(TokenBase,"“","")
TokenBase = Replace(TokenBase,"”","")
TokenBase = Replace(TokenBase,"‘","")
TokenBase = Replace(TokenBase,"’","")
TokenBase = Replace(TokenBase,"À","À")
TokenBase = Replace(TokenBase,"Á","Á")
TokenBase = Replace(TokenBase,"Â","Â")
TokenBase = Replace(TokenBase,"Ã","Ã")
TokenBase = Replace(TokenBase,"Ä","Ä")
TokenBase = Replace(TokenBase,"Å","Å")
TokenBase = Replace(TokenBase,"Æ","Æ")
TokenBase = Replace(TokenBase,"Ç","Ç")
TokenBase = Replace(TokenBase,"È","È")
TokenBase = Replace(TokenBase,"É","É")
TokenBase = Replace(TokenBase,"Ê","Ê")
TokenBase = Replace(TokenBase,"Ë","Ë")
TokenBase = Replace(TokenBase,"Ì","Ì")
TokenBase = Replace(TokenBase,"Í","Í")
TokenBase = Replace(TokenBase,"Î","Î")
TokenBase = Replace(TokenBase,"Ï","Ï")
TokenBase = Replace(TokenBase,"Ð","Ð")
TokenBase = Replace(TokenBase,"Ñ","Ñ")
TokenBase = Replace(TokenBase,"Ò","Ò")
TokenBase = Replace(TokenBase,"Ó","Ó")
TokenBase = Replace(TokenBase,"Ô","Ô")
TokenBase = Replace(TokenBase,"Õ","Õ")
TokenBase = Replace(TokenBase,"Ö","Ö")
TokenBase = Replace(TokenBase,"×","×")
TokenBase = Replace(TokenBase,"Ø","Ø")
TokenBase = Replace(TokenBase,"Ù","Ù")
TokenBase = Replace(TokenBase,"Ú","Ú")
TokenBase = Replace(TokenBase,"Û","Û")
TokenBase = Replace(TokenBase,"Ü","Ü")
TokenBase = Replace(TokenBase,"Ý","Ý")
TokenBase = Replace(TokenBase,"Œ","Œ")
TokenBase = Replace(TokenBase,"œ","œ")
TokenBase = Replace(TokenBase,"ƒ","ƒ")
' TokenBase = Replace(TokenBase,":",":")
' TokenBase = Replace(TokenBase,";",";")
' TokenBase = Replace(TokenBase,"#","#")
TokenBase = Replace(TokenBase,"!","!")
TokenBase = Replace(TokenBase,"?","?")
TokenBase = Replace(TokenBase,"%","%")
TokenBase = Replace(TokenBase,"'","'")
TokenBase = Replace(TokenBase,chr(34),""")
TokenBase = Replace(TokenBase,"³","3")
Replace_Special_XML_Caracters = TokenBase
End Function
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------
Function Extract_Pls_File_Name(Tkn)
Pos_Left = InStrRev(Tkn,"\")
Pos_Right = InStr(Tkn, ".pls")
Extract_Pls_File_Name = Replace(Mid(Tkn,Pos_Left+1),".pls","")
End Function
Function Extract_Pls_Birate(Tkn)
Pos_Left = InStrRev(Tkn,"(")
Pos_Right = InStr(Tkn, ").pls")
Extract_Pls_Birate = Replace(Mid(Tkn,Pos_Left+1),").pls","")
End Function
Function Extract_Pls_Name(Tkn)
Pos_Left = InStrRev(Tkn,"\")
Pos_Right = InStrRev(Tkn, "(")
Tkn2 = Mid(Tkn,Pos_Left+1,Pos_Right-Pos_Left-2)
Pos_Left = InStr(Tkn2," ")
Extract_Pls_Name = Mid(Tkn2,Pos_Left+1)
End Function
Function Extract_Pls_Genre(Tkn,Pls_FName)
Tkn = replace(Tkn,"\"&Pls_FName&".pls","")
Pos_Left = InStrRev(Tkn,"\")
Extract_Pls_Genre = Mid(Tkn,Pos_Left+1)
End Function
Function Extract_Pls_Folder(Tkn)
Pos_Right = InStr(Tkn, "\")
Extract_Pls_Folder = Mid(Tkn,Pos_Right+1)
End Function
Function Extract_Pls_File_Addr(Tkn)
Set FSO_Dedicated_File = CreateObject("Scripting.FileSystemObject")
Set Dedicated_File = FSO_Dedicated_File.OpenTextFile(Tkn, 1, True)
Do While Dedicated_File.AtEndOfLine <> True
Tkn_addr = Trim(Dedicated_File.ReadLine)
If ( InStr(LCase(Tkn_addr),LCase("File1=")) <> 0 ) Then
RetVal = Replace(Tkn_addr,"File1=","")
Exit Do
End If
Loop
Dedicated_File.Close
Extract_Pls_File_Addr = RetVal
End Function
' ---------------------------------------8<---------------------------------------
' ---------------------------------------8<---------------------------------------