Скрипты для foo_uie_wsh_panel_mod

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

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

Сообщение #1281 kgena_ua » 01.11.2016, 18:55

MC Web:мне нужно сюда прописать
путь (E:\foobar2000 may be\radio Logos\) использовал свой, для проверкию

Метод seriousstas
имя файла : PIZIBANGYO2CN.jpg
Код: Выделить всё
E:\foobar2000 may be\radio Logos\$trim($replace($meta(album artist),*,,|,,\,,:,,",,<,,>,,-,,?,,/,,.,,'(', ,')',,',',,_,,!,,)).*

мой метод
имя файла : PIZIBANG YO2 CN.jpg
Код: Выделить всё
E:\foobar2000 may be\radio Logos\$trim($replace($replace($replace($replace($replace(%album artist%,*, ,|, ,\, ,:, ,", ,<, ,>, ,-, ,?, ,/, ,., ,'(', ,')', ,',', ,_, ,!, ,),     , ),    , ),   , ),  , )).*

Проверял в ELP
Код: Выделить всё
$imageabs_rc(%art_size%, %art_size%, 0, 0, %art_size%, %art_size%, 0, 0,%el_group_first_path%,artreader_front)   
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет

Сообщение #1282 MC Web » 01.11.2016, 19:05

AHAPXICT:в окне "Внешний Вид" - $replace не работает
А кто это сказал?
У меня во всяком случае
$replace(%album artist%,:, ,", ,!, )
и замена точки была, все работает. Только : не хочет...

Добавлено спустя 30 минут 47 секунд:
kgena_ua, Вы просто кудесник. :beer:

Прописал
Код: Выделить всё
B:\Logos\$trim($replace($replace($replace($replace($replace(%album artist%,*, ,|, ,\, ,:, ,", ,<, ,>, ,-, ,?, ,/, ,., ,'(', ,')', ,',', ,_, ,!, ,),     , ),    , ),   , ),  , )).*
и имя файла : PIZIBANG YO2 CN.jpg
появилась миниатюра в плейлистах.

На скорую руку хотел оставить точку, подредактировав скрипт - не вышло.
Я почему за нее держусь, с названиями радиостанций понятно, а в именах исполнителей точки часто встречаются, не хотелось их затирать.
MC Web
Репутация: 248
С нами: 10 лет 7 месяцев

Сообщение #1283 seriousstas » 02.11.2016, 15:25

seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1284 kgena_ua » 03.11.2016, 18:11

WSH Radio Logo panel (CUI)

Безымянный.png
Безымянный.png (15.82 КБ) Просмотров: 1288
Безымянный2.png
Безымянный2.png (10.57 КБ) Просмотров: 1288

Код: Выделить всё
// ==PREPROCESSOR==
// @name "Radio Logo"
// @author "kgena_ua"
// @feature "v1.4"
// @feature "watch-metadb"
// ==/PREPROCESSOR==

function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }
var ww,wh;

DT_LEFT = 0x00000000;
DT_CENTER = 0x00000001;
DT_WORD_ELLIPSIS = 0x00040000;

MF_ENABLED = 0x00000000;   
MF_GRAYED = 0x00000001;
MF_SEPARATOR = 0x00000800;

var font_name = window.GetProperty(" font name", "Arial");
var font_size = window.GetProperty(" font size", 12);
var font_style = window.GetProperty(" font style", 0);

var font, text_row_heigh;
get_font();

function get_font(){
    font = gdi.Font(font_name, font_size, font_style);


ColorTypeCUI = {
    text: 0,
    selection_text: 1,
    inactive_selection_text: 2,
    background: 3,
    selection_background: 4,
    inactive_selection_background: 5,
    active_item_frame: 6
};

function get_color(){   
    bgcolor = window.GetColorCUI(ColorTypeCUI.background);
    a_color = window.GetColorCUI(ColorTypeCUI.text);
    b_color = window.GetColorCUI(ColorTypeCUI.inactive_selection_text);
    window.Repaint();
}

get_color();

function on_colors_changed(){
    get_color();
}

var fso = new ActiveXObject("Scripting.FileSystemObject");
htmlfile = new ActiveXObject('htmlfile');
var clipboardData = "";

var logo_dir_name = window.GetProperty(" logo dir name",".\\radio Logos\\");
var default_img_path = window.GetProperty(" nocover path",".\\maybe\\textures\\nocover\\nocover.png");
var default_img = window.GetProperty(" default image", false);
var default_img_transparent = window.GetProperty(" nocover transparent (0-255)", 100);

var fade_effect = window.GetProperty(" fade effect", false);
var fade_step = window.GetProperty("fade step", 25);
var fader = 255;

String.prototype.repeat = function(n) {
    return new Array(n + 1).join(this);
}

window.SetProperty(" - user:", "");
if (window.GetProperty(" - user:") != "" ) window.SetProperty(" - user:", "");
window.SetProperty("-".repeat(50), "");
if (window.GetProperty("-".repeat(50)) != "" ) window.SetProperty("-".repeat(50), "");

var g_img = null;
var logo_file_name, old_name, logo_files = [];
var path, title, itle_p, artist, genre;

var selection_mode = window.GetProperty("selection mode", 0);
var metadb;
on_item_focus_change();

function on_paint(gr){
   !window.IsTransparent && gr.FillSolidRect(0, 0, ww, wh, bgcolor);
    text_row_height = gr.CalcTextHeight("text", font);
   
    if (g_img){
        d_h = wh - text_row_height * 6;
        var scale_w = ww / g_img.Width;
        var scale_h = d_h / g_img.Height;
        var scale = Math.min(scale_w, scale_h);
        var pos_x = 0;
        var pos_y = 0;

        if (scale_w < scale_h) pos_y = (d_h - g_img.Height * scale) / 2;
        else if (scale_w > scale_h) pos_x = (ww - g_img.Width * scale) / 2;

        gr.DrawImage(g_img, pos_x, pos_y, g_img.Width * scale, g_img.Height * scale, 0, 0, g_img.Width, g_img.Height, 0 , fader);
    }

    if (path.indexOf('://') >= 0){
        gr.GdiDrawText(title_p, font, b_color, 0, wh - (text_row_height * 4) - 10, ww, wh, DT_CENTER | DT_WORD_ELLIPSIS );
        gr.GdiDrawText(artist, font, b_color, 0, wh - (text_row_height * 3) - 10, ww, wh, DT_CENTER | DT_WORD_ELLIPSIS );
        gr.GdiDrawText(title, font, a_color, 0, wh - (text_row_height * 2) - 10, ww, wh, DT_CENTER | DT_WORD_ELLIPSIS );
        gr.GdiDrawText(genre, font, a_color, 0, wh - text_row_height - 10, ww, wh, DT_CENTER | DT_WORD_ELLIPSIS );
    }

    gr.GdiDrawText("", font, b_color, 10, 10, ww - 20, wh, DT_LEFT | DT_WORD_ELLIPSIS );

}   

function get_logo_Image() {
    if(!fso.FolderExists(logo_dir_name)) return;
    logo_file_name = "";
    get_logo_files_from_dir();
   
    for (var i = 0; i < logo_files.length; i++){
        var file = logo_files[i].replace(/.jpg|.jpeg|.png|.gif|.bmp|.tiff/g,'').replace(/[^a-zA-Z0-9а-яА-я]/g,'');
        var tfname = title.replace(/[^a-zA-Z0-9а-яА-я]/g,'');
        if (tfname.toLowerCase() == file) logo_file_name = logo_files[i];
    }
    next_image();
}

function get_logo_files_from_dir() {
    logo_files = [];
    var e = new Enumerator( fso.GetFolder(logo_dir_name).files );
    while ( !e.atEnd() ) {
        var name = e.item().Name;
        name = name.toLowerCase();
        logo_files.push(name);
        e.moveNext();
    }
}

function on_playback_new_track(metadb) {     
    on_item_focus_change();    
}   

function on_selection_changed(metadb) {   
    on_item_focus_change();   
}

function on_playlist_switch() {
    on_item_focus_change();
}

function on_item_focus_change() {   
    switch (selection_mode) {
    case 0:
        metadb = fb.IsPlaying ? fb.GetNowPlaying() : fb.GetFocusItem();   
        break;   
    case 1:   
        metadb = fb.GetFocusItem();
        break;   
    } 
   
    if (metadb) on_metadb_changed();   
}

function on_metadb_changed(){
    if (!metadb) return; 
    path = fb.Titleformat("$directory_path(%path%)").EvalWithMetadb(metadb);
    title = fb.Titleformat("[%title%]").EvalWithMetadb(metadb);
    title_p = fb.Titleformat("[%title%]").Eval();
    artist = fb.Titleformat("[%artist%]").Eval();
    genre = fb.Titleformat("[%genre%]").EvalWithMetadb(metadb);
    get_logo_Image();
    window.Repaint();
}

function on_playback_stop() {
    on_item_focus_change();
}

function on_size(){
    ww = window.Width;   
    wh = window.Height;
}

function next_image(){
    if (logo_file_name != old_name){
        if (g_img) g_img.Dispose();
        fader = fade_effect ? 0 : 255;
        g_img = gdi.Image(logo_dir_name + logo_file_name);
        if (g_img && fade_effect) fader_timer();
        old_name = logo_file_name;
    }
   
    if (!g_img && default_img) {
        g_img = gdi.Image(default_img_path);
        fader = default_img_transparent;
    }
}

var ftimer;

function fader_timer(){
    fader = 0;
    ftimer && window.ClearInterval(ftimer);
    ftimer = window.SetInterval(function() {
        fader = fader + fade_step;
        if (fader >= 255) {
            fader= 255;
            window.ClearInterval(ftimer);
        }
        window.Repaint();
    }, 40 ); //42
}

function on_mouse_rbtn_up(x, y){
    var _menu = window.CreatePopupMenu();
   
    _menu.AppendMenuItem(MF_ENABLED, 10, "Prefer now playing");   
    _menu.AppendMenuItem(MF_ENABLED, 11, "Follow selected track");   
    _menu.CheckMenuRadioItem(10, 11 , selection_mode + 10);   

    _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);   
    _menu.AppendMenuItem(MF_ENABLED, 50, "Copy filename to clipboard");
   
    _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);   
    _menu.AppendMenuItem(MF_ENABLED, 100, "Reload");
    _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);   
    _menu.AppendMenuItem(MF_ENABLED, 200, "Properties");
    _menu.AppendMenuItem(MF_ENABLED, 300, "Configure ...");

    ret = _menu.TrackPopupMenu(x, y);
    if (ret == 0) return;

    switch (ret) {
    case 10:
        selection_mode = 0;
        window.SetProperty("selection mode", selection_mode);
        on_item_focus_change();
        break;
    case 11:
        selection_mode = 1;
        window.SetProperty("selection mode", selection_mode);
        on_item_focus_change();
        break;
    case 50:
        htmlfile.parentWindow.clipboardData.setData("text", title.replace(/[^a-zA-Z0-9а-яА-я\s-]/g,'').replace(/\s+/g,' '));
        break;
    case 100:   
        window.Reload();   
        break;   
    case 200:
        window.ShowProperties();   
        break;           
    case 300:
        window.ShowConfigure();   
        break;           
    }
    _menu.Dispose();
    return true;
}   
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет

Сообщение #1285 AHAPXICT » 03.11.2016, 20:13

kgena_ua, Спасибо! Автономно работающий скрипт - это мега нужная вещь! Уже бережно сохранил у себя на компьютере. Для меня, в 90% случаев такие коды здорово облегчают жизнь и снижают мозговые бури!
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1286 kgena_ua » 03.11.2016, 21:38

AHAPXICT:Автономно работающий скрипт
AHAPXICT, приветствую.
Вот именно, Было раньше в виде отдельного скрипта, а теперь полноценная панель, правда только под CUI (функция цвета).
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет

Сообщение #1287 seriousstas » 03.11.2016, 22:23

kgena_ua
Автономно работающий скрипт
Плюсанул!
А я "гибрид" Biography Text && Picture
похоже допилил . Вчера скачал сам свой архив и понял что не работает авто переключение ..
Когда дедал совместимость с XP - сломал ..
Вобщем - сейчас у меня работает , как надо . (нашел время потестить нормально :oops: )
Добавил установку приоритета и для текста : Например - ставим Рус. Если есть - будет Рус иначе Eng
И наоборот . Тот-же принцип и для картинок .

Кто-то спрашивал ,где там фон шрифт менять (эти параметры) :
_Text Color
*_Background Color
font size: artist (delta)
font size: biography
font name: artist
font name: biography
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1288 AHAPXICT » 03.11.2016, 23:13

Приветствую всех!
kgena_ua:правда только под CUI
kgena_ua, это не важно! Выше в двух словах черкнул, но для таких как я, или новичков в этом деле, это мега полезная вещь! Такой скрипт можно поставить сразу и пользоваться и самое главное можно разобраться как это работает! И уже потом можно и цвета менять и использовать его как кубик из конструктора "лего" для усовершенствования других скриптов. Ещё раз респект :beer:
Если не заняты, то у меня, как всегда, есть просьба по скрипту Cover Panel. А то мне тут рассказали что пользователи в скрипты боятся лазить и что то менять :biggrin: (это шутка) Ну и хотел добавить быстрое включение/выключение радио логотипов их контекстного меню в режиме "радио" Пункт в меню то не проблема добавить, добавил, но там стоит привязка, как раз в режиме "$not(%length%)" контекстное меню не отображается - и это правильно. А мне то как раз такое и надо что бы только в режиме радио появлялся этот пункт меню: AppendMenuItem(0, 9, radio_logo ? "Radio Logos: ON" : "Radio Logos: OFF"); То есть маленькое контекстное меню с "Properties" и "Configure..." Это не глобальная проблема, так как этот пункт меню доступен из меню "Properties".

seriousstas, это та что ночью или опять новая? И не надо меня тролить по поводу выбора цвета))) Кто же так делает, выбор всех параметров в меню свойства, а выбор для текста на 152 строке в скрипте var b_color. Откуда же я знал))) Ну это всё ерунда, так просто решил по зубоскалить :toothless:
У меня пару раз крестик, которым текст сворачивать на экране оставался, приходилось по новой текст разворачивать. А чего ты не сделаешь так: Один клик на артисте - развернуло, второй клик - свернуло. Постоянно начинаю клацать на название артиста и про кнопку забываю хоть она прямо перед глазами. Я понимаю что под тач заточено, может область расширить? Уже почти месяц пользуюсь, а так и не привык - каждый раз клацаю на название исполнителя)))
И это, подредактировал обложку, только что, пока нечего нового в голову не пришло: Smooth Jazz Mix New York
Ссылка на поток радио станции : http://66.85.88.2:7102/ Ссылка на сайт: Smooth Jazz Mix New York
У тебя ещё есть радио для которого обложки нужны? Скоро ночь...
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1289 seriousstas » 04.11.2016, 00:34

AHAPXICT
это шутка
- горькая правда :)

Нет это та-же ничего не менял и пока так оставлю ..
По цвету - кто-то спрашивал в Твоей теме сборки и на кар-форуме ..
Один клик на артисте - развернуло, второй клик - свернуло.
так работает , если отключить кнопки . Пока так (уже не помню, возможно кнопка , чтоб сохранить "таскание") ...
а выбор для текста на 152 строке в скрипте var b_color
ХЗ - надо и его вынести будет )
У тебя ещё есть радио для которого обложки нужны? Скоро ночь...
Спасибо за предложение, но пока всё норм !
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1290 AHAPXICT » 04.11.2016, 00:50

Всё "сползал" на ЕХ затарился отличной музыкой, хватит до завтра. Блюз не слушаешь? Сижу и наслаждаюсь.
seriousstas, нет без кнопок никак нельзя, теперь не представляю как можно было без них обходится.
seriousstas:b_color
Может проще эти цвета в ColorTypeCUI поставить? У меня так стоит.
Вложения
Ronnie Earl & The Broadcasters.rar
(3.63 КБ) Скачиваний: 204
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1291 seriousstas » 04.11.2016, 00:56

есть просьба по скрипту Cover Panel
Сейчас гляну...

Добавлено спустя 15 минут 34 секунды:
..............

Код: Выделить всё
function on_mouse_rbtn_up(x, y) {
   if (g_active) {
      CustomMenu(x, y);
      return true;
   } else {
   var r = window.CreatePopupMenu();
   var idx;
   r.AppendMenuItem(0, 1, radio_logo ? "Radio Logos: ON" : "Radio Logos: OFF");
   r.AppendMenuSeparator();
   r.AppendMenuItem(0, 2, "Properties");
   r.AppendMenuItem(0, 3, "Configure...");
   idx = r.TrackPopupMenu(x, y);
   switch (true) {
      case (idx == 1):
         window.SetProperty("Radio Logos: on/off", radio_logo ? false : true);
         radio_logo = window.GetProperty("Radio Logos: on/off");
            break;
      case (idx == 2):
         window.ShowProperties();
         break;

      case (idx == 3):
         window.ShowConfigure();
         break;
   }

 r.Dispose();
 return true;
        }
}
Последний раз редактировалось seriousstas 04.11.2016, 03:54, всего редактировалось 2 раз(а).
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1292 AHAPXICT » 04.11.2016, 01:12

seriousstas, это не горит! По большому счёту и без такой заморочки можно обойтись. Это нужно было вчера, когда собирал, да и мысль в тему пришла, а сегодня я уже сборку залил, обновил. Так что до следующего раза времени полно!
Ты что уже сделал?!!! Я сейчас ухожу по делам, пол часа и буду на месте
Последний раз редактировалось AHAPXICT 04.11.2016, 01:14, всего редактировалось 1 раз.
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1293 seriousstas » 04.11.2016, 01:13

Ну проверь - там ничего сложного .. Добавил на ПКМ и для радио меню ..

Добавлено спустя 5 минут 25 секунд:
меня пару раз крестик, которым текст сворачивать на экране оставался
а что если нажать на крестик ? Крестик будет висеть, если открыть текст, стащить вниз и акривировать кнопки по ЛКМ ,
что логично ..
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1294 AHAPXICT » 04.11.2016, 02:09

seriousstas:что логично ..
Так и работает как ты описал, нет вопросов.
Отправь скрипт целиком если не сложно, что то не показывает и вроде бы всё правильно.

Добавлено спустя 14 минут 15 секунд:
Всё понял! Не догнал что ты прямо на функцию мыши повесил))) Спасибо!
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1295 seriousstas » 04.11.2016, 02:57

Спасибо!
:beer:
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1296 AHAPXICT » 04.11.2016, 03:36

В сети? У меня что то косяки с этим меню, у же замахался. Что то там конфликтует, так что кнопки мыши работать не хотят. Если не занят может глянешь?
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1297 seriousstas » 04.11.2016, 03:54

:think: добавь внизу после :
r.Dispose();
return true;
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Сообщение #1298 AHAPXICT » 04.11.2016, 04:01

Ок. Позже отпишусь, еда на плите

Добавлено спустя 23 минуты 28 секунд:
О! Теперь работает, как часы! Переключает на ходу добавил того что не хватало и порядок. Доволен! Тебе спасибо :beer:
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 5 месяцев

Сообщение #1299 kutuzof » 04.11.2016, 15:47

seriousstas, как в твоём скрипте биографии сделать чтобы отображались оригинальные картинки, а не квадратные.

Разобрался.
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 7 месяцев

Сообщение #1300 seriousstas » 05.11.2016, 01:07

как в твоём скрипте
kgena_ua - автор скрипта !
Я кое-что добавил , что-б в авто удобнее было, там некогда по кнопкам клацать и и-нет не стабильный.
поэтому нужна была автоматизация . Рад , что и здесь пригодились мои добавки ..
оригинальные картинки, а не квадратные.
по кнопкам, еще можно посмотреть здесь
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 2 месяца

Пред.След.

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