Список разделов › foobar2000 › Есть вопрос!
будут, если взять мой перевод За лирику отвечает плагин foo_uie_lyrics3vladj:пусть и не на русском настройки будут
Там и так стоит последняя официальная версия плагина, только локализованная и в ней не может быть 9 серверов.vladj:Плагин лирики старый, тут 6 серверов, у меня 9
Увеличил количество БД,подключил поиск Google.Текст начало находить чаще но к некоторым песням выдает странные вещи.Прикрепил скрины.Только после нажатия на кнопку "Следующий текст песен"(частенько не 1 раз) выдает правильный текст.Может беда в какой-то из БД и ее лучше отключить,не подскажите?Или пусть лучше оставить все как есть чтобы увеличить вероятность нахождения текста?1. Нужно подключить Поиск Google или увеличить количество БД. Для увеличения БД надо установить дополнительные компоненты, которые увеличивают их число. Их можно скачать здесь.
Нашел 1 вариант через скрипт lastfm_bio.vbs .Сделал все по инструкции и все заработало .Вот только хотелось бы на русском чтобы биографию грузило.Почитал в комментариях что нужно просто выбрать русский сервер и если биографию выдаст на английском то на русском ее просто нету.Во вкладке "Загрузка биографии>С сервера Last.fm" стоит русский сервер но биографию показывает всё равно на английском.Нашел еще какой-то скрипт от marc2003,говорят работает хорошо.Вот теперь сижу думаю может по первому варианту как-то получится настроить или делать все по скрипту от marc20032. Для отображения биографии в данной теме есть два варианта, смотрим здесь.
Если в сборке есть отдельная панель для показа картинок, то меняешь ее на WSH панель и тудаlove123321:например чтобы foobar брал все картинки подряд с папки
Спасибо,ваш совет очень помог.Теперь обложки можно перелистывать прямо все которые прикреплены к альбому.Не могу поверить своему счастьюскрипт от "Maxim Terpilovsky's script Artwork"
// Maxim Terpilovsky's script
// http://terpilovsky.ru
// Artwork / Updated 27-01-2014
DT_END_ELLIPSIS = 0x00008000;
DT_EDITCONTROL = 0x00002000;
DT_TOP = 0x00000000;
DT_LEFT = 0x00000000;
DT_CENTER = 0x00000001;
DT_RIGHT = 0x00000002;
DT_VCENTER = 0x00000004;
DT_BOTTOM = 0x00000008;
DT_WORDBREAK = 0x00000010;
MF_STRING = 0x00000000;
MK_CONTROL = 0x0008;
DT_CALCRECT = 0x00000400;
MF_POPUP = 0x00000010;
MK_SHIFT = 0x0004;
DT_NOPREFIX = 0x00000800;
function StrFmt(alignH,alignV,trim,flag){ return ((alignH<<28)|(alignV<<24)|(trim<<20)|flag); }
function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
function RGBA(r,g,b,a){ return ((a<<24)|(r<<16)|(g<<8)|(b)); }
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var WshShell = new ActiveXObject("WScript.Shell");
var ww, wh;
var g_hover = 0;
if ( utils.CheckFont( "Segoe UI" ) ) {
var g_font = gdi.Font("Segoe UI", 13);
var g_font2 = gdi.Font("Segoe UI", 12, 0);
var g_font_small = gdi.Font("Segoe UI", 11, 0);
} else {
var g_font = gdi.Font("Tahoma", 13);
var g_font2 = gdi.Font("Tahoma", 11, 1);
var g_font_small = gdi.Font("Tahoma", 10, 1);
}
/*var arrow_left, arrow_right, info_hover = 0;
try {
var arrow_left = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\arrow_left.png" );
var arrow_right = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\arrow_right.png" );
var picture = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\picture.png" );
var user_image = gdi.Image( fb.FoobarPath + "\\s7e_files\\images\\user.png" );
} catch(e) {
// fb.trace(e.message);
}
*/
function CoverShow( metadb ) {
this.CachedPath = 0;
this.CachedCoversNumber = 0;
// Current Mode
this.CurrentMode = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'displayed_cover', 1) );
// Current Mode
this.DisplayMode = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'disp_mode', 1) );
// Priority
this.Priority = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'cover_priority', 2) );
// Exclude
this.Exclude = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'exclude_covers', 0) );
// Pattern
// 1 - *keywords*.*
// 2 - keywords.*
this.MatchPattern = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'match_pattern', 1) );
// Aspect ratio
this.Aspect = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'covers_aspect', 1) );
// Gesture
this.GestureInverted = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'gesture_inverted', 0) );
// Covers from Root folder
this.RootCovers = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'root_covers', 1) );
// Covers from subfolders
this.SubCovers = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'sub_covers', 1) );
// Interval
this.Interval = parseInt( utils.ReadINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'interval', 1) );
this.Intervals = new Array(5000, 15000, 30000, 60000, 120000);
cache_path = utils.ReadINI(fb.FoobarPath + 's7e.ini', 'bio', 'cache_path');
this.CachePath = cache_path ? cache_path : false;
// No Cover and Case
//try {
//this.NoCover = gdi.Image( fb.ProfilePath + "s7e_files\\images\\nocover.png" );
//this.Case = gdi.Image( fb.ProfilePath + "s7e_files\\images\\case.png" );
//}
//catch(e) { }
// Metadb
this.OutputMetadb = function() {
return ( this.CurrentMode == 3 || !fb.IsPlaying ? fb.GetFocusItem(true) : fb.GetNowPlaying() );
}
this.FormatMeta = function( meta, db ) {
if ( db ) {
s = fb.TitleFormat("%" + meta + "%").EvalWithMetadb( db );
s = s.replace(/[\/\\\:\*\?\"\<\>\|]/g,'-');
s = s.replace(/(^\s+)|(\s+$)/g, "");
return s;
} else return '';
}
// Search for files
this.Search = function( array, dir) {
var e = new Enumerator( dir.Files );
while( !e.atEnd() ) {
var name = e.item().Name;
if( name.match(/\.(jpg|jpeg|png|gif|bmp|tiff)$/i) ) {
array.push( e.item().Path );
}
e.moveNext();
}
}
// Find all covers in the folder
this.GetExternalCovers = function( path ) {
var files = [];
var files_this = [];
var files_subs = [];
var covers = [];
try {
var dir = FSO.GetFolder( path );
var root = dir.ParentFolder;
this.Search(files_this, dir);
this.Search(files_this, root);
if ( this.SubCovers ) {
var e = new Enumerator( dir.SubFolders );
for(; !e.atEnd(); e.moveNext() ) {
this.Search(files_subs, e.item() );
}
}
} catch(e) {
// fb.trace( 'this.GetExternalCovers / path: ' + e.message );
}
if ( files_this.length > 0 || files_subs.length > 0 ) {
files_this.sort();
files_subs.sort();
files = files.concat(files_this, files_subs);
var k = files.length;
files.reverse();
while (k--){
var name = files[k];
if ( this.MatchPattern == 1 ) {
if ( name.match(/.*(cover|front|folder)([^\\]*)\.(jpg|jpeg|gif|png|bmp|tiff)$/i) ) {
covers.push( name );
files[k] = null;
}
}
else {
if ( name.match(/\\(cover|front|folder)\.(jpg|jpeg|gif|png|bmp|tiff)$/i) ) {
covers.push( name );
files[k] = null;
}
}
}
overall = covers;
k = files.length;
while (k--){
var cur = files[k];
if ( typeof( cur ) == 'string' ) overall.push( cur );
}
return overall;
}
else return new Array();
}
this.GetCovers = function( path ) {
switch ( this.Exclude ) {
case 0:
var embedded = this.DisplayMode == 2 && this.CachePath ? [] : this.GetEmbeddedCovers( this.Metadb );
var external = this.GetExternalCovers( path );
var allcovers = [];
if ( this.Priority == 1 ) allcovers = allcovers.concat(embedded, external);
else allcovers = allcovers.concat(external, embedded);
this.Covers = allcovers;
break;
case 1:
var external = this.GetExternalCovers( path );
this.Covers = external;
break;
case 2:
var embedded = this.DisplayMode == 2 && this.CachePath ? [] : this.GetEmbeddedCovers( this.Metadb );
this.Covers = embedded;
break;
}
if ( this.Covers.length > 0 ) {
try {
var temp = this.Covers[0];
return ( typeof temp == 'object' ? temp.Clone( 0, 0, temp.Width, temp.Height ) : gdi.LoadImageAsync( window.ID, temp ) );
}
catch(e) { return undefined; }
}
else {
this.Covers = false;
return 0;
}
}
this.GetEmbeddedCovers = function( metadb ) {
if ( metadb ) {
var embedded = [];
var c = 5;
while ( c-- ) {
if ( c == 3 ) continue;
var temp = utils.GetAlbumArtEmbedded( metadb.RawPath, c );
if ( temp ) embedded.push( temp );
}
return embedded;
} else return [];
}
this.CompareDirs = function() {
metadb = this.OutputMetadb();
try {
artist = this.Eval( this.Metadb, 'artist' );
metapath = metadb.Path;
metapath = this.DisplayMode == 2 && this.CachePath && FSO.FolderExists( this.CachePath + '\\' + artist ) ? this.CachePath + '\\' + artist : metapath.replace(/\\([^\\]*)$/g, '');
}
catch (e) { metapath = 0; }
if ( metapath ) {
switch ( this.Exclude ) {
case 0:
var embedded = this.DisplayMode == 2 && this.CachePath ? [] : this.GetEmbeddedCovers( this.Metadb );
var external = this.GetExternalCovers( metapath );
var allcovers = [];
if ( this.Priority == 1 ) allcovers = allcovers.concat(embedded, external);
else allcovers = allcovers.concat(external, embedded);
//this.Covers = allcovers;
break;
case 1:
var allcovers = this.GetExternalCovers( metapath );
//this.Covers = external;
break;
case 2:
var allcovers = this.DisplayMode == 2 && this.CachePath ? [] : this.GetEmbeddedCovers();
//this.Covers = embedded;
break;
}
var allcovers = new Array();
allcovers = allcovers.concat(embedded, external);
return this.CachedCoversNumber == allcovers.length;
}
}
this.ChangeImage = function( val ) {
this.CurrentCover = val;
}
this.NextCover = function() {
if ( this.Covers && this.Covers.length > 1 ) {
this.CurrentCoverNumber = this.CurrentCoverNumber + 1 == this.Covers.length ? 0 : this.CurrentCoverNumber + 1;
try {
var temp = this.Covers[ this.CurrentCoverNumber ];
var img = ( typeof temp == 'object' ) ? temp.Clone(0,0,temp.Width,temp.Height) : gdi.LoadImageAsync(window.ID, temp);
} catch (e) { var img = undefined; }
this.ChangeImage( img );
window.Repaint();
}
else if ( !this.Covers ) { this.Update(); }
}
this.MultipleCovers = function() {
return ( this.Covers && this.Covers.length > 1 );
}
this.PrevCover = function() {
if ( this.Covers && this.Covers.length > 1 ) {
this.CurrentCoverNumber = ( this.CurrentCoverNumber == 0 ) ? this.Covers.length - 1 : this.CurrentCoverNumber - 1;
try {
var temp = this.Covers[ this.CurrentCoverNumber ];
var img = ( typeof temp == 'object' ) ? temp.Clone(0,0,temp.Width,temp.Height) : gdi.LoadImageAsync(window.ID, temp);
} catch (e) { var img = undefined; }
this.ChangeImage( img );
window.Repaint();
}
else if ( !this.Covers ) { this.Update(); }
}
this.StopTimer = function() {
this.CycleTimer ? window.ClearInterval(this.CycleTimer) : '';
}
this.StartTimer = function() {
if ( this.CycleTimer ) window.ClearInterval( this.CycleTimer );
if ( this.CurrentMode == 2 ) this.CycleTimer = window.SetInterval( function() { Cover.NextCover() }, this.Intervals[ this.Interval ] );
}
this.Reset = function() {
this.Covers = false;
this.CoverX = null;
this.CoverY = null;
this.CurrentCoverNumber = 0;
this.CurrentCover = 0;
this.CachedPath = '';
this.CachedCoversNumber = 0;
this.CachedArtist = '';
}
this.Eval = function( meta, field ) {
path = meta ? meta.Path : '';
if ( path ) return path.indexOf('://') > 0 ? fb.TitleFormat("[%" + field + "%]").Eval( true ) : fb.TitleFormat("[%" + field + "%]").EvalWithMetadb( meta );
}
this.Update = function( metadb ) {
this.Metadb = metadb ? metadb : this.OutputMetadb();
artist = this.Eval( this.Metadb, 'artist' );
try {
dir = this.Metadb.Path;
dir = dir.replace(/\\([^\\]*)$/g, '');
this.MetaPath = this.DisplayMode == 2 && this.CachePath && FSO.FolderExists( this.CachePath + '\\' + artist ) ? this.CachePath + '\\' + artist : dir;
}
catch (e) { this.MetaPath = 0; }
if ( this.MetaPath && artist ) {
var artist_temp = this.Eval( this.Metadb, 'artist' );
var a = this.CachedPath ? this.CachedPath : ' ';
var b = this.MetaPath;
if ( a != b || ( this.CachedArtist != artist_temp ) ) {
this.Covers = false;
this.CurrentCoverNumber = 0;
this.CurrentCover = this.GetCovers( this.MetaPath );
this.CachedPath = this.MetaPath;
this.CachedCoversNumber = this.Covers != undefined ? this.Covers.length : 0;
this.CachedArtist = artist_temp;
window.Repaint();
}
}
else {
this.Reset();
window.Repaint();
}
}
//this.Update( metadb);
this.CachedArtist = '';
this.CachedCoversNumber = this.Covers != undefined ? this.Covers.length : 0;
this.CycleTimer = 0;
this.TimerStarted = false;
this.LbtnPressed = 0;
this.X1 = 0;
this.X2 = 0;
this.X = 0;
this.MouseGesture = 0;
this.CoverX = null;
this.CoverY = null;
this.Covers = undefined;
}
var Cover = new CoverShow();
function on_size() {
ww = window.Width;
wh = window.Height;
/// if ( ww && wh ) { Cover.Reset(); Cover.Update(); }
}
function on_paint( gr ) {
//d = new Date();
//t = d.getTime();
gr.SetSmoothingMode( 4 );
gr.SetInterpolationMode( 1 );
/// gr.FillSolidRect(0, 0, ww, wh, RGB(255,255,255));
if ( Cover.Covers ) {
// Bottom box
/// gr.FillSolidRect( 0, wh - 27, ww, 27, RGBA(255,255,255,150));
// Check if it's corrupted or not loaded
if ( !Cover.CurrentCover ) {
Cover.CoverX = null;
Cover.CoverY = null;
var cov = Cover.Covers[ Cover.CurrentCoverNumber ];
if ( typeof cov == 'object' ) {
Cover.CurrentCover = cov == null ? false : cov.Clone(0,0,cov.Width,cov.Height);
var image_name = 'Встроенное изображение';
}
else {
Cover.CurrentCover = gdi.Image( cov );
if ( Cover.CurrentCover == null ) Cover.CurrentCover = false;
var image_name = 'Изображение';
}
if ( !Cover.CurrentCover ) gr.GdiDrawText( image_name + ' вероятно повреждено и не может быть отображено.', g_font, RGB(0,0,0), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_WORDBREAK | DT_CALCRECT);
if ( !Cover.CurrentCover ) gr.GdiDrawText( image_name + ' вероятно повреждено и не может быть отображено.', g_font, RGB(140,164,179), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_WORDBREAK | DT_CALCRECT);
}
if ( typeof Cover.CurrentCover == 'object' ) {
var img = Cover.CurrentCover;
// Width, height, coords
/// var resulting_height = wh - 53;
if ( Cover.Aspect ) {
if ( img.Width > ww || img.Height > wh ) {
// if ( img.Width > ww || img.Height > resulting_height ) {
var iw1 = ww;
var iw2 = img.Width / ( img.Height / wh );
/// var iw2 = img.Width / ( img.Height / resulting_height );
var ih1 = wh;
/// var ih1 = resulting_height;
var ih2 = img.Height / ( img.Width / ww );
var iw = Math.min(iw1, iw2);
var ih = Math.min(ih1, ih2);
}
else {
var iw = img.Width;
var ih = img.Height;
}
}
else {
var iw = ( img.Width > ww ) ? ww : img.Width;
var ih = ( img.Height > wh ) ? wh : img.Height;
/// var ih = ( img.Height > resulting_height ) ? resulting_height : img.Height;
}
img = img.CreateRawBitmap();
var x = (iw < ih) ? ((iw < ww) ? ((ww - iw)/2) : 0 ) : ((iw >= ww) ? 0 : ((ww - iw)/2));
var y = (iw > ih) ? ((ih < wh) ? ((wh - ih)/2) : 0 ) : ((ih >= wh) ? 0 : ((wh - ih)/2));
/// var y = (iw > ih) ? ((ih < resulting_height) ? ((wh - ih)/2) : 0 ) : ((ih >= resulting_height) ? 0 : ((wh - ih)/2));
Cover.CoverX = x;
Cover.CoverY = y;
// Draw cover
gr.GdiDrawBitmap( img, x, y, iw, ih, 0, 0, img.Width, img.Height );
if((wh - ih)/2 < 15 && g_hover == 1){
gr.FillSolidRect (0, 0, ww, 18, RGBA(0,20,30,150));
gr.FillSolidRect (0, wh - 18, ww, wh, RGBA(0,20,30,150));
}
// Resolution
/// gr.GdiDrawText( Cover.CurrentCover.Width + " ? " + Cover.CurrentCover.Height, g_font_small, RGB(0,0,0), 0, wh - 25, ww, 25, DT_CENTER | DT_VCENTER | DT_CALCRECT);
if (g_hover == 1) {
gr.GdiDrawText( Cover.CurrentCover.Width + " X " + Cover.CurrentCover.Height, g_font_small, RGB(0,0,0), 7, 1, ww, 18, DT_LEFT| DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT);
gr.GdiDrawText( Cover.CurrentCover.Width + " X " + Cover.CurrentCover.Height, g_font_small, RGB(140,164,179), 6, 0, ww, 18, DT_LEFT| DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT);
}
// Filesize
/// try { var size = Math.round( FSO.GetFile( Cover.Covers[ Cover.CurrentCoverNumber ] ).size / 1024 ) + " KB"; }
/// catch(e) { var size = ''; }
/// gr.GdiDrawText( size, g_font_small, RGB(0,0,0), 6, wh - 25, ww, 25, DT_LEFT| DT_VCENTER | DT_CALCRECT);
// Release graphics
var graphics = Cover.CurrentCover.GetGraphics();
Cover.CurrentCover.ReleaseGraphics( graphics );
Cover.CurrentCover.Dispose();
Cover.CurrentCover = 0;
}
else if ( typeof Cover.CurrentCover == 'number' ) {
gr.GdiDrawText( 'Загрузка...', g_font2, RGB(0,0,0), 1, 1, ww, wh, DT_CENTER | DT_VCENTER | DT_CALCRECT);
gr.GdiDrawText( 'Загрузка...', g_font2, RGB(140,164,179), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_CALCRECT);
}
// Cover Number
if (g_hover == 1) {
gr.GdiDrawText( (Cover.CurrentCoverNumber+1) + "/" + Cover.Covers.length, g_font_small, RGB(0,0,0), -5, wh - 20, ww, 25, DT_RIGHT | DT_VCENTER | DT_CALCRECT);
gr.GdiDrawText( (Cover.CurrentCoverNumber+1) + "/" + Cover.Covers.length, g_font_small, RGB(140,164,179), -6, wh - 21, ww, 25, DT_RIGHT | DT_VCENTER | DT_CALCRECT);
}
/// gr.DrawLine( 0, wh - 25, ww, wh - 25, 1, RGB(218,219,220));
// Filename
if ( typeof Cover.Covers[ Cover.CurrentCoverNumber ] == 'object' ) var filename = 'Embedded';
else if ( Cover.Covers[ Cover.CurrentCoverNumber ] ) var filename = Cover.Covers[ Cover.CurrentCoverNumber ].replace(/(.*)\\(.*)$/i,"$2");
/// estimate = gr.EstimateLineWrap(filename, g_font_small, ww - 10);
/// estimate = estimate.toArray();
/// if ( picture && user_image ) gr.DrawImage( Cover.DisplayMode == 2 ? user_image : picture, 5, 5, picture.Width, picture.Height, 0, 0, picture.Width, picture.Height, angle = 0, alpha = 255);
if (g_hover == 1) {
gr.GdiDrawText( filename, g_font_small, RGB(0,0,0), 6, wh - 17, ww - 39, 18, DT_LEFT| DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT);
gr.GdiDrawText( filename, g_font_small, RGB(140,164,179), 5, wh - 18, ww - 40, 18, DT_LEFT| DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT);
}
/// gr.DrawLine( 0, 25, ww, 25, 1, RGB(218,219,220));
}
else {
metadb = Cover.OutputMetadb();
if ( metadb ) info = fb.TitleFormat(Cover.DisplayMode == 2 ? "[%artist%]" : "[%artist%][ — %album%]").EvalWithMetadb( metadb );
else info = false;
Cover.CoverX = null;
Cover.CoverY = null;
gr.GdiDrawText( 'Нет изображений', g_font2, RGB(0,0,0), 1, 1, ww, wh, DT_CENTER | DT_VCENTER | DT_CALCRECT);
gr.GdiDrawText( 'Нет изображений', g_font2, RGB(140,164,179), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_CALCRECT);
// ARTIST BAR
/// if ( info ) {
/// gr.FillSolidRect(0, 0, ww, 25, RGB(255,255,255));
/// gr.GdiDrawText( info, g_font2, RGB(0, 0, 0), 24, 0, ww - 50, 25, DT_LEFT | DT_VCENTER | DT_EDITCONTROL | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
/// gr.DrawLine( 0, 25, ww, 25, 1, RGB(218,219,220));
/// if ( picture && user_image ) gr.DrawImage( Cover.DisplayMode == 2 ? user_image : picture, 5, 4, user_image.Width, user_image.Height, 0, 0, user_image.Width, user_image.Height, angle = 0, alpha = 255);
/// }
}
//d = new Date();
//t2 = d.getTime();
//fb.trace( 'Repaint: ' + (t2 - t) + ' ms' );
}
function on_load_image_done(cookie, image) {
Cover.CurrentCover = image == null ? false : image;
window.Repaint();
}
function on_mouse_move(x, y) {
if ( !g_hover ) {
g_hover = 1;
window.Repaint();
if ( !Cover.CompareDirs() ) {
Cover.Reset();
Cover.Update();
}
}
if ( Cover.MultipleCovers() && Cover.X1 ) {
Cover.X2 = x;
}
}
function on_mouse_leave() {
g_hover = 0;
info_hover = 0;
Cover.X1 = 0;
Cover.X2 = 0;
Cover.X = 0;
Cover.MouseGesture = 0;
window.Repaint();
}
function on_mouse_wheel( step ) {
(step < 0) ? Cover.NextCover() : Cover.PrevCover();
}
function on_mouse_lbtn_down(x, y, mask) {
if ( mask == 1 ) {
Cover.LbtnPressed = 1;
Cover.X1 = x;
}
}
function on_mouse_lbtn_up(x, y, mask) {
if ( !mask && Cover.MultipleCovers() && Cover.X1 ) {
Cover.X2 = x;
if ( Cover.X1 < Cover.X2 && Math.abs( Cover.X1 - Cover.X2 ) > 8 ) Cover.GestureInverted == 1 ? Cover.NextCover() : Cover.PrevCover();
else if ( Cover.X1 > Cover.X2 && Math.abs( Cover.X1 - Cover.X2 ) > 8 ) Cover.GestureInverted == 1 ? Cover.PrevCover() : Cover.NextCover();
else if ( Cover.X1 > ww / 2 ) Cover.NextCover();
else if ( Cover.X1 < ww / 2 ) Cover.PrevCover();
Cover.LbtnPressed = 0;
Cover.X1 = 0;
Cover.X2 = 0;
Cover.X = 0;
Cover.MouseGesture = 0;
}
else if ( mask == MK_CONTROL ) {
if ( typeof Cover.Covers[ Cover.CurrentCoverNumber ] == 'object' ) WshShell.run( '"' + Cover.MetaPath.replace(/\\([^\\]*)$/g, '') + '"' );
else if ( Cover.Covers[ Cover.CurrentCoverNumber ] ) WshShell.run( '"' + Cover.Covers[ Cover.CurrentCoverNumber ] + '"' );
}
else if ( mask == MK_SHIFT ) {
WshShell.run( '"' + Cover.MetaPath.replace(/\\([^\\]*)$/g, '') + '"' );
}
}
function on_mouse_rbtn_up(x, y) {
var _menu = window.CreatePopupMenu();
var _firstgroup = window.CreatePopupMenu();
var _secondgroup = window.CreatePopupMenu();
var _thirdgroup = window.CreatePopupMenu();
var _fourthgroup = window.CreatePopupMenu();
var _fivthgroup = window.CreatePopupMenu();
var _sixthgroup = window.CreatePopupMenu();
var _seventhgroup = window.CreatePopupMenu();
var _eighthgroup = window.CreatePopupMenu();
var _ninthgroup = window.CreatePopupMenu();
var _tenthgroup = window.CreatePopupMenu();
var i = 1;
var ret;
artist = Cover.FormatMeta('artist', Cover.OutputMetadb() );
_firstgroup.AppendMenuItem(MF_STRING, i++, "Воспроизводимый элемент (не зацикленно)");
_firstgroup.AppendMenuItem(MF_STRING, i++, "Воспроизводимый элемент (зацикленно)");
_firstgroup.AppendMenuItem(MF_STRING, i++, "Текущее выделение");
_firstgroup.EnableMenuItem( Cover.CurrentMode, 1 );
_firstgroup.CheckMenuRadioItem( 1, i-1, Cover.CurrentMode );
_firstgroup.AppendMenuSeparator();
_firstgroup.AppendMenuItem(MF_STRING, i++, "Обложка: лицевая, задняя, диск и т.д.");
_firstgroup.AppendMenuItem(MF_STRING, i++, "Фото исполнителя");
_firstgroup.EnableMenuItem( i-1 , !Cover.CachePath ? 1 : 0 );
_firstgroup.EnableMenuItem( Cover.DisplayMode + 3, 1 );
_firstgroup.CheckMenuRadioItem( i-2, i-1, Cover.DisplayMode + 3 );
_secondgroup.AppendMenuItem(MF_STRING, i++, "Встроенные обложки");
_secondgroup.AppendMenuItem(MF_STRING, i++, "Внешние обложки");
_secondgroup.EnableMenuItem( Cover.Priority + 5, 1 );
_secondgroup.CheckMenuRadioItem( i-2, i-1, Cover.Priority + 5 );
_thirdgroup.AppendMenuItem(MF_STRING, i++, "Встроенные обложки");
_thirdgroup.AppendMenuItem(MF_STRING, i++, "Внешние обложки");
if ( Cover.Exclude ) {
// _thirdgroup.EnableMenuItem( Cover.Exclude + 5, 1 );
_thirdgroup.CheckMenuRadioItem( i-2, i-1, Cover.Exclude + 7 );
}
_fourthgroup.AppendMenuItem(MF_STRING, i++, "*ключевые слова*.*");
_fourthgroup.AppendMenuItem(MF_STRING, i++, " ключевые слова.*");
_fourthgroup.EnableMenuItem( Cover.MatchPattern + 9, 1 );
_fourthgroup.CheckMenuRadioItem( i-2, i-1, Cover.MatchPattern + 9 );
_fivthgroup.AppendMenuItem(MF_STRING, i++, "5 сек.");
_fivthgroup.AppendMenuItem(MF_STRING, i++, "15 сек.");
_fivthgroup.AppendMenuItem(MF_STRING, i++, "30 сек.");
_fivthgroup.AppendMenuItem(MF_STRING, i++, "1 мин.");
_fivthgroup.AppendMenuItem(MF_STRING, i++, "2 мин.");
_fivthgroup.EnableMenuItem( Cover.Interval + 12, 1 );
_fivthgroup.CheckMenuRadioItem( i-5, i-1, Cover.Interval + 12 );
_sixthgroup.AppendMenuItem(MF_STRING, i++, "Не сохранять пропорции");
_sixthgroup.AppendMenuItem(MF_STRING, i++, "Сохранять пропорции");
_sixthgroup.EnableMenuItem( Cover.Aspect + 17, 1 );
_sixthgroup.CheckMenuRadioItem( i-2, i-1, Cover.Aspect + 17 );
_seventhgroup.AppendMenuItem(MF_STRING, i++, "Инвертировать жест влево/вправо");
_seventhgroup.CheckMenuItem( i-1, Cover.GestureInverted );
_eighthgroup.AppendMenuItem(MF_STRING, i++, "Показывать обложки из корневой папки");
_eighthgroup.CheckMenuItem( i-1, Cover.RootCovers );
_eighthgroup.AppendMenuItem(MF_STRING, i++, "Показывать обложки из вложенных папок");
_eighthgroup.CheckMenuItem( i-1, Cover.SubCovers );
_ninthgroup.AppendMenuItem(MF_STRING, i++, "cover.*");
_ninthgroup.AppendMenuItem(MF_STRING, i++, "folder.*");
_ninthgroup.AppendMenuItem(MF_STRING, i++, "front.*");
_ninthgroup.AppendMenuItem(MF_STRING, i++, "back.*");
_ninthgroup.AppendMenuItem(MF_STRING, i++, "disc.*");
_ninthgroup.AppendMenuItem(MF_STRING, i++, "%album%.*");
_tenthgroup.AppendMenuItem(MF_STRING, i, "Текущее изображение");
if ( Cover.Covers && typeof Cover.Covers[ Cover.CurrentCoverNumber ] != 'object' ) {
fb.trace( Cover.Covers );
var imagepath = Cover.Covers[ Cover.CurrentCoverNumber ];
var dir = imagepath.replace(/\\([^\\]*)$/g, '');
var imagename = imagepath.replace(/\\([^\\]*)$/g, "$1");
var ext = imagename.replace(/(.*)\.([^\.]*)$/,'$2');
if ( imagename == ('cover.' + ext ) || FSO.FileExists( dir + '\\cover.' + ext ) ) _ninthgroup.EnableMenuItem( 22, 1 );
if ( imagename == ('folder.' + ext ) || FSO.FileExists( dir + '\\folder.' + ext ) ) _ninthgroup.EnableMenuItem( 23, 1 );
if ( imagename == ('front.' + ext ) || FSO.FileExists( dir + '\\front.' + ext ) ) _ninthgroup.EnableMenuItem( 24, 1 );
if ( imagename == ('back.' + ext ) || FSO.FileExists( dir + '\\back.' + ext ) ) _ninthgroup.EnableMenuItem( 25, 1 );
if ( imagename == ('disc.' + ext ) || FSO.FileExists( dir + '\\disc.' + ext ) ) _ninthgroup.EnableMenuItem( 26, 1 );
var album = fb.Titleformat("$replace(%album%,/,-,\,-,:,-,*,-,?,-,\",-,<,-,>,-,|,-)").EvalWithMetadb( Cover.OutputMetadb() );
if ( imagename == (album + '.' + ext ) || FSO.FileExists( dir + '\\' + album + '.' + ext ) ) _ninthgroup.EnableMenuItem( 27, 1 );
}
else {
_ninthgroup.EnableMenuItem( 22, 1 );
_ninthgroup.EnableMenuItem( 23, 1 );
_ninthgroup.EnableMenuItem( 24, 1 );
_ninthgroup.EnableMenuItem( 25, 1 );
_ninthgroup.EnableMenuItem( 26, 1 );
_ninthgroup.EnableMenuItem( 27, 1 );
_tenthgroup.EnableMenuItem( 28, 1 );
}
_firstgroup.AppendTo( _menu, MF_STRING, "Отображение");
_secondgroup.AppendTo( _menu, MF_STRING, "Приоритет");
_thirdgroup.AppendTo( _menu, MF_STRING, "Исключить из поиска");
_fourthgroup.AppendTo( _menu, MF_STRING, "Совпадение");
_fivthgroup.AppendTo( _menu, MF_STRING, "Интервал");
_sixthgroup.AppendTo( _menu, MF_STRING, "Пропорции");
_seventhgroup.AppendTo( _menu, MF_STRING, "Мышь");
_eighthgroup.AppendTo( _menu, MF_STRING, "Дополнительно");
_menu.AppendMenuSeparator();
_ninthgroup.AppendTo( _menu, MF_STRING, "Переименовать текущее изображение в...");
_tenthgroup.AppendTo( _menu, MF_STRING, "Удалить...");
_menu.AppendMenuSeparator();
_menu.AppendMenuItem(MF_STRING, ++i, "Обновить обложки");
_menu.AppendMenuSeparator();
_menu.AppendMenuItem(MF_STRING, ++i, "Открыть папку");
_menu.AppendMenuItem(MF_STRING, ++i, "Открыть обложку");
// Open cover option handle
if ( !Cover.Covers || typeof Cover.Covers[ Cover.CurrentCoverNumber ] == 'object' ) {
_menu.EnableMenuItem( 31, 1 );
}
if ( !Cover.CachePath && !FSO.FolderExists( Cover.CachePath + '\\' + artist ) ) {
_menu.EnableMenuItem( 29, 1 );
}
_menu.AppendMenuSeparator();
_menu.AppendMenuItem(MF_STRING, ++i, "Настройки WSH...");
ret = _menu.TrackPopupMenu(x, y);
if (ret >= 1 && ret <= 3) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'displayed_cover', Cover.CurrentMode = ret );
Cover.StopTimer();
Cover = new CoverShow();
Cover.Update();
Cover.StartTimer();
}
else if (ret >= 4 && ret <= 5) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'disp_mode', Cover.DisplayMode = ret - 3);
Cover.Reset();
Cover.Update();
}
else if (ret >= 6 && ret <= 7) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'cover_priority', Cover.Priority = ret - 5);
Cover = new CoverShow();
Cover.Update();
}
else if (ret >= 8 && ret <= 9) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'exclude_covers', ( ret - 7 == Cover.Exclude ) ? Cover.Exclude = 0 : Cover.Exclude = ret - 7 );
Cover.Reset();
Cover.Update();
}
else if (ret >= 10 && ret <= 11) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'match_pattern', Cover.MatchPattern = ret - 9 );
Cover.Reset();
Cover.Update();
}
else if (ret >= 12 && ret <= 16) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'interval', Cover.Interval = ret - 12);
Cover.StopTimer();
Cover.StartTimer();
}
else if (ret >= 17 && ret <= 18) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'covers_aspect', Cover.Aspect = ret - 17 );
Cover.Reset();
Cover.Update();
}
else if (ret == 19) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'gesture_inverted', Cover.GestureInverted = Cover.GestureInverted == 1 ? 0 : 1);
}
else if (ret == 20) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'root_covers', Cover.RootCovers = Cover.RootCovers == 1 ? 0 : 1);
Cover.Reset();
Cover.Update();
}
else if (ret == 21) {
utils.WriteINI( fb.FoobarPath + 's7e.ini', 'artwork-settings', 'sub_covers', Cover.SubCovers = Cover.SubCovers == 1 ? 0 : 1);
Cover.Reset();
Cover.Update();
}
else if (ret == 22) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\cover.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 23) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\folder.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 24) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\front.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 25) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\back.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 26) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\disc.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 27) {
try {
FSO.MoveFile( Cover.Covers[ Cover.CurrentCoverNumber ], Cover.Covers[ Cover.CurrentCoverNumber ] = dir + '\\' + album + '.' + ext );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 28 ) {
try {
FSO.DeleteFile( Cover.Covers[ Cover.CurrentCoverNumber ] );
Cover.Reset();
Cover.Update();
} catch(e) { }
}
else if (ret == 29 ) {
Cover.Reset();
Cover.Update();
}
else if (ret == 30 ) {
WshShell.run( '"' + Cover.MetaPath + '"' );
}
else if (ret == 31 ) {
if ( Cover.Covers[ Cover.CurrentCoverNumber ] ) WshShell.run( '"' + Cover.Covers[ Cover.CurrentCoverNumber ] + '"' );
}
else if (ret == 32 ) {
window.ShowConfigure();
}
return true;
}
function on_playback_dynamic_info_track() {
Cover.Reset();
Cover.Update();
}
function on_playback_starting() {
// some
}
function on_playback_stop( Reason ) {
Cover.StopTimer();
if ( Reason == 0 ) on_item_focus_change();
}
function on_item_focus_change() {
if ( !fb.IsPlaying || Cover.CurrentMode == 3) { Cover.Update(); }
}
function on_playlist_items_added(playlist) { Cover.Update(); }
function on_playlist_items_removed(playlist, new_count) { Cover.Update(); }
function on_playlist_switch() { Cover.Update(); }
function on_playback_new_track( metadb ){
Cover.Update( metadb );
Cover.StartTimer();
}
function on_mouse_mbtn_up(x,y) {
artist = Cover.FormatMeta('artist', Cover.OutputMetadb() );
if ( (Cover.CachePath && FSO.FolderExists( Cover.CachePath + '\\' + artist )) || Cover.DisplayMode == 2 ) {
utils.WriteINI(fb.FoobarPath + 's7e.ini', 'artwork-settings', 'disp_mode', Cover.DisplayMode = Cover.DisplayMode == 1 ? 2 : 1);
Cover.Reset();
Cover.Update();
}
}
function on_notify_data( name, info) {
if ( info == 'refresh' && name == '314FBCC4-9383-48CD-B2DA-45593D3BE1FF' ) {
Cover.Reset();
Cover.Update();
}
else if ( info == true && name == '314FBCC4-9383-48CD-B2DA-45593D3BE1FF' ) {
on_mouse_mbtn_up();
}
else if ( name == '314FBCC4-9383-48CD-B2DA-45593D3BE1FF' ) {
Cover.CachePath = info;
Cover.Reset();
Cover.Update();
}
}
function on_key_down(vkey) {
if ( vkey == 0x00000021 || vkey == 0x00000026 ) {
Cover.PrevCover();
}
else if ( vkey == 0x00000022 || vkey == 0x00000028 ) {
Cover.NextCover();
}
else if ( vkey == 0x00000023 ) {
if ( Cover.Covers != undefined ) {
Cover.CurrentCoverNumber = Cover.Covers.length - 1;
var tmp = Cover.Covers[ Cover.CurrentCoverNumber ];
var img;
try { img = ( typeof tmp == 'object' ) ? tmp.Clone(0,0,tmp.Width,tmp.Height) : gdi.LoadImageAsync( window.ID, Cover.Covers[ Cover.CurrentCoverNumber ] ); }
catch (e) { img = undefined; }
Cover.ChangeImage( img );
window.Repaint();
}
}
else if ( vkey == 0x00000024 ) {
if ( Cover.Covers != undefined ) {
Cover.CurrentCoverNumber = 0;
var tmp = Cover.Covers[ Cover.CurrentCoverNumber ];
var img;
try { img = ( typeof tmp == 'object' ) ? tmp.Clone(0,0,tmp.Width,tmp.Height) : gdi.LoadImageAsync( window.ID, Cover.Covers[ Cover.CurrentCoverNumber ] ); }
catch (e) { img = undefined; }
Cover.ChangeImage( img );
window.Repaint();
}
}
}
function on_timer(id) {
//if ( Cover.CurrentMode == 2 && Cover.CycleTimer.ID == id ) Cover.NextCover();
}
xml version="1.0" encoding="UTF-8" ?>
<result errmsg="Search ID or Code error!" errcode="32006"
Похоже не только фубар барахлит, но и браузер тоже ? Если картинка не открываетсяChernomor:Как картинку из этого поста получить - не понял
Я же картинку и запостил - значит увидел браузером.vladj:Похоже не только фубар барахлит, но и браузер тоже ? Если картинка не открывается
Лады, тоже пока остановку сделаю. Вчера до 4-х утра бодался, воз и ныне там.vladj:бедет время посмотрю что они там с АЗ лирикс качают и как.
$ifequal($put(pos,$strrchr(%artist%,'[')),0,%artist%,$trim($substr(%artist%,1,$sub($get(pos),1))))
$if2(%title%,%filename%)
Chernomor:Так никто и не ответил:
Как вот этот диалог в фубаре получить?
Увидел, но без оного списка серверов. Печально.MC Web:А в заголовке окна, что написано?
Ищет по активному списку серверов находящемуся в левом окне (Настройки: Порядок поиска).Chernomor:Увидел, но без оного списка серверов. Печально.