Скрипты для foo_uie_wsh_panel_mod

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

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

Сообщение #601 kgena_ua » 20.01.2016, 14:36

No_mad, у меня два плейлиста в зависимости от треков: радио или нет. Я так понимаю это то, что и у Вас. Проверяю я тип река функцией on_playlist_switch()
Код: Выделить всё
function on_playlist_switch() {
    count = plman.PlaylistItemCount(plman.ActivePlaylist);
    if (count > 0) {
        path = fb.Titleformat("%path%").EvalWithMetadb(fb.GetFocusItem());

        if (path.indexOf('://') > 0) {
            plist_type = 1;
        } else {
            plist_type = 0;
        }
    }
}

Добавлено спустя 1 минуту 48 секунд:
Aum:А для чего применяли условие?
Aum, а не помню, честно.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #602 seriousstas » 21.01.2016, 18:13

kgena_ua
Есть предложение "по картинкам" .
'No Cover" - полезная фича - поддержу .
duzzy по моей просьбе в thambs(вариант ,что объединен с bio c hydrogenaud.io) - просто добавил фоновую
картинку (а щас и автозагрузку и удаление архива кнопкой-удобно) , но я пробовал ранее выбирать разные сайты из Свойств
Now playing и зачастую картинки находились например на японском или немецком сайте ...
А получится-ли сделать перебор сайтов автоматом ? Типа , если нет на одном искать на следующем ?
Выбор сайтов (для биографии) из меню у Марка так :
Код: Выделить всё
case "lastfm_wiki":
            this.biography_lastfm_sites = ["www.last.fm", "www.last.fm/de", "www.last.fm/es", "www.last.fm/fr", "www.last.fm/it", "www.last.fm/ja", "www.last.fm/pl", "www.last.fm/pt", "www.last.fm/ru", "www.last.fm/sv", "www.last.fm/tr", "www.last.fm/zh"];
             this.biography_lastfm_site = window.GetProperty("2k3.biography_lastfm_site", 0);
            this.biography_lastfm = window.GetProperty("2k3.biography_lastfm", true);
            p.data_folder.create();
            p.artists_folder.create();
            break;
В Now playing есть и для картинок :

Добавлено спустя 2 часа 7 минут:
PS Поклацал по исполнителям , предположу , что после последних перетрясок ,
они всё-таки объединили базы фоток на last.fm (и теперь загрузка не зависит от домена , что только всё упрощает :) ) .. Нужно ещё проверить .
Вложения
22222222.jpg
22222222.jpg (42.5 КБ) Просмотров: 3118
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 9 месяцев

Сообщение #603 No_mad » 22.01.2016, 22:38

Я свою сборку собирал под русифицированный вариант программы, но из-за заметной для скриптовой WSH сборки тормознутости русифицированного варианта по сравнением с "штатным" оставил только русифицированные плагины. Три темы в папке Thems - пробуйте ))) Большинство скриптов, положенных в основу сборки - это скрипты kgena_ua за что ему спасибо. Выкладываю, как много примеров скриптов в одном месте - так начинающим легче врубиться - не с листа, а вживую. И, кстати - да, есть тормознутость при заполнении временной папки для картинок плагина "Picrure. www.last.fm". kgena_ua попробуйте ваш второй вариант загрузки - внешним скриптом.


http://rghost.ru/7gWp2hsWX
No_mad
Репутация: 2
С нами: 8 лет 10 месяцев

Сообщение #604 kgena_ua » 22.01.2016, 23:19

No_mad, выкладываю скрипты именно с целью, что кто-нибудь найдет для себя полезное, не обязательно весь скрипт, а может и какую функцию. Сам испытывал большие трудности вначале, приходилось искать везде где можно.
Будет новая версия по биографии, спасибо MC Web.
По картинкам, наверное да (при ожидании ответа - код 200, происходит подвисание), будет внешний загрузчик (он стандартный).

По сборке, интересно, будем смотреть.
Сборку рекомендую выложить в раздел релизы сборок или тестирование.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #605 No_mad » 23.01.2016, 11:13

kgena_ua:Сборку рекомендую выложить в раздел релизы сборок или тестирование.
подожду обновления "биографии", и еще есть проблемное место, может подскажите - в теме "муар" есть не работающий пока переключатель "ТЕМА". В принципе фубар переключает DUI тему, если просто бросить тему (т.е. файл "*.fth") на окно фубара ( только не на место ПлейЛиста). Как это действие прописать командой и каким RAN плагином?
No_mad
Репутация: 2
С нами: 8 лет 10 месяцев

Сообщение #606 kgena_ua » 23.01.2016, 11:47

Aum:для чего применяли условие?
Aum, условие было прописано для случаев, когда при прослушивании радио в свойствах не все данные - artist и title..
Вот пример.
На первом скрине для
return fb.TitleFormat("[" + field + "]").EvalWithMetadb(metadb);
Безымянный 2.png


На втором скрине для
return path.indexOf('://') > 0 ? fb.TitleFormat("[" + field + "]").Eval(true) : fb.TitleFormat("[" + field + "]").EvalWithMetadb(metadb);
Безымянный 1.png
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #607 Aum » 23.01.2016, 14:46

kgena_ua, понял. Но тогда вырисовывается другая проблемка: я использую metadb=fb.GetSelection() всегда. Следовательно при воспроизведение и наличии в плейлисте более 1 позиции радио, ItemInfo показан только для играющего потока, на выбор остальных потоков не реагирует.
добавил небольшое условие, вроде заработало, прошу проверить на правильность и внести корректировки в оконечный результат
Код: Выделить всё
function Eval(field) {

    if (metadb) {
        path = fb.Titleformat("%path%").EvalWithMetadb(metadb);
       
       if (fb.GetNowPlaying()) {
        var path1 = fb.Titleformat("%path%").EvalWithMetadb(fb.GetNowPlaying());
        }
if (path.indexOf('://') > 0 && path==path1) {
      return fb.TitleFormat("[" + field + "]").Eval(true);
   } else {
      return fb.TitleFormat("[" + field + "]").EvalWithMetadb(metadb);
   }
   }
}
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #608 kgena_ua » 23.01.2016, 22:42

Aum, это не имеет никакого отношения к fb.GetSelection(). При выборе нескольких треков актуальным будет только последний выбранный трек в списке выбора.
Пример применения fb.GetSelection().
Возьмем рейтинг - хотим нескольким трекам присвоить одинаковый рейтинг.
Выбираем треки, вычисляем количество выбранных треков. Затем (через цикл) изменяем рейтинг для каждого из треков.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #609 Aum » 23.01.2016, 22:50

kgena_ua, мы не поймем друг друга)) Чтоб объяснить о чем я думаю: возьмите ваш последний скрипт, выберите в нем "follow selected track" и откройте в фубаре плейлист с радио потоками (главное больше одного). Нажмите плей на любом. И затем попробуйте выбирать любой другой по очереди - "follow selected track" не будет работать, а будет показывать всегда для "нау плеинг".
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #610 kgena_ua » 24.01.2016, 09:35

Aum, да все правильно Вы пишите. :smile: Если выбранный трек и воспроизводимый трек одинаковы и при этом это радио, тогда ..... Все очень логично. :beer: Это меня вчера после пива понесло.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #611 Aum » 29.01.2016, 16:53

Пробую написать скриптик-кнопку по копированию файлов на телефон, не через стандартную функцию copy to (не нравиться что она парализует работу фубара на время копирования), а через стандартное окно копирования виндовс, так вот вопрос: как копировать через стандартное окно копирования. т.е. там где показаны прогресс, скорость, файлы и т.п.?
Код: Выделить всё
var fso = new ActiveXObject("Scripting.FileSystemObject");
var copy_from=fb.TitleFormat("%path%").EvalWithMetadb(fb.GetFocusItem());
fso.CopyFile (copy_from, "d:\\");
Этот вариант копирует скрыто, поэтому не подходит.
Может через objWshShell.run, можно ли там вывести окно копирования?

Добавлено спустя 23 минуты 24 секунды:
kgena_ua, подскажите где можно подробнее почитать о всех процедурах рисования на wsh, т.е. хочу иконки нарисовать "кодом", как у вас рейтинг в скрипте "file info".
Набор набросал основной, но может здесь не все, и может есть информация подробная?:
Код: Выделить всё
h_img = gdi.CreateImage(22, 22);
    gb = h_img.GetGraphics();
    gb.SetSmoothingMode(2);
    var star_points = Array(2,5,7,5,9,0,11,5,16,5,12,8,14,13,9,10,4,13,6,8);
    //gb.FillPolygon(RGB(240,240,120), 0, star_points);
    //gb.DrawPolygon(RGB(150,150,080), 0, star_points);
    //gb.FillEllipse(5, 7, 6, 5, RGB(150,180,220));
    //gb.DrawLine(10, 2, 11, 10, 1.0, RGB(150,180,220));
    //gb.FillRoundRect(3, 1, 5, 5, 1, 1, RGB(190,220,250));
    gb.DrawRoundRect(3, 1, 5, 5, 1, 1, 1.0, RGB(150,180,220));
   // gb.DrawCircle(3, 1, 5, 5, 1, 1, 1.0, RGB(150,180,220));
    //gb.FillRoundRect(10, 1, 5, 5, 1, 1, RGB(190,220,250));
    //gb.DrawRoundRect(10, 1, 5, 5, 1, 1, 1.0, RGB(150,180,220));
    //gb.FillRoundRect(3, 8, 5, 5, 1, 1, RGB(190,220,250));
    //gb.DrawRoundRect(3, 8, 5, 5, 1, 1, 1.0, RGB(150,180,220));
    //gb.FillRoundRect(10, 8, 5, 5, 1, 1, RGB(190,220,250));
    //gb.DrawRoundRect(10, 8, 5, 5, 1, 1, 1.0, RGB(150,180,220));
    h_img.ReleaseGraphics(gb);

Добавлено спустя 5 часов 55 минут:
Походу не поддерживаются остальные методы:
drawOval(int x, int y,int width, int height);
drawArc
Или я чего-то не догоняю?
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #612 kgena_ua » 30.01.2016, 12:17

Aum:через стандартное окно копирования
Про стандартное, где прогресс, скорость - не знаю. А если так (сегодня нарыл).
Сделал на левую кнопку мыши.
Получается такое окно
Безымянный.png

Тут само описание метода WshShell.Popup() (можно настроить вид и т.д.) https://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx
Сам скрипт
Код: Выделить всё
var fso = new ActiveXObject("Scripting.FileSystemObject");
var WshShell = new ActiveXObject("WScript.Shell")

function on_mouse_lbtn_up (x, y){ 
    var source = fb.TitleFormat("%path%").EvalWithMetadb(fb.GetFocusItem());;
    var destination = "D:\\";
    var btn = WshShell.Popup("Copy file \n" + source + "\nto \n" + destination, 0, "Copy...", 0x4 + 0x20);
    switch (btn) {   
    case 6:   
        fso.CopyFile(source, destination); 
        break;    
    case 7:   
        break;
    }
}

По "рисованию", насколько я знаю, ничего кроме
Спойлер
void FillSolidRect(x, y, w, h, color);
void FillGradRect(x, y, w, h, angle, color1, color2, focus = 1.0);
void FillRoundRect(x, y, w, h, arc_width, arc_height, color);
void FillEllipse(x, y, w, h, color);
void FillPolygon(color, fillmode, points);
void DrawLine(x1, y1, x2, y2, line_width, color);
void DrawRect(x, y, w, h, line_width, color);
void DrawRoundRect(x, y, w, h, arc_width, arc_height, line_width, color);
void DrawEllipse(x, y, w, h, line_width, color);
void DrawPolygon(color, line_width, points);
void DrawString(str, IGdiFont, color, x, y, w, h, flags = 0);
ничего и не предлагается.
Со звездой "как-то проще" - фигуру можно описать математически. А если произвольное изображение ??????? Я наверное рисовал бы через DrawLine().
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #613 Aum » 03.02.2016, 15:11

Народ, thumbs от marca2003 ищет картинки после щелчка вручную в меню - "загрузить". Никто не думал о добавке условия типа: "если папка "артист" существует, то не загружать картинки, если "не существует", то выполнять загрузку? А то как-то вручную все время их скачивать..

Добавлено спустя 51 минуту 54 секунды:
kgena_ua, у Вас получилось доделать ваш скрипт по загрузке фото артиста с ласт фм?
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #614 kgena_ua » 03.02.2016, 16:22

Aum, надо тестировать.
Безымянный.png

tmp_Biography.rar
(4.49 КБ) Скачиваний: 413

Папку tmp_Biography в корень.
Из папки download скрипт (script.txt) вставить в окно WSH панели.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #615 vincenzo44 » 03.02.2016, 20:24

Ребят, может кто-нибудь помочь прикрутить несколько кнопок/строк текста к js panel тут? http://i.imgur.com/vKWJgJ5.gif
на самой нижней панели добавить кнопки такие как stop after queue и т.п.? Скину линк конечно)
vincenzo44
Репутация: 4
С нами: 8 лет 10 месяцев

Сообщение #616 MC Web » 03.02.2016, 21:24

kgena_ua, спасибо, работает.
Заремил только Reload, что бы работал без ошибок с foo_uie_wsh_panel_mod_1.5.6.

Есть предложение, добавить указатели начала / окончания текста, как на скриншоте (автору это быстрее сделать):

Скриншот
Изображение
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #617 kgena_ua » 03.02.2016, 21:45

MC Web,
Указатели добавим.
Добавим "проигрываемый, выбранный"
Замените функцию для корректной работы циклического изменения картинки по времени.
Код: Выделить всё
function on_timer(id) {
    ShiftDown = utils.IsKeyPressed(0x10) ? true : false;
    step =  ShiftDown ? 0 : step + 1;
    if (files.length == 0) get_files_from_dir();
    if (cycle > 0 && step >= cycle && !ShiftDown){
        selected = selected >= files.length - 1 ? 0 : selected = selected + 1;
        window.Repaint();
        step = 0;
    }
   
    if (!ShiftDown) {
        set_cycle && dis--;
        if (dis <= 0){
            set_cycle = false;
            window.Repaint();
        }
    } else {
        dis = 5;
    }
}
Видео работы скрипта.


phpBB [media]
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #618 MC Web » 03.02.2016, 21:59

kgena_ua, а вот с изменением размера панели биографии с помощью зажатой ЛКМ - здорово придумано и реализовано !!! :clap:
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Сообщение #619 AHAPXICT » 03.02.2016, 22:16

Всем привет! И я сюда же, как то пропустил эту тему в своё время. kgena_ua, спасибо работает супер. Сижу настраиваю отображение текста в меню свойства, а потом замечаю что он просто мышкой перетягивается по экрану, посмеялся сам над собой. Заменил gr.GdiDrawText на gr.DrawString для отображения &, поставил строку gr.SetTextRenderingHint(5); для рендеринга текста. Всё вроде бы получилось, но перестал работать DT_CENTER | DT_SINGLELINE | DT_WORD_ELLIPSIS для исполнителя, при уменьшении размера сворачивается в несколько строк и налазит на основной текст. Экспериментировал с с теми производными от бегущей строки, но они вроде бы здесь не к чему?
MC Web, и я такие указатели хочу))) Этого сейчас так не хватает)))
kgena_ua, MC Web, Вы ведь эту тему пару месяцев назад развивали? Вот что хочу спросить. Для меня новые скрипты для js панели от marc2003 недоступны по понятной причине, поэтому одна надежда WSH. Вопрос в следующем: Можно ли подобное реализовать для стандартного плагина Biography View путём добавления External Scripts ? Так и в сборке нечего менять не надо, добавил скрипт и порядок. Не могу понять почему эту тему никто не развивает, ведь есть огромное количество старых хороших сборок на этом компоненте.
P.S. Пока писал - уже и видео есть))))
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 11 лет

Сообщение #620 MC Web » 03.02.2016, 22:47

AHAPXICT, Biography View потихоньку загибается - биографию без скрипта не грузит, а картинку всего одну и неизвестно на долго ли.

kgena_ua почти закончил WSH Biography Text & Picture Llast.fm, так что одна замена Biography View есть.

Относительно скриптов marc2003 для панели WSH - посмотри темы DarkOne_v3.0 + 4.0_Rus NEW (BIO на WSH) / DarkOne_v3.0 + 4.0_Rus NEW (BIO на WSH в папке TEMP) здесь (вносил последние изменения, пока все работает).
MC Web
Репутация: 248
С нами: 11 лет 3 месяца

Пред.След.

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