Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - morgothic

#1
Scripting / Re: [BATCH] Randomizar listas m3u
15 Octubre 2012, 13:40 PM
Buenos días a todos!

Para finalizar con este post, pudiendo darlo por resuelto anotaré aquí todo el código fuente. La idea de que con esa última formula que anotó EleKtro H@cker una de las playlist quedase perfecta me llevó a copiarla y cambiar el nombre también para las otras carpetas. Quizá haya una manera mas sencilla de programarlo todo, pero esta sin duda funciona a la perfección.

@Echo OFF
color 0c
Title Randomizador de listas de reproduccion M3U (by Elektro H@cker^)

PUSHD "C:\Guild Wars 2\Music"

Echo [ Procesando listas... ] | MORE
FOR /D %%@ IN (MAINMENU.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U MAINMENU"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo MainMenu\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (AMBIENT.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U AMBIENT"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo Ambient\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (BATTLE.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U BATTLE"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo BATTLE\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (BOSSBATTLE.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U BOSSBATTLE"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo BOSSBATTLE\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (CITY.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U CITY"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo CITY\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (CRAFTING.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U CRAFTING"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo CRAFTING\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (NIGHTTIME.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U NIGHTTIME"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo NIGHTTIME\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)
FOR /D %%@ IN (UNDERWATER.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U|MORE>"%Temp%\%%~n@.tmp"
Echo #EXTM3U|MORE>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U UNDERWATER"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%;%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (
Echo %%a>>"%Temp%\%%~n@.m3u"
For /F "Tokens=2* Delims=," %%A in ('echo %%a') do (Echo UNDERWATER\%%A|MORE>>"%Temp%\%%~n@.m3u"))
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)

call "C:\Guild Wars 2\Gw2.exe"

exit


Un poco largo todo, no? Pero funciona perfectamente. De nuevo gracias a todos por ayudarme y un saludo!
#2
Scripting / Re: [BATCH] Randomizar listas m3u
14 Octubre 2012, 20:25 PM
Una cosa más...

No reparé en una cosa!

Con respecto al randomizador: Rula correctamente en cuanto al winamp, media player, etc respecta, pero el juego no lee esos m3u. Me explico:

Así se ve en el bloc de notas antes de ejecutar el bat:
#EXTM3U
#EXTINF:0,1-02 Super Strength 2.mp3
MainMenu\1-02 Super Strength 2.mp3

#EXTINF:0,1-06 From The Abyss.mp3
MainMenu\1-06 From The Abyss.mp3

#EXTINF:0,1-11 The Summoning orc.mp3
MainMenu\1-11 The Summoning orc.mp3

#EXTINF:0,1-13 Born Of Ash.mp3
MainMenu.... etc etc etc


Y así tras ejecutarlo:
#EXTM3U
MainMenu\1-13 Born Of Ash.mp3
MainMenu\12 Fill My Heart (No Choir).mp3
MainMenu\1-02 Super Strength 2.mp3
MainMenu\1-11 The Su... etc etc etc


¿Cómo puedo conseguir que el ejecutable me escriba también los #EXTINF? Sería algo así como "#EXTINF:0," donde el 0 representa la longitud de la pista en segundos (0 = toda la pista) y el nombre de la pista
#3
Scripting / Re: [BATCH] Randomizar listas m3u
14 Octubre 2012, 19:01 PM
XDD ok ................  :¬¬ (i'm so nooooob)
#4
Scripting / Re: [BATCH] Randomizar listas m3u
14 Octubre 2012, 18:55 PM
BRAVO!!!!!!!! 1k gracias! Funciona a la perfección! Las listas cambian perfectamente, pero no ejecuta el gw2.exe. Cuando lo ejecuto, me indica que no encuentra la ruta o algo así:

El nombre de archivo, directorio o etiqueta del volumen no es válido

Y la ruta que pongo está correcta, es la del juego:

REM Start /B /D "C:\Guild Wars 2\" "Gw2.exe" ??????

Bueno, de todas maneras, ya me has ayudado infinitamente, buscaré algo de info del comando REM he intentaré hacerlo yo.

Muchas gracias por todo y nada, empezaré a tocar un poco de python y ruby a ver que tal ;)
#5
Scripting / Re: [BATCH] Randomizar listas m3u
14 Octubre 2012, 18:38 PM
Hola! He editado el código para ponerle las rutas a carpetas y tal:

@Echo OFF
Title Randomizador de listas de reproduccion M3U (by Elektro H@cker^)

PUSHD "C:\Guild Wars 2\Music"

Echo [ Procesando listas... ] | MORE
FOR /R %%@ IN (*.M3U) DO (
Echo [+] %%~nx@
Echo #EXTM3U>"%Temp%\%%~n@.tmp"
Echo #EXTM3U>"%Temp%\%%~n@.m3u"
FOR /F "TOKENS=*" %%# IN ('TYPE "%%@" ^| FINDSTR /V /I "#EXTM3U #EXTINF"') DO (
CALL ECHO %%Random%%%%Random%%%%Random%%!!%%#>>"%Temp%\%%~n@.tmp")
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\%%~n@.tmp" ^| Sort') do (Echo %%a>>"%Temp%\%%~n@.m3u")
(Move /Y "%Temp%\%%~n@.m3u" "%%@" >NUL && (Echo OK!) || (Echo ERROR... & Pause)) | MORE
)

REM Con este comando ejecutas el juego directamente...
REM Start /B /D "C:\Guild Wars 2\" "Gw2.exe"

PAUSE&EXIT


Al ejecutarlo me borra el contenido de todas las listas, me las devuelve vacías. Esto es lo que vería en una lista normal en el bloc de notas:

#EXTM3U
#EXTINF:141,Two Steps From Hell (310 985-1 - From The Abyss
C:\Guild Wars 2\Music\MainMenu\1-06 From The Abyss.mp3
#EXTINF:156,Two Steps From Hell (310 985-1 - Born Of Ash
C:\Guild Wars 2\Music\MainMenu\1-13 Born Of Ash.mp3
#EXTINF:208,Midnight Syndicate - Living Walls
C:\Guild Wars 2\Music\MainMenu\22 - Living Walls.mp3


Y al ejecutar el .bat, tan sólo me devuelve una sóla linea con #EXTM3U

La música la tengo en carpetas ordenadas y todas las listas a parte en una única carpeta, te lo digo como info, pero no creo que tenga nada que ver. Qué me puede estar fallando?

Gracias! Aaag! Casi está!! jajaja (llevo 3 días buscando una solución para esto y ahora siento que está a punto! muy muy agradecido EleKtro H@cker)
#6
Scripting / [BATCH] Randomizar listas m3u
14 Octubre 2012, 17:16 PM
Hola! Es la primera vez que escribo en el foro, así que saludos a tod@s!

Os pido ayuda a vosotros dado que no tengo idea de programación :$

Os expongo brevemente el caso. Desde hace tiempo juego a Guild Wars 2 y en éste la música llega a ser bastante repetitiva. Existe la opción de crear hasta 8 listas de reproducción diferentes, cada una para una situación (Ambiente, batalla, noche, etc). Hasta ahí todo bien, lo que ocurre es que el juego no te randomiza las listas, simplemente las reproduce una y otra vez desde el principio cada vez que accedes al juego.

Tras mucho investigar, hacer pruebas y tal, la única opción que se me ocurrió fue añadir algún código al .m3u que randomizara directamente los temas sin necesidad de marcar "Shuffle" en los reproductores, pero me ha sido imposible lograrlo, quizá no da esa opción el m3u...

Consultando por el foro ví un post de EleKtro H@cker en el cual comentaba algo sobre Randomizar lineas en un txt:

Código (dos) [Seleccionar]
@Echo OFF
Setlocal enabledelayedexpansion

Set Carpeta=%~n0

Echo #EXTM3U>"%Temp%\Lista Winamp.tmp"
For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo  !Random!!Random!!Random!;%%$>>"%Temp%\Lista Winamp.tmp")

Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\Lista Winamp.tmp" ^| Sort ') do (Echo  %%a>>"%Temp%\Lista Winamp.m3u")
Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"

Exit


Aún no estoy seguro si debería investigar por este camino, si me podría funcionar... ¿Creéis que es posible hacer algun ejecutable para arrancarlo antes del juego y que modifique las listas rápida y facilmente?

Gracias a todos y disculpad mi ignorancia.