???Как уговорить Бат дописывать в конец сообщений названия песен, играющих в WinAmp'е? Говорят, есть такой специальный плугин, не знаете, где его добыть?
???Как уговорить Бат дописывать в конец сообщений названия песен, играющих в WinAmp'е? Говорят, есть такой специальный плугин, не знаете, где его добыть?
NNCron может выводить в файл название песни, которую играет WinAmp. В файл nncron.tab в каталоге NNCron нужно добавит следующее :
Где c:\UTILS\temp\np.txt нужно заменить на путь к файлу, в котором будет записываться название проигрываемой песни.Код:#( general_now_playing \ Don't forget to disable 'Scroll song title in the Windows taskbar' \ checkbox in Winamp options \ NoActive SingleInstance <( : NP_TEXT S" np: " ; : STOPPED_TEXT S" [PC Cooler]" ; : PAUSED_TEXT S" [paused]" ; : NP_FILE S" c:\UTILS\temp\np.txt" ; VARIABLE WINAMP_STATUS CREATE WINAMP_TITLE 256 ALLOT CREATE WINAMP_NEW_TITLE 256 ALLOT )> Time: * Also WatchProc: "winamp.exe" Rule: PROC-EXIST: "winamp.exe" Action: BEGIN WIN-EXIST: "Winamp v1.x" WHILE \ Getting track title from Winamp window caption. \ You may need to change this regexp. RE-MATCH: "%FOUND-WINDOW%" "/\d+\. (.*) - Winamp/" IF 104 0 1024 WIN-HWND SendMessageA WINAMP_STATUS ! WINAMP_STATUS @ 3 = IF S" %$1%%PAUSED_TEXT%" EVAL-SUBST WINAMP_NEW_TITLE PLACE ELSE WINAMP_STATUS @ 1 <> IF S" %$1%%STOPPED_TEXT%" EVAL-SUBST WINAMP_NEW_TITLE PLACE ELSE $1 WINAMP_NEW_TITLE PLACE THEN THEN WINAMP_NEW_TITLE COUNT WINAMP_TITLE COUNT COMPARE IF WINAMP_NEW_TITLE COUNT WINAMP_TITLE PLACE FILE-WRITE: "%NP_FILE%" "%NP_TEXT%%WINAMP_NEW_TITLE COUNT%" THEN THEN \ Change pause length to suit your needs PAUSE: 4000 REPEAT \ Emptyiing 'np.txt' when Winamp is inactive. \ You may use smth like this: \ FILE-WRITE: "%NP_FILE%" "%NP_TEXT%Winamp not active" FILE-WRITE: "%NP_FILE%" " " )#
Затем необходимо прописать в нужном шаблоне TheBat следующую строку:
%PUT="c:\UTILS\temp\np.txt", где c:\UTILS\temp\np.txt опять-таки меняем на нужный путь.
Пример задачи взят из хелпа к NNCron .
В дополнение к теме:
Ссылки на Now Playing плагины для WinAmp:
Gen_Np Plugin
Advanced Now Playing
Вот аналогичный плагин к Quintessential Player:
Now Playing
В настройках плагина к задаём путь к файлу, в который будет выводиться название песни, проигрываемой в данный момент. Затем необходимо прописать в нужном шаблоне TheBat следующую строку:
%PUT="c:\UTILS\temp\np.txt", где c:\UTILS\temp\np.txt опять-таки меняем на нужный путь.
крон - ужасное решение
адвансед - маленький, но работает только по НАЖАТИЮ на кнопки винампа
ген-нп - лучший из вышеизложенного
(там надо не забыть ОТКЛЮЧИТЬ oem conversion чтобы руссишь был)
хотелось бы еще, чтобы silence & incative заменялись на случайные фразы… может бат случайную строчку вставлять (речь не о девизах)?
Чем?Сообщение от djdance
Используйте %COOKIE="ПутЬ" для вставки случайной фразы из файла.может бат случайную строчку вставлять (речь не о девизах)?
крон… его работа слишком заметна (Интел1гиг, вынь98)
имхо это из пушки по воробьям
и какие-то глюки с ним, не всегда срабатывает, например, критичен к загрузке системы..
насчет %COOKIE="ПутЬ":
я имею в виду такую логику работы:
если winamp остановлен или выгружен, то np пишет заранее заготовленную фразу типа "тишина".
как составить выражение для БАТа, чтобы вместо слова "тишина" подгружались %COOKIE="ПутЬ" ?
Пробегал по Батталку шаблон от Alexander Kiselev, который вообще убирает вывод строки с Now Playing, если WinAmp неактивен, но я его найти никак не могу.
Вот, ловите, кому надо, прямиком от автора
Аюшки вам!
Таки возникла у меня некая идейка по поводу сопряжения WinAmp'ового плагина NP с
Батом. Проблема заключается в следующем: какие-то mp3-файлы имеют теги, какие-то
-- нет, кроме того, WinAmp при помощи известного плагина умеет и ra проигрывать
(излишне добавлять, что их у меня тоже есть…), там уже о тегах разговора нет
вообще. Наконец, по большей части WinAmp и вовсе выключен, и тогда довольно
глупо всем и каждому сообщать в подписи, мол, WinAmp inactive. Приемлемое (для
меня:-)) решение выглядит вот так:
==8<=======================<cut here>=======================>8==
%If:"%SetPattRegExp=""(?im)(\|{3})""%RegExpMatch=" "%PUT='F:\Bat!\cookies\winamp.txt'""">" ":%-
"
---
WinAmp:%SetPattRegExp=""(?im)\|{3}(.*(\[.*?\])?)""%RegExpMatch=""%PUT='F:\Bat!\cookies\winamp.t xt'""":%-
'%If:"%SetPattRegExp=""(?im)\A\s*(\[)""%RegExpMatch=""%PUT=''F:\Bat!\cookies\winamp.tx t''""">" ":%-
"":%-
"
---
WinAmp:
%SetPattRegExp=""(?im)\A(\s*\d*\s*\-\s*)?(.*?(\[.*?\]|\Z))""%RegExpBlindMatch=""%PUT=''F:\Bat!\cookies\ winamp.txt''""%SubPatt=""2"""'
==8<=======================<cut here>=======================>8==
Ну, или примерно так:-) NP при этом настраиваем примерно в таком духе:
filename for NP: F:\Bat!\Cookies\winamp.txt (если не так, то надо соответственно
поменять пути в регекспе во всех местах, разумеется:-))
NP string format: %7 ||| %2 (%1; %3) %6
~~~ вот это _должно_ быть!
String when inactive: [inactive]
String when stopped: [stopped]
String when paused: [paused]
Теперь в чем идея? Вначале макрос проверяет, есть ли mp3 тег в проигрываемом
файле. Фокус в том, что при наличии такого тега NP напишет в файл что-то вроде:
БГ - Nuit De Noel ||| Nuit De Noel (БГ; Песни Вертинского)
А при отсутствии, соответственно:
Nuit De Noel
и больше ничего. Вот наличие трех вертикальных палок и проверяется. Если они
_есть_ -- выдается при помощи регекспа то, что внизу, в моей подписи. В
противном случае -- еще одна проверка: не стоит ли в начале winamp.txt
открывающая квадратная скобка (что должно указывать на [inactive], [paused] или
[stopped] без названия композиции _вообще_: такое мне тоже встречалось…),
если да -- ничего не выдавать, а если нет -- обработать winamp.txt чуть
иначе (в частности, выкинуть номер трека в начале композиции, если он
там есть) и выдать. Получается что-то типа
---
WinAmp: Пес Дуглас
Как получить в _общем_ случае больше информации о треке при отсутствии тега в
нем, я не знаю (ну то есть ясно, что можно обрабатывать полный путь к
аудиофайлу, но у всех принципы классификации разные, более того, у меня одного
наблюдается их аж три разных:-(), поэтому остановился на уже достигнутом.
Ну и, как обычно, comments, suggestions & bug reports (боже сохрани:-))) are
welcomed here: <akiselev@mph.phys.spbu.ru> (а _не_ в группу!)
HTH (хоть кому-то:-))
ЗЫ. У меня: WinAmp 2.71, NP plugin 1.23. Как все понимают, от версий может много
чего зависеть, к сожалению:-(
ЗЗЫ. Приветик персонально Слэшу, без его inspiration я бы так и не созрел до
применения %If:-). Может, и рекурсию какую придумаю со временем:-))
ЗЗЗЫ. Прошу сильно не пинать: да, таки изврат, но см. сабж.
--
С уважением, Александр
---
WinAmp: Пес Дуглас (БГ; Песни Вертинского)
---
Alexander Kiselev:
Спасибо !
обращаюсь к рюхам по регекспам: упростите указанный выше скрипт, оставив только функциональность по "["!