Скрипты для foo_uie_wsh_panel_mod

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

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

Сообщение #2921 seriousstas » 09.10.2021, 00:41

SergPuh.68:SergPuh.68 » 15 минут назад

В сборке у LUR работает хорошо,у меня нет.У меня JSplitter 2.7.2
Как будешь готов - кинь в личку, посмотрю.
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 108
С нами: 6 лет 8 месяцев

Сообщение #2922 seriousstas » 10.10.2021, 22:45

Наглядный пример
Спойлер
Код: Выделить всё
// ==PREPROCESSOR==
// @name "Timer"
// @author "T.P Wang"
// ==/PREPROCESSOR==

// This sample create two timers
// Click the window to start the timer, and see the result after the console is shown.
// Click the window again to kill all timers.

var g_timer_started = false;
var g_count = 0;
var g_timer1_ID, g_timer2_ID;

function print_to_console(msg) {
   console.log('Timer test:', msg);
}

function on_mouse_lbtn_up() {
   if (!g_timer_started) {
      // Timer are created here
      // 2s - one shot, happens after 2000 ms, only once
      g_timer1_ID = window.SetTimeout(function() {
         // Print and show console
         fb.ShowConsole();
         print_to_console('g_timer1: Show console now.');
      }, 2000);
      
      // 500ms - periodic, happens every 500 ms
      g_timer2_ID = window.SetInterval(function() {
         g_count++;
         print_to_console('g_timer2: ' + g_count + ' time(s).');
      }, 500);
      
      g_timer_started = true;
   } else {
      // Kill all timers
      window.ClearTimeout(g_timer2_ID);
      window.ClearInterval(g_timer1_ID);
      g_timer_started = false;
      g_count = 0;
      print_to_console('Timers killed.');
   }
}
Из архива foo_jscript_panel-2.7.2
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 108
С нами: 6 лет 8 месяцев

Сообщение #2923 SergPuh.68 » 12.10.2021, 10:14

Скрипт скрытия/показа панелей при изменении размеров окна плеера (on_size())
Спойлер
Код: Выделить всё
var Panel1 = window.GetPanel("Panel1");
var Panel2 = window.GetPanel("Panel2");
var Panel3 = window.GetPanel("Panel3");
var Panel4 = window.GetPanel("Panel4");

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

    do_layout();

    Panel1.Hidden = true;   
    Panel2.Hidden = true;
    Panel3.Hidden = true;   
    Panel4.Hidden = true;

    on_timer;
}

window.SetTimeout(on_timer, 2000);
function on_timer() {
    window.SetTimeout(on_timer, 2000);
   
    Panel1.Show()
    Panel2.Show();
    Panel3.Show();
    Panel4.Show();
}   

function do_layout() {   
    Panel1.Move(x, y, ww, wh);
    Panel2.Move(x, y, ww, wh);
    Panel3.Move(x, y, ww, wh);
    Panel4.Move(x, y, ww, wh);
}

function on_mouse_leave() {
    Panel1.Show();
    Panel2.Show();
    Panel3.Show();
    Panel4.Show();
}

function on_mouse_move() {
    Panel1.Show();
    Panel2.Show();
    Panel3.Show();
    Panel4.Show();
}
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 125
С нами: 2 года 9 месяцев

Сообщение #2924 seriousstas » 13.10.2021, 01:02

SergPuh.68:Скрипт скрытия/показа панелей
У тебя таймер зациклен, но его нужно обнулять при изменении размена окна (и выключать в конце) иначе будут без надобности "грузить" сборку.
+ не ясно зачем тебе on_mouse и on_mouse_leave , при любом движении мышкой ВСЕ! панели будут открываться(или проверяться, что так-же будет подгружать процессор без нужды.). Таймер отработал - показуй do_layout();
Через переменную внутри on_size будет оптимально.
В примере для сборки LUR , что выше - это chsz;
От ее состояния внутри on_size() зависит работа и отключение таймера. Попробуй.
И две секунды это вечность.. 300-500 в самый раз
Если используется подложка картинка в плейлистах _cover_image = utils.GetAlbumArtV2 ,
то (повторюсь) любой рисунок выше 600 пикселей уже будет влиять и на старт и на ресайз, а 3000 пикселей - практически "парализует".
Поэтому и её так-же нужно выключать на время работы таймера.
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 108
С нами: 6 лет 8 месяцев

Сообщение #2925 SergPuh.68 » 13.10.2021, 18:55

seriousstas:У тебя таймер зациклен, но его нужно обнулять при изменении размена окна (и выключать в конце) иначе будут без надобности "грузить" сборку.
Я понял,буду пробовать.
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 125
С нами: 2 года 9 месяцев

Сообщение #2926 SergPuh.68 » Вчера, 09:07

Привет.Подскажите как правильно написать условие если файл проигрывается с YouTube,например если присутствует %fy_channel_title% то...
Код: Выделить всё
if (???) {   
    ButtonDown.Move(ww-52, hh-9);
    ButtonBraw.Move(ww-103, hh-9);
    ButtonSelp.Move(ww-154, hh-9);
    } else {
    ButtonFold.Move(ww-52, hh-9);
}
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 125
С нами: 2 года 9 месяцев

Сообщение #2927 kgena_ua » Вчера, 11:53

SergPuh.68:как правильно написать условие если файл проигрывается с YouTube
Надо проверять metadb.RawPath

Код: Выделить всё
if (metadb && metadb.RawPath.indexOf("youtube") >= 0) тогда файл проигрывается с YouTube
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Аватара
Возраст: 57
Откуда: Украина, Днепр
Репутация: 496
С нами: 8 лет 6 месяцев

Сообщение #2928 SergPuh.68 » Вчера, 13:54

Осталось дело за малым,определить metadb?
Вложения
2021-10-27_124748.jpg
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 125
С нами: 2 года 9 месяцев

Сообщение #2929 seriousstas » Вчера, 18:13

Код: Выделить всё
var metadb = fb.IsPlaying ? fb.GetNowPlaying() : fb.GetFocusItem();
как вариант ..
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 108
С нами: 6 лет 8 месяцев

Сообщение #2930 SergPuh.68 » Вчера, 19:20

seriousstas, так не получается.Нужно как то что бы работало в реальном времени а не после перезагрузки плеера или скрипта.
Спойлер
Код: Выделить всё
function move_buttons() {
    var metadb = fb.IsPlaying ? fb.GetNowPlaying() : fb.GetFocusItem();
    var hw = ww/2;
    var hh = wh/2;   
    ButtonPrev.Move(0, wh-150);
    ButtonPlay.Move(68, wh-150);
    ButtonNext.Move(136, wh-150);
    ButtonStop.Move(204, wh-150);
    ButtonDele.Move(hw, wh-150);
    ButtonNewp.Move(hw+68, wh-150);
    ButtonSavp.Move(hw+136, wh-150);
    ButtonMenu.Move(ww-272, wh-150);
    ButtonPref.Move(ww-204, wh-150);
    ButtonOrde.Move(ww-136, wh-150);
    ButtonMedp.Move(hw+10, hh-9);
    if (metadb && metadb.RawPath.indexOf("youtube") >= 0) {
    ButtonDown.Move(ww-52, hh-9);
    ButtonBraw.Move(ww-103, hh-9);
    ButtonSelp.Move(ww-154, hh-9);
    } else {
    ButtonFold.Move(ww-52, hh-9);   
    }
}
YouTube Music
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 125
С нами: 2 года 9 месяцев

Пред.

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