Spider Monkey Panel v1.5.1 [03.07.2021]

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

Описание: Все о плагинах, компонентах, расширениях

Сообщение #1 fb2k.ru » 02.10.2018, 00:10

Allows to create full-fledged CUI/DUI panels using JavaScript.
Страница плагина: http://foobar2000.org/components/view/foo_spider_monkey_panel
fb2k.ru
Автор темы, Робот
Репутация: 10
С нами: 9 лет 1 месяц


Сообщение #81 SergPuh.68 » 15.08.2020, 07:49

Только при воспроизведении.
TheQwertiest:Можно попробовать поменять строку 175:
КОД: ВЫДЕЛИТЬ ВСЁ
if (result.image) {
на
КОД: ВЫДЕЛИТЬ ВСЁ
if (result.image && panel.metadb) {
Это было раньше со скриптом Album Art,поменял всё заработало
Теперь нужно что то поменять в JScommon.js я так думаю
2020-08-15_065706.jpg
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 120
С нами: 2 года 6 месяцев

Сообщение #82 VlaKor » 15.08.2020, 14:19

SergPuh.68:Теперь нужно что то поменять в JScommon.js я так думаю
В том то и дело, на скрине у вас всё верно. На чистом Foobar2000 всё работает.
Можно поподробнее при каких действиях и условиях ошибка вылезает?
VlaKor
Репутация: 7
С нами: 3 года 10 месяцев

Сообщение #83 SergPuh.68 » 15.08.2020, 15:25

VlaKor,
SergPuh.68:При выполнении команды: File->Open... происходит crash скрипта "JS Smooth Playlist Manager" Spider Monkey Panel v1.3.1 [18.07.2020]
При воспроизведении и если в настройках стоит Backgroung Wallpaper---Enable---Playing Album Cover
phpBB [media]
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 120
С нами: 2 года 6 месяцев

Сообщение #84 VlaKor » 15.08.2020, 16:48

SergPuh.68:При воспроизведении и если в настройках стоит Backgroung Wallpaper---Enable---Playing Album Cover
953 строка
if (ppt.wallpapermode == 0 && fb.GetNowPlaying() != null ) {
VlaKor
Репутация: 7
С нами: 3 года 10 месяцев

Сообщение #85 SergPuh.68 » 15.08.2020, 17:23

VlaKor, получилось,всё работает.
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 120
С нами: 2 года 6 месяцев

Сообщение #86 TheQwertiest » 17.08.2020, 19:07

Спасибо за баг-репорты и исправления! Поправим в след. версии =)
TheQwertiest
Репутация: 4
С нами: 3 года 4 месяца

Сообщение #87 VlaKor » 24.01.2021, 00:18

Всем здравствуйте!

Заметил что скрипт Thumbs не закачивает картинки с ЛастФм. Как давно сказать не могу, так как старые, уже закачанные изображения, отображает исправно.
У всех так или только у меня что то сломалось?
VlaKor
Репутация: 7
С нами: 3 года 10 месяцев

Сообщение #88 Aliado_71 » 24.01.2021, 01:40

Фубар 1.6.3 SMP 1.3.1 JS Smooth Playlist если включить "Show wallpaper" - crashed при переключении треков мышкой
Вложения
2021-01-24_003446.png
2021-01-24_003446.png (6.43 КБ) Просмотров: 1254
Aliado_71
Аватара
Откуда: Украина
Репутация: 184
С нами: 6 лет 4 месяца

Сообщение #89 fb2k.ru » 12.02.2021, 00:10

Вышла новая версия плагина: Spider Monkey Panel v1.4.0 [11.02.2021]
fb2k.ru
Автор темы, Робот
Репутация: 10
С нами: 9 лет 1 месяц

Сообщение #90 fb2k.ru » 14.02.2021, 11:10

Вышла новая версия плагина: Spider Monkey Panel v1.4.1 [13.02.2021]
fb2k.ru
Автор темы, Робот
Репутация: 10
С нами: 9 лет 1 месяц

Сообщение #91 kgena_ua » 21.03.2021, 13:47

Foobar вылетает если открыть SMP(v 1.4.1) через dockable_panels.
На v 1.2.1 такого нет.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Сообщение #92 kgena_ua » 22.04.2021, 10:49

Есть-ли интерес к скрипту "Biography, Covers, Albums, Title, Similar artist, Lyrics info" на Spider Monkey Panel.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Сообщение #93 kutuzof » 22.04.2021, 14:42

kgena_ua, приветствую! Конечно есть интерес. Ещё можно было бы скрипт "properties". :wink:
kutuzof M
Аватара
Возраст: 34
Откуда: Орёл
Репутация: 205
С нами: 4 года 10 месяцев

Сообщение #94 Aliado_71 » 22.04.2021, 20:01

kgena_ua, :hi: Есть интерес к всем вашим скриптам начиная с buttons на SPM. :smile:
Aliado_71
Аватара
Откуда: Украина
Репутация: 184
С нами: 6 лет 4 месяца

Сообщение #95 kgena_ua » 23.04.2021, 21:47

kutuzof:properties
Следующий, только сначала надо разобраться, что я там написал.
Aliado_71:buttons на SPM
Что имеется в виду.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Сообщение #96 Aliado_71 » 24.04.2021, 10:20

kgena_ua, Вы под WSH выкладывали скрипт и кнопки playback их я и имею ввиду.
Aliado_71
Аватара
Откуда: Украина
Репутация: 184
С нами: 6 лет 4 месяца

Сообщение #97 kgena_ua » 25.04.2021, 08:43

Aliado_71:кнопки playbac
Если эти, тогда
Код: Выделить всё
window.DefineScript('playback buttons', {author:'kgena_ua'});
function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }

var font = gdi.Font("Arial",10,0);
var ww, wh;

DT_LEFT = 0x00000000;
DT_WORD_ELLIPSIS = 0x00040000;

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

IDC_HAND = 32649;
IDC_ARROW = 32512;

ColorTypeCUI = { background: 3,};
var bgcolor;

function get_color(){
    if (window.InstanceType == 0){                     
        bgcolor = window.GetColourCUI(ColorTypeCUI.background);                     
    } else if (window.InstanceType == 1){                      
        bgcolor = window.GetColourDUI(ColorTypeDUI.background);                     
    }   
}
                     
get_color();                     
                     
function on_colors_changed(){                     
    get_color();                     
}

var img_path = fb.ProfilePath + "\\maybe\\textures\\buttons\\";

var b = 5;
var b_x = [];
var b_y;
var b_w = 26;

var b_this, b_this_old;
var b_hover_state = [], b_hover_alpha = [];
var b_down_state = [], b_down_alpha = [];
var b_timer_started = false;

var b_state = [];
check_b_state();

var om_mouse = false;
var lbtn_down = false;

var bt = [
    image("_bt.png"),
    image("_bt_blank.png"),
    image("_bt_d.png"),
];
var btn_on = [
    image("stop_on.png"),
    image("pause_on.png"),
    image("previous_on.png"),
    image("play_on.png"),
    image("next_on.png")
];

var btn_is = [
    image("stop_is.png"),
    image("pause_is.png"),
    image("previous_is.png"),
    image("play_is.png"),
    image("next_is.png")
];

function image(i) {
    return gdi.Image(img_path + i);
}

function on_paint(gr) {
    !window.IsTransparent && gr.FillSolidRect(0, 0, ww, wh, bgcolor);
   
    for (var i = 0; i < b; i++) {
        img = b_this == i && lbtn_down ? bt[2] : ""; 
        img && gr.DrawImage( img, b_x[i], b_y, b_w, b_w, 0, 0, b_w, b_w, 0, 255);
    }

    for (var i = 0; i < b; i++) {
        img = btn_on[i];
        img && gr.DrawImage( img, b_x[i], b_y, b_w, b_w, 0, 0, b_w, b_w, 0, 100);
       
        img = btn_on[i];
        img && gr.DrawImage( img, b_x[i], b_y, b_w, b_w, 0, 0, b_w, b_w, 0, b_hover_alpha[i]);
       
        img = btn_is[i];
        img && gr.DrawImage( img, b_x[i], b_y, b_w, b_w, 0, 0, b_w, b_w, 0, b_down_alpha[i]);
    }
}

function on_mouse_lbtn_up(x, y) {
    if (mouse_on_b(x, y) == 0) fb.Stop();
    if (mouse_on_b(x, y) == 1) fb.Pause();
    if (mouse_on_b(x, y) == 2) fb.Prev();
    if (mouse_on_b(x, y) == 3) fb.Play();
    if (mouse_on_b(x, y) == 4) fb.Next();
   
    button_up_change_state();
    lbtn_down = false;
}

function on_mouse_lbtn_down(x, y) {
    button_down_change_state(x, y);
    lbtn_down = true;
}

function on_mouse_move(x, y) {
    om_mouse = true;
    button_change_state(x, y);
    window.SetCursor(IDC_HAND);
}

function on_mouse_leave() {   
    om_mouse = false;
    button_leave_change_state();
    window.SetCursor(IDC_ARROW);
}

function on_mouse_rbtn_up (x, y){   
    if (mouse_on_b(x, y) >= 0) return true;
   
    var _menu = window.CreatePopupMenu();

    _menu.AppendMenuItem(MF_ENABLED, 20, "Properties");
    _menu.AppendMenuItem(MF_ENABLED, 30, "Configure ...");

    ret = _menu.TrackPopupMenu(x + 20, y - 20);   ;   
    if (ret == 0) return;
       
    switch (ret) {   
    case 10:
        try {
            window.Reload();   
        } catch(e) {};
        break;   
    case 20:
        window.ShowProperties();
        break;   
    case 30:
        window.ShowConfigure();      
        break;
    }
    return true;
}

// ************* 

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

function on_playback_starting(){
    check_b_state();
}

function on_playback_pause(state) {
    check_b_state();
}

function on_playback_stop(reason) {
    if (reason == 1) fb.Stop();
    check_b_state();
}

// ************* check buttons state

function check_b_state() {
    b_state = [];
   
    playback_state = fb.IsPaused ? 1 : fb.IsPlaying ? 3 : 0;
   
    for (var i = 0; i < b; i++) {
        b_state[playback_state] = 1;
    }
   
    for (var i = 0; i < b; i++) {
        b_down_state[i] = b_state[i];
        if (b_state[i] != 1) {
            b_down_state[i] = 0;
        }
    }
   
    if (!b_timer_started) button_alpha_timer();
}

// *************  buttons

function button_down_change_state(x, y) {
    b_this = mouse_on_b(x, y)
    b_down_state[b_this] = 1;
}

function button_up_change_state() {
    for (var i in b_down_state) {
        b_down_state[i] = 0;
    }
    check_b_state();
}

function button_change_state(x, y) {
    if (!b_timer_started) button_alpha_timer();

    for (var i in b_x) {
        b_hover_state[i] = 0;
        b_this = mouse_on_b(x, y);
        b_hover_state[b_this] = 1;
    }
}

function button_leave_change_state() {   
    for (var i in b_hover_state) {
        if (b_hover_state[i] != 0) {
            b_hover_state[i] = 0;
        }
    }
}

function button_alpha_timer() {
    b_timer_started = true;

    var hover_on_step = 51;
    var hover_off_step = 15; //15
    var down_on_step = 51; 
    var down_off_step = 5;
   
    b_timer = window.SetInterval(function() {
        for (var i = 0; i < b; i++) {
            if (!b_hover_alpha[i]) b_hover_alpha[i] = 0;
            if (!b_down_alpha[i]) b_down_alpha[i] = 0;
           
            switch (b_hover_state[i]) {
            case 0:
                b_hover_alpha[i] = Math.max(0, b_hover_alpha[i] -= hover_off_step);
                break;
            case 1:
                b_hover_alpha[i]= Math.min(255, b_hover_alpha[i] += hover_on_step);
                break;
            }
       
            switch (b_down_state[i]) {
            case 0:
                b_down_alpha[i] = Math.max(0, b_down_alpha[i] -= down_off_step);
                break;
            case 1:
                b_down_alpha[i]= Math.min(255, b_down_alpha[i] += down_on_step);
                break;
            }
            window.Repaint();
        }

        if (!om_mouse){
            var tmp_off = [];
            var tmp_on = [];
            for(var i = 0; i < b_down_alpha.length; i++) {
                if (b_state[i] != 1) tmp_off.push(b_down_alpha[i]);
                if (b_state[i] == 1) tmp_on.push(b_down_alpha[i]);
            }
           
            if (Math.max.apply(null, b_hover_alpha) <= 0
                && Math.max.apply(null, tmp_off) <= 0
                && Math.min.apply(null, tmp_on) >= 255){
                b_timer_started = false;
                window.ClearInterval(b_timer);
            }
        }
    }, 30);
}

function button_dim() {
    b_x = [];
    bw = ww / (b + 1);
    for (var i = 1; i <= b; i++) {
        b_x.push(Math.round( bw * i - b_w / 2 ));
    }
    b_y = (wh - b_w) / 2;
}

function mouse_on_b(x, y){
    for (var i in b_x) {
        if (x >= b_x[i] && x <= b_x[i] + b_w && y >= b_y && y <= b_y + b_w) return i;
    }
}

bt.rar
(3.76 КБ) Скачиваний: 34

У меня кнопки 26х26 (как у LUR :smile: ). Если свой размер, тогда в строке 39 нужно подправить.
И путь пропишите свой в строке 34.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Сообщение #98 Aliado_71 » 25.04.2021, 11:59

kgena_ua, :hi: Спасибо! то что нужно. А playback order нет случайно скрипта? :pray:
Aliado_71
Аватара
Откуда: Украина
Репутация: 184
С нами: 6 лет 4 месяца

Сообщение #99 kgena_ua » 25.04.2021, 12:59

Aliado_71:playback order
Не делал.
Положите сюда свои кнопки кнопки. Будет время сделаю.

Для одной кнопки достаточно два изображения:
первое
youtube_on.png
youtube_on.png (226 байт) Просмотров: 504
Тут меняется прозрачность;

второе
youtube_is.png
youtube_is.png (226 байт) Просмотров: 504
Для положения "включено/активирована".
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Сообщение #100 kgena_ua » 27.04.2021, 21:15

Biography, Covers, Albums, Title, Similar artist, Lyrics info.www.last.fm
version: 27042021

Spider Monkey Panel v1.4.1

bio 27042021.rar
(34.99 КБ) Скачиваний: 59
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 492
С нами: 8 лет 3 месяца

Пред.След.

Вернуться в Плагины