Скрипты для foo_uie_wsh_panel_mod

Список разделов Аудиоплеер foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #2621 LUR » 25.07.2019, 16:17

SergPuh.68 писал(а):LUR, ещё бы знать что такое флаги
Бля. Это константы, признаки, по которым выравнивается текст в данном случае:
Код: Выделить всё
var DT_VCENTER = 0x00000004;
var DT_SINGLELINE = 0x00000020;
var DT_CALCRECT = 0x00000400;
var DT_NOPREFIX = 0x00000800;
Все они объявлены в Flags.txt, необходимые нам просто надо добавить в скрипт и пользоваться.
LUR M
Модератор
Аватара
Возраст: 36
Откуда: Минск
Репутация: 248
С нами: 6 лет 9 месяцев

Сообщение #2622 SergPuh.68 » 25.07.2019, 17:01

LUR, так выбивает когда вставляю ( Панель JScript v1.2.0 от marc2003
Основана на Панели WSH от T.P. Wang )
Снимок экрана (65).jpg
SergPuh.68 M
Бывалый
Аватара
Откуда: Украина
Репутация: 10
С нами: 7 месяцев 11 дней

Сообщение #2623 MC Web » 25.07.2019, 17:42

Если речь про ЭТОТ скрипт - ставим последнюю версию оригинальной панели foo_uie_wsh_panel_mod_1.5.6 и не паримся. Все "старые" скрипты лучше на ней запускать. В настройках панели, чтобы не было ошибок, Безопасный режим должен быть отключен.

Проверил этот же скрипт на foo_jscript_panel_2.2.2 - то же работает...
MC Web
Гуру
Аватара
Репутация: 169
С нами: 6 лет

Сообщение #2624 kgena_ua » 26.07.2019, 18:14

"Get Covers (Artwork) radio logos"
version "26072019"


исправление ошибок, мелкие изменения.

немного описания:
Спойлер
Безымянный.png
Безымянный.png (4.18 КБ) Просмотров: 703


при выборе папки АЛБОМ-2 скрипт прочитает все изображения из папки АЛБОМ-2, из папок 1, 2 и т.д. и из папки COVER.

Порядок сортировки (если файл с таким именем есть):
1 - %artist%.*
2 - %album%.*
3 - %artist% - %album%.*
4 - (или) cover.* front.* folder.* album.*
5 - back.*
6 - cd.*

Get Covers (Artwork) and radio logos 26072019.rar
(12 КБ) Скачиваний: 44
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 55
Откуда: Украина, Днепр
Репутация: 448
С нами: 6 лет 4 месяца

Сообщение #2625 AHAPXICT » 31.07.2019, 11:42

kgena_ua, приветствую. Ещё один фидбек на "Get Covers (Artwork) radio logos". Если из контекстного меню выбрать поиск картинки на LastFM и нажать "отмена" в открытом окне выбора альбома, то после перемещения курсора мыши выдаст ошибку. Я уже очень долго не занимался скриптами и всё что знал и не знал забыл, короче с наскока не могу разобраться. Если данную ошибку проигнорировать через catch(e), то всё равно скрипт продолжает выполнять процедуру поиска и т.д. И да, если альбома нет на LastFM, то выдаёт стандартную предупреждающую табличку nothing found for, ну и на ХР тоже так как просто не может подключится к серверу.
Код: Выделить всё
JScript Panel v2.2.2.2 (Get Covers (Artwork) radio logos v26072019 by kgena_ua)
Ошибка выполнения JavaScript:
Не удалось получить свойство "replace" ссылки, значение которой не определено или является NULL
File: <main>
Line: 1390, Col: 5
Media Library it's bad - explorer it's good!
AHAPXICT M
Мастер
Аватара
Возраст: 48
Откуда: Киев
Репутация: 174
С нами: 5 лет 9 месяцев

Сообщение #2626 AHAPXICT » 05.08.2019, 09:06

Что-то тихо в теме. Есть у кого нибудь такая ошибка или это только у меня?
Media Library it's bad - explorer it's good!
AHAPXICT M
Мастер
Аватара
Возраст: 48
Откуда: Киев
Репутация: 174
С нами: 5 лет 9 месяцев

Сообщение #2627 kutuzof » 05.08.2019, 09:34

AHAPXICT писал(а):Есть у кого нибудь такая ошибка или это только у меня?
Приветствую :beer: ! У меня тоже самое.
kutuzof M
Бывалый
Аватара
Возраст: 32
Откуда: Орёл
Репутация: 102
С нами: 2 года 11 месяцев

Сообщение #2628 AHAPXICT » 05.08.2019, 09:53

kutuzof, Приветствую :beer: Ага, понял. Спс за ответ. Были планы сегодня, пока на работе, заменить в сборках старый скрипт на этот. Ну да ладно, локализую ошибку, короче и так пойдёт.
P.S. В общем больше нечего не придумал с прошлого раза как проигнорировать ошибку, но по крайней мере без AW))
Код: Выделить всё
function clean(n) {
    try{
    var tmp = n.replace(/\./g, "").replace(/\//g, "-").replace(/\:/g, "-").replace(/\*/g, "x").replace(/\?/g, "").replace(/\"/g, "''").replace(/\</g, "_").replace(/\>/g, "_").replace(/\|/g, "").replace(/\\/g, "");
    return tmp.replace(/^\s+|\s+$/g, "").substr(0, 150);
    }catch(e){};
}
Media Library it's bad - explorer it's good!
AHAPXICT M
Мастер
Аватара
Возраст: 48
Откуда: Киев
Репутация: 174
С нами: 5 лет 9 месяцев

Сообщение #2629 kgena_ua » 11.08.2019, 17:41

AHAPXICT писал(а):Если из контекстного меню выбрать поиск картинки на LastFM и нажать "отмена"
Приветствую.
Замените функцию
Код: Выделить всё
function get_lastFM_album_img(t_path, t_artist, t_album){
    if (!metadb || !t_album || !t_artist) return; 

    t_artist = trim(t_artist);
    t_album = trim(t_album);

    var nl = "\" + chr(10) + \"";
    var tmp_album = input_box("Search album image for" + nl + t_artist, t_album, "Foobar 2000");
   
    if (!/\S/.test(tmp_album)) get_lastFM_album_img(t_path, t_artist, t_album);

    if (tmp_album && /\S/.test(tmp_album)){
        search_lastFM_album_img(t_path, t_artist, tmp_album);
    }
}
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 55
Откуда: Украина, Днепр
Репутация: 448
С нами: 6 лет 4 месяца

Сообщение #2630 SergPuh.68 » 11.08.2019, 22:38

Подскажите как в этом скрипте Бегущая строка поменять цвет фона на 30,30,30 и цвет текста на 230,230,230 ?
Код: Выделить всё
var DT_CENTER = 0x00000001;
var DT_RIGHT = 0x00000002;
var DT_VCENTER = 0x00000004;
var DT_WORDBREAK = 0x00000010;
var DT_CALCRECT = 0x00000400;
var DT_NOPREFIX = 0x00000800;
var DT_WORD_ELLIPSIS = 0x00040000;
var DT_SINGLELINE = 0x00000020;

ColourTypeCUI = {
    text: 1,
    selection_text: 1,
    inactive_selection_text: 2,
    background: 3,
    selection_background: 4,
    inactive_selection_background: 5,
    active_item_frame: 6
};
FontTypeCUI = {
    items: 0,
    labels: 1
};
ColourTypeDUI = {
    text: 0,
    background: 1,
    highlight: 2,
    selection: 3
};
FontTypeDUI = {
    defaults: 0,
    tabs: 1,
    lists: 2,
    playlists: 3,
    statusbar: 4,
    console: 5
};

var instancetype = window.InstanceType;
var g_font = null;
var _ww = 0, _wh = 0;
var g_textcolor = 0;
var g_backcolor = 0;

function get_font() {
    if (instancetype == 0) { // CUI
        g_font = window.GetFontCUI(FontTypeCUI.items);
    } else if (g_instancetype == 1) { // DUI
        g_font = window.GetFontDUI(FontTypeDUI.defaults);
    } else {
        // None
    }
}
get_font();

function get_colors() {
    if (instancetype == 0) { // CUI
        g_textcolor = window.GetColourCUI(ColourTypeCUI.text);
        g_backcolor = window.GetColourCUI(ColourTypeCUI.background);
    } else if (g_instancetype == 1) { // DUI
        g_textcolor = window.GetColourDUI(ColourTypeDUI.text);
        g_backcolor = window.GetColourDUI(ColourTypeDUI.background);
    } else {
        // None
    }
}
get_colors();

function on_size() {
    _ww = window.Width;
    _wh = window.Height;
    _textPos = 0;
}

function GetInfoText() {
    var preferNowPlaying = window.GetProperty("Prefer now playing", true);   
    var title = "";
    if(window.GetProperty("Artist", false)) title += "%artist% ";
    if(window.GetProperty("Title", false)) title += "● %title% ";
    if(window.GetProperty("Album", false)) title += "● %album% '('%date%')' ";
    if(window.GetProperty("Codec", true)) title += "● %codec% ";
    if(window.GetProperty("Bitrate", true))
        title += preferNowPlaying && fb.IsPlaying ? fb.TitleFormat("● %bitrate% kbps ").Eval() : "● %bitrate% kbps ";
    if(window.GetProperty("Sample rate", true)) title += "● %samplerate% Hz ";
    if(window.GetProperty("Channels", true)) title += "● $caps(%channels%)";
    if(title[0] == '●') title = title.substr(2);   
    var metaDb = null;
    if(preferNowPlaying && fb.IsPlaying) metaDb = fb.GetNowPlaying(); else metaDb = fb.GetFocusItem();
    if(!metaDb) return "";
    return fb.TitleFormat(title).EvalWithMetadb(metaDb);
}

var _text = GetInfoText();
var _textPos = 0;
var _timer = null;

function StartCrawline() {
    if(_timer != null) StopCrawline();
    _timer = window.SetInterval(function(){
        _textPos -= 20;
        window.Repaint();
    }, 1000);
}
function StopCrawline() {
    if(_timer == null) return;
    window.ClearInterval(_timer);
    _timer = null;
    window.Repaint();
}
if(window.GetProperty("Crawline", false)) StartCrawline();

function on_paint(gr) {
    gr.FillSolidRect(0, 0, _ww, _wh, g_backcolor);
    if(window.GetProperty("Crawline", false))
    {
        var textWidth = gr.CalcTextWidth(_text, g_font);
        gr.GdiDrawText(_text, g_font, g_textcolor, _textPos, 0, textWidth, _wh, DT_VCENTER | DT_SINGLELINE | DT_CALCRECT | DT_NOPREFIX);
        if(textWidth <= _ww)
        {
            if(_textPos < 0)
                gr.GdiDrawText(_text, g_font, g_textcolor, _textPos + _ww, 0, textWidth, _wh, DT_VCENTER | DT_SINGLELINE | DT_CALCRECT | DT_NOPREFIX);
            if(_textPos <= -textWidth) _textPos += _ww;
        }
        else
        {
            if(_textPos + textWidth + 50 < _ww)
                gr.GdiDrawText(_text, g_font, g_textcolor, _textPos + textWidth + 50, 0, textWidth, _wh, DT_VCENTER | DT_SINGLELINE | DT_CALCRECT | DT_NOPREFIX);
            if(_textPos <= -textWidth) _textPos = 50;           
        }
    }
    else
        gr.GdiDrawText(_text, g_font, g_textcolor, 0, 0, _ww - 2, _wh, DT_VCENTER | DT_RIGHT | DT_WORDBREAK | DT_CALCRECT | DT_NOPREFIX);
}

function on_playback_new_track(metadb) {
    if(window.GetProperty("Prefer now playing", true))
    {
        _text = GetInfoText();
        window.Repaint();
    }
}
function on_playback_time(time) {
    if(window.GetProperty("Prefer now playing", true))
    {
        _text = GetInfoText();
        window.Repaint();
    }
}
function on_selection_changed(metadb) {
    if(!window.GetProperty("Prefer now playing", true) || !fb.IsPlaying)
    {
        _text = GetInfoText();
        window.Repaint();
    }
}

function on_font_changed() {
    get_font();
    window.Repaint();
}

function on_colors_changed() {
    get_colors();
    window.Repaint();
}

var MF_ENABLED = 0x00000000;   

function on_mouse_rbtn_up(x, y, mask) {
   
    var menu = window.CreatePopupMenu();   
   
    menu.AppendMenuItem(MF_ENABLED, 10, "Исполнитель");
    menu.AppendMenuItem(MF_ENABLED, 20, "Название");
    menu.AppendMenuItem(MF_ENABLED, 30, "Альбом");
    menu.AppendMenuSeparator();
    menu.AppendMenuItem(MF_ENABLED, 40, "Кодек");
    menu.AppendMenuItem(MF_ENABLED, 50, "Битрейт");   
    menu.AppendMenuItem(MF_ENABLED, 60, "Частота дискретизации");   
    menu.AppendMenuItem(MF_ENABLED, 70, "Каналы");
    menu.AppendMenuSeparator();
    menu.AppendMenuItem(MF_ENABLED, 80, "Предпочитать проигрываемый");
    menu.AppendMenuItem(MF_ENABLED, 81, "Следовать за выделенным треком");
    menu.AppendMenuSeparator();
    menu.AppendMenuItem(MF_ENABLED, 90, "Бегущая строка");
   
    menu.CheckMenuItem(10, window.GetProperty("Artist", false));
    menu.CheckMenuItem(20, window.GetProperty("Title", false));
    menu.CheckMenuItem(30, window.GetProperty("Album", false));

    menu.CheckMenuItem(40, window.GetProperty("Codec", true));
    menu.CheckMenuItem(50, window.GetProperty("Bitrate", true));
    menu.CheckMenuItem(60, window.GetProperty("Sample rate", true));
    menu.CheckMenuItem(70, window.GetProperty("Channels", true));

    menu.CheckMenuRadioItem(80, 81, window.GetProperty("Prefer now playing", true) ? 80 : 81);
    //menu.EnableMenuItem(window.GetProperty("Prefer now playing", true) ? 80 : 81, 1);

    menu.CheckMenuItem(90, window.GetProperty("Crawline", false));

    var ret = menu.TrackPopupMenu(x, y);
   
    switch(ret)
    {
        case 10:
            window.SetProperty("Artist", !window.GetProperty("Artist"));
            break;
        case 20:
            window.SetProperty("Title", !window.GetProperty("Title"));
            break;
        case 30:
            window.SetProperty("Album", !window.GetProperty("Album"));
            break;

        case 40:
            window.SetProperty("Codec", !window.GetProperty("Codec"));
            break;
        case 50:
            window.SetProperty("Bitrate", !window.GetProperty("Bitrate"));
            break;
        case 60:
            window.SetProperty("Sample rate", !window.GetProperty("Sample rate"));
            break;
        case 70:
            window.SetProperty("Channels", !window.GetProperty("Channels"));
            break;

        case 80:
            window.SetProperty("Prefer now playing", true);
            break;
        case 81:
            window.SetProperty("Prefer now playing", false);
            break;

        case 90:
            window.SetProperty("Crawline", !window.GetProperty("Crawline"));
            if(window.GetProperty("Crawline", false)) StartCrawline(); else StopCrawline();
            break;

        default:
            break;
    }
   
   menu.Dispose();
   
    _text = GetInfoText();
    window.Repaint();
   
   return true;
}

function on_notify_data(name, info) {
    if(name != "Mini view") return;
    if(window.GetProperty("Mini view", false) == info) return;
    window.SetProperty("Mini view", info);
    StopCrawline();
    if(info) {
        var prevSetting = window.GetProperty("Previous Crawline", true);
        window.SetProperty("Previous Crawline", window.GetProperty("Crawline", false));
        window.SetProperty("Crawline", prevSetting);
        prevSetting = window.GetProperty("Previous Artist", true);
        window.SetProperty("Previous Artist", window.GetProperty("Artist", false));
        window.SetProperty("Artist", prevSetting);
        prevSetting = window.GetProperty("Previous Title", true);
        window.SetProperty("Previous Title", window.GetProperty("Title", false));
        window.SetProperty("Title", prevSetting);
        prevSetting = window.GetProperty("Previous Album", true);
        window.SetProperty("Previous Album", window.GetProperty("Album", false));
        window.SetProperty("Album", prevSetting);
        prevSetting = window.GetProperty("Previous Codec", false);
        window.SetProperty("Previous Codec", window.GetProperty("Codec", true));
        window.SetProperty("Codec", prevSetting);
        prevSetting = window.GetProperty("Previous Bitrate", false);
        window.SetProperty("Previous Bitrate", window.GetProperty("Bitrate", true));
        window.SetProperty("Bitrate", prevSetting);
        prevSetting = window.GetProperty("Previous Sample rate", false);
        window.SetProperty("Previous Sample rate", window.GetProperty("Sample rate", true));
        window.SetProperty("Sample rate", prevSetting);
        prevSetting = window.GetProperty("Previous Channels", false);
        window.SetProperty("Previous Channels", window.GetProperty("Channels", true));
        window.SetProperty("Channels", prevSetting);
        prevSetting = window.GetProperty("Previous Prefer now playing", true);
        window.SetProperty("Previous Prefer now playing", window.GetProperty("Prefer now playing", true));
        window.SetProperty("Prefer now playing", prevSetting);
    }
    else {
        var prevSetting = window.GetProperty("Previous Crawline", false);
        window.SetProperty("Previous Crawline", window.GetProperty("Crawline", true));
        window.SetProperty("Crawline", prevSetting);
        prevSetting = window.GetProperty("Previous Artist", false);
        window.SetProperty("Previous Artist", window.GetProperty("Artist", true));
        window.SetProperty("Artist", prevSetting);
        prevSetting = window.GetProperty("Previous Title", false);
        window.SetProperty("Previous Title", window.GetProperty("Title", true));
        window.SetProperty("Title", prevSetting);
        prevSetting = window.GetProperty("Previous Album", false);
        window.SetProperty("Previous Album", window.GetProperty("Album", true));
        window.SetProperty("Album", prevSetting);
        prevSetting = window.GetProperty("Previous Codec", true);
        window.SetProperty("Previous Codec", window.GetProperty("Codec", false));
        window.SetProperty("Codec", prevSetting);
        prevSetting = window.GetProperty("Previous Bitrate", true);
        window.SetProperty("Previous Bitrate", window.GetProperty("Bitrate", false));
        window.SetProperty("Bitrate", prevSetting);
        prevSetting = window.GetProperty("Previous Sample rate", true);
        window.SetProperty("Previous Sample rate", window.GetProperty("Sample rate", false));
        window.SetProperty("Sample rate", prevSetting);
        prevSetting = window.GetProperty("Previous Channels", true);
        window.SetProperty("Previous Channels", window.GetProperty("Channels", false));
        window.SetProperty("Channels", prevSetting);
        prevSetting = window.GetProperty("Previous Prefer now playing", true);
        window.SetProperty("Previous Prefer now playing", window.GetProperty("Prefer now playing", true));
        window.SetProperty("Prefer now playing", prevSetting);
    }

    _text = GetInfoText();
    if(window.GetProperty("Crawline", false)) StartCrawline();
}
SergPuh.68 M
Бывалый
Аватара
Откуда: Украина
Репутация: 10
С нами: 7 месяцев 11 дней

Пред.

Вернуться в Секреты foobar2000

cron