Code: Select all
; Winamp Playlists
; by chinagreenelvis
; Version 0.01
#NoEnv
#SingleInstance force
#Persistent
SetWorkingDir %A_ScriptDir%
EnvGet, ProgramFiles32, ProgramFiles(x86)
INIFile = WinampPlaylists.ini
DefaultExts = mp3,ogg,flac,wma,wav,spc,m4a,nsf,nsfe,rsn,vgz
Global Extensions
IfNotExist, %INIFile%
{
IniWrite, 1, %INIFile%, Settings, TrayIcon
IniWrite, x, %INIFile%, Directories
IniWrite, %DefaultExts%, %INIFile%, FileTypes, Extensions
}
IniRead, TrayIcon, %INIFile%, Settings, TrayIcon
IniRead, Extensions, %INIFile%, FileTypes, Extensions
If (!TrayIcon)
{
Menu, Tray, NoIcon
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; START
Start := A_TickCount
;DeletePlaylists()
FileRemoveDir, Playlists\Music, 1
IniRead, OutputVar, %INIFile%, Directories
Loop Parse, OutputVar, `n
{
MakePlayLists(A_LoopField)
}
RandomizePlaylists()
Difference := A_TickCount - Start
MsgBox, %Difference%
ExitApp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FUNCTIONS
ProcessExist(Name)
{
Process, Exist, %Name%
return Errorlevel
}
DeletePlaylists()
{
Loop Files, Playlists\Music\*.m3u, R
{
FileDelete, %A_LoopFileFullPath%
}
}
MakePlayLists(Directory)
{
SplitPath, Directory, TopFolder
;MsgBox, %Directory%, %TopFolder%
Loop Files, %Directory%\*.*, D
{
Folder = %A_LoopFileName%
Dir = %A_LoopFileFullPath%
;MsgBox, %Folder%, %Dir%
Loop Files, %Dir%\*.*, R
{
File = %A_LoopFileFullPath%
;MsgBox, %Extensions%
If A_LoopFileExt contains %Extensions%
{
FileCreateDir, Playlists\Music\%TopFolder%\%Folder%
FileAppend, %File%`n, Playlists\Music\%TopFolder%\%Folder%\!Playlist.m3u
SplitPath, File, Filename, FileDir
SplitPath, FileDir, SubFolder
If (SubFolder != Folder) && (SubFolder != TopFolder)
;MsgBox, %SubFolder%
{
FileCreateDir, Playlists\Music\%Folder%\%SubFolder%
FileAppend, %File%`n, Playlists\Music\%Folder%\%SubFolder%\!Playlist.m3u
}
}
}
}
}
RandomizePlaylists()
{
Loop Files, Playlists\Music\*.m3u, R
{
File = %A_LoopFileFullPath%
;MsgBox, %A_LoopFileFullPath%
FileRead, Playlist, %File%
FileDelete, %File%
Sort Playlist, Random U
FileAppend, %Playlist%, %File%
}
}