Правила генерации Nowplaying.txt

  • Автор темы Автор темы tester1
  • Дата начала Дата начала

tester1

New member
Доброго дня. Хотелось бы уточнить такой момент: имеются ли какие-то инструменты для создания правил генерируемого файла nowplaying.txt? В частности, интересует создание сложного правила, изменяющего содержимое файла с "Исполнитель (Artist) - Трек (Track)" на "Artist - Track" при условии, генерации используется имя воспроизводимого файла. Если таковых нет, может, подскажет кто-нибудь, какими средствами возможно задание таких условий для генерации нового текстовика с применением этих правил с проверкой на наличие изменений первого, либо по таймеру? В условиях так же может быть, что встречается в исходнике "Artist - Трек (Track)" или наоборот, "Исполнитель (Artist) - Track"
 
Не совсем понятно, что именно нужно. Если у терка нет тегов, то будет использоваться имя файла.
 
Ну можно написать скрипт, который будет при смене трека обновлять файл nowplaying.txt в зависимости от заданных условий.
 
Не совсем понятно, что именно нужно. Если у терка нет тегов, то будет использоваться имя файла.
Нужно изменять, в моём случае, чтобы был удобоваримый текст для RDS
Ну можно написать скрипт, который будет при смене трека обновлять файл nowplaying.txt в зависимости от заданных условий.
Надеялся, что такой функционал имеется изначально в РБ, но, похоже, что нет. Для написания придётся либо самому изучать способы написания скриптов, либо просить знающих людей. В другом плеерном ПО присутствовал встроенный функционал, где лишь было достаточно указать правила, по которым редактировать. На самом деле, было бы неплохо, если бы и в РБ был аналогичный, ведь некоторым пользователям тоже приходится работать с тем же RDS и делать преобразования текста.
 
Надеялся, что такой функционал имеется изначально в РБ, но, похоже, что нет.
Непонятно, если честно, что этот функционал должен вообще делать. Например, что значит
изменяющего содержимое файла с "Исполнитель (Artist) - Трек (Track)" на "Artist - Track"
- откуда возьмется такое содержимое в Nowplaying, это теги в файле такие? Если так, то лучше просто подготовить теги заранее.
 
Непонятно, если честно, что этот функционал должен вообще делать. Например, что значит

- откуда возьмется такое содержимое в Nowplaying, это теги в файле такие? Если так, то лучше просто подготовить теги заранее.
"Исполнитель (Artist) - Трек (Track)" - это имя текущего воспроизводимого трека, записываемое РБ в текстовик nowplaying.txt, но требуется избавиться от кодировки в этом имени, отличной от латиницы, чтобы скормить RDS, соответственно, нужно привести его к виду "Artist - Track" латиницей. Никакой кириллицы. либо любой другой кодировки RDS не скушает. Некоторые используют транслитерацию в латиницу с кириллицы, но, в моём случае, имена треков кириллицей, а вообще в хирагане, катакане и кандзи, а в скобках указаны исполнитель и имя трека латиницей. Соответственно, нужно оставить для RDS только в виде латиницы.
 
соответственно, нужно привести его к виду "Artist - Track" латиницей. Никакой кириллицы
Такая функция в каком-то виде есть. В меню нажмите Настройки, Открыть папку с настройками. Там будет файл textconversion-example.txt - его нужно переименовать в textconversion.txt (чтобы активировать функцию замены) и в самом файле задать правила замен.
 
Такая функция в каком-то виде есть. В меню нажмите Настройки, Открыть папку с настройками. Там будет файл textconversion-example.txt - его нужно переименовать в textconversion.txt (чтобы активировать функцию замены) и в самом файле задать правила замен.
Этот функционал - да, видел, но, в моём случае, нужно задать более сложные правила. Вопрос в том, где бы ознакомиться со списком тех, что поддерживаются. В том файле, как вижу, по умолчанию задана только подмена кириллицы на латиницу. Увы, но у меня далеко не кириллица, потому требуется сразу отсекать.
 
Хотелось бы попутно знать, как он поведёт себя, если сделать запрос вида "символ=", либо что потребуется прописать, чтобы избавиться от символа. Но, опять же, мне нужна привязка ещё и к скобкам. Нужно увидеть весь лист поддерживаемых условий. Или здесь работает только сопоставление через "=" и больше ничего? Так же интересует вопрос, требуется ли перезапуск плеера после переименования textconversion-example.txt в textconversion.txt для его подхвата.
 
Последнее редактирование:
Этот функционал - да, видел, но, в моём случае, нужно задать более сложные правила. Вопрос в том, где бы ознакомиться со списком тех, что поддерживаются. В том файле, как вижу, по умолчанию задана только подмена кириллицы на латиницу. Увы, но у меня далеко не кириллица, потому требуется сразу отсекать.
В файле задаются правила, какие символы заменять на какие. Вы можете добавить сколько угодно таких замен.

Или здесь работает только сопоставление через "=" и больше ничего?
Да, там просто замена того, что слева на то, что справа. "A=" - уберет буквы А.
 
В итоге, пришёл к выводу, что для моей задачи потребуется скрипт для правки текстовика. Силами chatgpt удалось добиться частичного результата со следующим кодом для powershell:
Код:
# Указание путей к файлам
$inputFile = 'C:\nowplayingsacuradio.txt'
$outputFile = 'C:\rds.txt'

# Создание объекта FileSystemWatcher
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = [System.IO.Path]::GetDirectoryName($inputFile)
$watcher.Filter = [System.IO.Path]::GetFileName($inputFile)
$watcher.EnableRaisingEvents = $true
$watcher.IncludeSubdirectories = $false

# Определение действия при изменении файла
$action = {
    Write-Host "Файл изменен: $($Event.SourceEventArgs.FullPath)"
    # Вызов функции для обработки файла (здесь нужно определить вашу обработку)
    Process-File
}

# Регистрация события
$registration = Register-ObjectEvent $watcher 'Changed' -Action $action

# Проверка успешности регистрации
if ($registration -ne $null) {
    # Сохранение идентификатора для последующего использования
    $eventId = $registration.SourceIdentifier
    Write-Host "Событие зарегистрировано с идентификатором: $eventId"
} else {
    Write-Host "Ошибка регистрации события."
}

# Ожидание завершения работы
Write-Host "Нажмите Enter для выхода..."
[void][System.Console]::ReadLine()

# Освобождение ресурсов
try {
    # Проверка на валидность $eventId
    if ($eventId) {
        Unregister-Event -SourceIdentifier $eventId
        Write-Host "Событие успешно отменено."
    } else {
        Write-Host "Идентификатор события отсутствует."
    }
} catch {
    Write-Host "Ошибка при отмене события: $_"
} finally {
    $watcher.Dispose()
}
Но требуется ещё доработать под нюансы и задать автоматическую проверку на наличие изменений в исходном текстовике. Возможно, код кому-то поможет в их проектах.
 
По хорошему, такая функция должна присутствовать в программе, которая отправляет RDS.

В скрипте выше нет обработки текста в файле. И проще будет - раз в секунду (или какой-то интервал) просто читать файл nowplaying от RadioBOSS и выдавать измененный.
 
По хорошему, такая функция должна присутствовать в программе, которая отправляет RDS.

В скрипте выше нет обработки текста в файле. И проще будет - раз в секунду (или какой-то интервал) просто читать файл nowplaying от RadioBOSS и выдавать измененный.
Не, железка кушает то, что ей скармливается, если видит что-то нечитаемое - выдаёт пустой квадрат. Нужно именно готовить для неё удобоваримый текст.
 
Назад
Верх