Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: WSH Panel Mod (Read 814810 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

WSH Panel Mod

Reply #1575
thank you very much for the compile.

for anyone who is wondering what's in it.... not much for the casual user. i'm hoping to address the fact you don't have an undo/redo history on the edit menu when using a playlist scripted in WSH panel mod. i'm going to have a go at modding JSplaylist to see if it'll work like i hope.

@falstaff or anyone else, simply call this before adding/removing/reordering items using other plman methods.

Code: [Select]
plman.UndoBackup(playlistIndex);


edit: preliminary testing has gone ok. delete, ctrl+z and ctrl+y keyboard shortcuts are working.

WSH Panel Mod

Reply #1576
i've now packaged up a full release...

https://github.com/marc2k3/foo_uie_wsh_panel_mod/releases

Code: [Select]
v1.5.10
- ADD: plman.UndoBackup(playlistIndex). If you call this before adding/removing/reordering playlist items, you will
be able to use the undo/redo commands on the Edit menu.
- CHG: Tidy up samples and add missing images. Paths to required files are now relative.


WSH Panel Mod

Reply #1577
@foosion, i've stuck those pdb files up for download in case you want to remove the repo from your github.

https://dl.dropboxusercontent.com/u/2280132...od-1.5.9-pdb.7z
https://dl.dropboxusercontent.com/u/2280132...d-1.5.10-pdb.7z

thanks again for your help.

@everybody else, only proper c++ developers will be able to make use of these if my component changes create crash reports. do not ask me about anything.

WSH Panel Mod

Reply #1578
Sorry bad english.  I see script Artwork worke bad:
Code: [Select]
//Maxim Terpilovsky's script Artwork (http://terpilovsky.ru))\\\
DT_CENTER = 0x00000001;
DT_VCENTER = 0x00000004;
DT_WORDBREAK = 0x00000010;
DT_CALCRECT = 0x00000400;
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 WshShell = new ActiveXObject("WScript.Shell");
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var g_font = gdi.Font("Tahoma", 11);
function CoverShow( metadb ) {
    this.CachedPath = 0;
    // 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|tif|bmp)$/i) ) {
                array.push( e.item().Path );
            }
            e.moveNext();
        }
    }
    
    // Find all covers in the folder
    this.GetExternalCovers = function( path ) {
        var files = [];
        var covers = [];
        try {
            var dir = FSO.GetFile( path ).ParentFolder;
            this.Search(files, dir);
            var e = new Enumerator( dir.SubFolders );
            for(; !e.atEnd(); e.moveNext() ) {
                this.Search(files, e.item() );
            }
        } catch(e) { fb.trace( 'this.GetExternalCovers / path: ' + e.message ); }
        if ( files.length > 0 ) {
            for ( key in files ) {
                var name = files[key];
                if ( name.match(/.*(cover|front|folder).*\.(jpg|jpeg|gif|png)$/i) ) {
                    covers.push( name );
                    files[key] = null;
                }
            }
            overall = covers;
            for ( key in files ) {
                if ( typeof( files[key] ) == 'string' ) overall.push( files[key] );
            }
            return overall;
        }
        else return new Array();
    }
    this.GetCovers = function( path ) {
                    var embedded = this.GetEmbeddedCovers();
                    var external = this.GetExternalCovers( path );
                    var allcovers = new Array();
                    if ( 2== 1 ) allcovers = allcovers.concat(embedded, external);
                    else allcovers = allcovers.concat(external, embedded);
                    this.Covers = allcovers;
        if ( this.Covers.length > 0 ) {
            try {
                if ( typeof this.Covers[0] == 'object' ) return this.Covers[0];
                else return gdi.Image( this.Covers[0] );
            }
            catch(e) { fb.trace( 'return this.Covers: ' + e.message ); return null; }
        }
        else {
            this.Covers = null;
            return null;
        }
    }
    this.GetEmbeddedCovers = function() {
        var embedded = [];
        for ( c = 0; c < 5; c++) {
            if ( c == 3 ) continue;
            if ( utils.GetAlbumArtEmbedded( this.Metadb.RawPath, c ) )
            embedded.push( utils.GetAlbumArtEmbedded( this.Metadb.RawPath, c ) );
        }
        return embedded;
    }
    this.FindEmbeddedCover = function() {
        return utils.GetAlbumArtEmbedded( this.Metadb.RawPath, art_id = 0);
    }
    this.DrawCover = function(gr) {
   gr.FillGradRect(0,0,window.Width/2,window.Height, -60,RGB(60,60,60),RGB(60,60,60));
    gr.FillGradRect(window.Width/2,0,window.Width/2,window.Height,60,RGB(60,60,60),RGB(60,60,60));
        if ( this.Covers != undefined && !this.CurrentCover ) {
            if ( typeof this.Covers[ this.CurrentCoverNumber ] == 'object' ) {
                this.CurrentCover = this.Covers[ this.CurrentCoverNumber ].Clone(0, 0, this.Covers[ this.CurrentCoverNumber ].Width, this.Covers[ this.CurrentCoverNumber ].Height);
            }
            else {
                this.CurrentCover = gdi.Image( this.Covers[ this.CurrentCoverNumber ] );
            }  
        }
        if ( !this.CurrentCover ) {
        var img = gdi.Image( fb.ProfilePath + "images\\kameleon\\cover\\nocover.png" );
        if ( img.Width > window.Width || img.Height > window.Height ) {
                    if ( img.Width / img.Height > window.Width / window.Height ) {
                        var iw = window.Width;
                        var ih = img.Height / ( img.Width / window.Width );
                        img = img.Resize( iw, ih);
                    }
                    else {
                        var ih = window.Height;
                        var iw = img.Width / ( img.Height / window.Height );
                        img = img.Resize( iw, ih);
                    }
                }
                }
        else {
            var img = this.CurrentCover;
                if ( img.Width > window.Width || img.Height > window.Height ) {
                    if ( img.Width / img.Height > window.Width / window.Height ) {
                        var iw = window.Width;
                        var ih = img.Height / ( img.Width / window.Width );
                        img = img.Resize( iw, ih);
                    }
                    else {
                        var ih = window.Height;
                        var iw = img.Width / ( img.Height / window.Height );
                        img = img.Resize( iw, ih);
                    }
                  }
                }
                var iw = ( img.Width > window.Width ) ? window.Width : img.Width;
                var ih = ( img.Height > window.Height ) ? window.Height : img.Height;
                img = img.Resize( iw, ih);
            gr.DrawImage( img,
                (iw < ih) ? ((iw < window.Width) ? ((window.Width - iw)/2) : 0 ) : ((iw >= window.Width) ? 0 : ((window.Width - iw)/2)),
                (iw > ih) ? ((ih < window.Height) ? ((window.Height - ih)/2) : 0 ) : ((ih >= window.Height) ? 0 : ((window.Height - ih)/2)),
                img.Width, img.Height, 0,0, img.Width, img.Height );
    }
      this.ChangeImage = function( val ) {
        this.CurrentCover = val;
    }
    this.NextCover = function() {
        if ( this.Covers != null && this.Covers.length > 1 ) {
            this.CurrentCoverNumber++;
            if ( this.CurrentCoverNumber == this.Covers.length ) {
                this.CurrentCoverNumber = 0;
            }
            try {
                if ( typeof this.Covers[ this.CurrentCoverNumber ] == 'object' ) var temp = this.Covers[ this.CurrentCoverNumber ];
                else var temp = gdi.Image( this.Covers[ this.CurrentCoverNumber ] );
                if ( temp ) {
                    this.ChangeImage( temp );
                    window.Repaint();
                }
                else this.NextCover();
            } catch (e) {
                this.NextCover();
            }
        }
    }
    this.PrevCover = function() {
        if ( this.Covers != null && this.Covers.length > 1 ) {
            this.CurrentCoverNumber--;
            if ( this.CurrentCoverNumber < 0 ) {
                this.CurrentCoverNumber = this.Covers.length;
            }
            try {
                if ( typeof this.Covers[ this.CurrentCoverNumber ] == 'object' ) var temp = this.Covers[ this.CurrentCoverNumber ];
                else var temp = gdi.Image( this.Covers[ this.CurrentCoverNumber ] );
                if ( temp ) {
                    this.ChangeImage( temp );
                    window.Repaint();
                }
                else this.PrevCover();
            } catch (e) {
                this.PrevCover();
            }
        }
    }
    this.StopTimer = function() {
        this.CycleTimer ? window.KillTimer( this.CycleTimer ) : '';
    }
    this.StartTimer = function() {
            this.CycleTimer = window.CreateTimerInterval( 17000 );
    }
        this.OutputMetadb = function() {
        return ( fb.IsPlaying ? fb.GetNowPlaying() : ( fb.GetFocusItem(true) ? fb.GetFocusItem(true) : false ));
    }
    this.Update = function( metadb ) {
        this.Metadb = metadb ? metadb : this.OutputMetadb();
        try { this.MetaPath = this.Metadb.Path ? this.Metadb.Path : 0; }
        catch (e) { fb.trace( 'this.Update / this.MetaPath = ' + e.message); this.MetaPath = 0; }
        if ( this.MetaPath ) {
           // fb.trace( 'UPDATED!' );
            this.CurrentCoverNumber = 0;
            this.CurrentCover = this.GetCovers( this.MetaPath );
            this.CachedPath = this.MetaPath;
        }
        else {
            this.Covers = null;
            this.CurrentCover = this.NoCover;
            this.CurrentCover = null;
        }
    }
    this.Update(metadb);
    this.CycleTimer = 0;
    this.TimerStarted = false;
}
var Cover = new CoverShow();
var a, b, g_hover = 0;
function on_paint( gr ) {
    var text, measure;
    Cover.DrawCover( gr );
    if ( Cover.Covers != null && g_hover ) {
        if ( Cover.Covers.length > 0 ) {
            text = "wheel - on, double-click - view";
            measure = gr.MeasureString( text, g_font, 0, 0, window.Width, 0, 0);
            gr.FillSolidRect( 0, 0, window.Width, 2*measure.Height, RGBA(32,32,32,100));
            gr.GdiDrawText( text, g_font, RGB(255,255,255), 0, 0, window.Width, measure.Height, DT_CENTER | DT_VCENTER | DT_WORDBREAK | DT_CALCRECT);
            if ( typeof Cover.Covers[ Cover.CurrentCoverNumber ] == 'object' ) text = "Enclosing the track" + Cover.MetaPath.replace(/(.*)\\(.*)\.(.*)$/,'$2.$3') + '"' + " [" + (Cover.CurrentCoverNumber+1) + "/" + Cover.Covers.length + "]";
            else text = Cover.Covers[ Cover.CurrentCoverNumber ].replace(/(.*)\\(.*)\.(.*)$/,'$2.$3') + " [" + (Cover.CurrentCoverNumber+1) + "/" + Cover.Covers.length + "]";
        }
        measure = gr.MeasureString( text, g_font, 5, 0, window.Width-6, 0, 0);
        gr.FillSolidRect( 0, window.Height - measure.Height, window.Width, measure.Height, RGBA(32,32,32,100));
        gr.GdiDrawText( text, g_font, RGB(204,219,216), 0, window.Height - measure.Height, window.Width,  measure.Height, DT_CENTER | DT_VCENTER | DT_WORDBREAK | DT_CALCRECT);
    }
}
function on_playback_new_track( metadb ){
    Cover.Update( metadb );
    Cover.StartTimer();
    window.Repaint();
}
function on_mouse_move(x, y) {
    if ( !g_hover ) {
        g_hover = 1;
        window.Repaint();
    }
}
function on_mouse_leave() {
    g_hover = 0;
    window.Repaint();
}
function on_mouse_wheel( step ) {
    (step < 0) ? Cover.NextCover() : Cover.PrevCover();
}
function on_mouse_lbtn_dblclk(x, y) {
if ( Cover.Covers != undefined )
{
if( Cover.Covers[ Cover.CurrentCoverNumber ] ) WshShell.run( '"' + Cover.Covers[ Cover.CurrentCoverNumber ] + '"' );
   }
}
function on_playback_stop( Reason ) {
    Cover.StopTimer();
}
function on_playlist_switch() {
    var a = Cover.CachedPath ? Cover.CachedPath : ' ';
    var b = Cover.OutputMetadb() ? Cover.OutputMetadb().Path : ' ';
    if ( a.replace(/(.*)\\(.*)\.(.*)$/,'$1') != b.replace(/(.*)\\(.*)\.(.*)$/,'$1') ) {
        Cover.Update();
        window.Repaint();
    }
}
function on_timer(id) {
    if ( Cover.CycleTimer.ID == id ) {
        Cover.NextCover();
    }
}


WSH Panel Mod ({93891888-63A2-4D96-87D9-01C82F1A25F1}): Ошибка выполнения Microsoft JScript:
Объект не поддерживает это свойство или метод
File: <main>
Line: 178, Col: 4
<source text only available at compile time>

WSH Panel Mod

Reply #1579
that script uses obsolete timer methods which have been removed in the latest component. documentation was provided for the new timer functions 3.5 years ago.

if you don't know how to fix the script yourself, i suggest using the original component.

WSH Panel Mod

Reply #1580
that script uses obsolete timer methods which have been removed in the latest component. documentation was provided for the new timer functions 3.5 years ago.

if you don't know how to fix the script yourself, i suggest using the original component.

Fell back to 1.5.6.  Edit the scripts I can not unfortunately.

WSH Panel Mod

Reply #1581
readme updated on github:

Quote
Before upgrading from v1.5.6...

You should check that none of the functions used by your scripts are marked as obsolete by the official component. Even if you don't write your own scripts, the component will report use of obsolete functions to the foobar2000 Console. This is found on the View menu and should be checked just after foobar2000 starts as these messages are only reported once. Details on the exact functions affected are detailed in the changelog below.

In v1.5.7 and newer, these functions have been removed and will cause those older scripts to crash. Either update/remove the scripts or continue using the older component.


Quote
Code: [Select]
- CHG: Remove functions marked as obsolete 2+ years ago. There are newer
       alternatives for all of them:

       window.WatchMetadb
       window.UnWatchMetadb
       window.CreateTimerTimeout
       window.CreateTimerInterval
       window.KillTimer
       UpdateFileInfo
- CHG: AppendMenuItem no longer accepts MF_POPUP as a flag. You should be
       using AppendTo instead.

WSH Panel Mod

Reply #1582
@marc2003

My artwork viewing WSH panel uses the obsolete functions too. I need to investigate my options and find some answers.

Even though I haven't found the time to learn Javascript, I think I have enough intelligence to find a solution IF I WAS GIVEN GOOD DOCUMENTATION AND SOME EXAMPLES.
If you are going to completely strip out the obsolete functions, then it would be VERY HELPFUL if you (or someone else who knows this stuff) could type up a reference document with demo code snippets showing an obsolete function and an example of a newer replacement.

Maybe you can call this reference document obsolete-code-help.txt and include it with the WSH_Panel_Mod package.

Let's look at my artwork viewing script for an initial example . . . . . . . . . .

In my script, the string window.WatchMetadb is found only at this code block:
Code: [Select]
function on_metadb_changed(metadb, fromhook) {
    Image && Image.OnNewTrack(metadb);    
    if (metadb)
        window.WatchMetadb(metadb)
    else
        window.UnWatchMetadb();
}


So what would be the newer code to replace this with? I would like to see an example.

Furthermore,
For the sake of backwards compatibility, was it not possible to keep the obsolete functions as tokens in the code base by allowing them to be imported as a preprocessor file in the script headers exactly as you used to do with your sample scripts? something like this for example:
// @import "%fb2k_profile_path%user-components\wsh-panel-mod\obsolete.js"

One further thing I am curious about,
Are there particular reasons that a function or parameter MUST be removed from the code base?
Is it not possible to add newer functions and parameters but also keep the old stuff in the code base?

---

WSH Panel Mod

Reply #1583
it was certainly possible to keep the old code but it was my personal choice to remove them because they were all marked as obsolete by the original developer and newer replacements have been provided. my estimate of 2+ years notice is actually rather conservative. having checked the history, the timer functions were replaced 3.5 years ago and the metadb functions you mention were replaced nearly 4.5 years ago.

if you don't how to update the scripts then you're not going to benefit from the new features i've provided and you should continue using the older version.

the relevant documentation is inside docs\preprocessors.txt and docs\interfaces.txt. i'm not bending over backwards like i used to. instead, i'm trying to help people help themselves. do what i did and read... also another top tip is searching. if you can't be bothered to do either then this is not the component for you.

WSH Panel Mod

Reply #1584
@derty2:

removing obsolete functions is a good thing as there are marked as obsolete for years now. Script coder are responsible of their bad use so don't blame the remove or don't ask them back please.

if you need examples, i agree it's a good place to ask for them as it's a forum, so maybe someone will brought to you some of them.

WSH Panel Mod

Reply #1585
Please help solve this problem
Code: [Select]
[09:44:31] UI Hacks: virtual disk hooks OK (0x0300)
[09:44:31] UI Hacks: font "bank-gothic-light-bt.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "BankGothic.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "BankGothic_rus.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "Basicdots.TTF" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "big_noodle_titling.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "big_noodle_titling_oblique.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "corbel.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "corbelb.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "corbeli.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "corbelz.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "digital-7 (mono).ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "digital.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "ebrima.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "ebrimabd.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "FeaturedItem.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "Guifx v2 Transports.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoesc.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoescb.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoeui.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoeuib.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoeuii.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoeuil.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "segoeuiz.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "seguisb.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "seguisym.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "tedGo's DarkOne.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "uni05.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: font "uni05_53.ttf" loaded (GDI & GDI+)
[09:44:31] UI Hacks: GDI+ hacks OK
[09:44:31] UI Hacks: fonts loaded in 0:00.017717
[09:44:31] UI Hacks: DLL-hijacking succeeded
[09:44:31] UI Hacks: hooks status 0x020000
[09:44:31] Components loaded in: 0:00.126197
[09:44:31] Configuration read in: 0:00.018330
[09:44:31] Watching: D:\music
[09:44:31] WSH Panel Mod ({61E26585-1982-45A2-82B6-8E834A503E4F}): Parsing file "C:\foobar2000\scripts\marc2003\v2\common.js"
[09:44:31] WSH Panel Mod ({61E26585-1982-45A2-82B6-8E834A503E4F}): Parsing file "C:\foobar2000\scripts\marc2003\v2\tooltip_buttons.js"
[09:44:31] WSH Panel Mod ({61E26585-1982-45A2-82B6-8E834A503E4F}): initialized in 12 ms
[09:44:31] WSH Panel Mod ({1ED5A7F2-0338-4189-A163-7BF92256E577}): initialized in 1 ms
[09:44:31] WSH Panel Mod ({FFF2B498-2C93-4683-9C3B-504C9370EC6B}): initialized in 12 ms
[09:44:32] WSH Panel Mod ({970889CB-C7C8-4B6B-8307-E732076A7340}): initialized in 4 ms
[09:44:32] Custom Database: Initialize
[09:44:32] Custom Database: table quicktag already exists (1)
[09:44:32] Custom Database: table database_version already exists (1)
[09:44:32] Custom Database: index url_idx already exists (1)
[09:44:32] Custom Database: Completed
[09:44:33] Album list panel: initialised in 1.259 s
[09:44:33] Error: WSH Panel Mod ({FFF2B498-2C93-4683-9C3B-504C9370EC6B}): Ошибка выполнения Microsoft JScript:
Объект не поддерживает это свойство или метод
File: <main>
Line: 464, Col: 5
<source text only available at compile time>
[09:44:33] Error: WSH Panel Mod ({970889CB-C7C8-4B6B-8307-E732076A7340}): Ошибка выполнения Microsoft JScript:
Объект не поддерживает это свойство или метод
File: <main>
Line: 767, Col: 3
<source text only available at compile time>
[09:44:33] User Interface initialized in: 0:01.744758
[09:44:33] Conf3 already initialized.
[09:44:33] w7shell: init started
[09:44:33] w7shell: GDI+ initialized
[09:44:33] w7shell: COM initialized
[09:44:33] w7shell: running on Windows NT 6.1.7601 Service Pack 1
[09:44:33] w7shell: DWM composition enabled
[09:44:33] w7shell: WA_DISALLOW_PEEK successfully set
[09:44:33] w7shell: WA_DISALLOW_PEEK successfully set
[09:44:33] w7shell: WA_HAS_ICONIC_BITMAP successfully set
[09:44:33] w7shell: WA_FORCE_ICONIC_REPRESENTATION successfully set
[09:44:33] w7shell: WA_FLIP3D_POLICY successfully set
[09:44:33] w7shell: all green
[09:44:33] Startup time : 0:02.442012
[09:44:33] Opening track for playback: "http://online-radioroks.tavrmedia.ua/RadioROKS_Live"
[09:44:34] w7shell: taskbar button create notification got

 


WSH Panel Mod

Reply #1588
the clues are right there in the console output you posted. it tells you which panel and the line number of the offending code.

Code: [Select]
[09:44:33] Error: WSH Panel Mod ({FFF2B498-2C93-4683-9C3B-504C9370EC6B}): Ошибка выполнения Microsoft JScript:
Объект не поддерживает это свойство или метод
File: <main>
Line: 464, Col: 5

WSH Panel Mod

Reply #1589
the clues are right there in the console output you posted. it tells you which panel and the line number of the offending code.

Code: [Select]
[09:44:33] Error: WSH Panel Mod ({FFF2B498-2C93-4683-9C3B-504C9370EC6B}): ?????? ?????????? Microsoft JScript:
?????? ?? ???????????? ??? ???????? ??? ?????
File: <main>
Line: 464, Col: 5

From this line, I see an error that causes WSH Panel Mod


WSH Panel Mod

Reply #1591
Can I ask for your help in correcting these errors?

Quote
File: <main>
Line: 464, Col: 5
Quote
            this.ChangeTimer = window.CreateTimerInterval(Prop.ChangeAnimation.RefreshInterval);


File: <main>
Line: 767, Col: 3
Quote
window.WatchMetadb(metadb)



WSH Panel Mod

Reply #1592
sorry but i'm not fixing other people's scripts. i certainly wouldn't expect anyone else to fix mine.

i've updated my wiki page with some clarity on the matter.

Does your previously working script crash in this new version?

i know a posted a link earlier but it has just been edited with new content.



WSH Panel Mod

Reply #1595
@ZiZu1986
For some help on obsolete functions.....Have a look at some answers given to me from November 2011 at this page:
http://www.hydrogenaud.io/forums/index.php...883&st=1250

Down near the bottom of that page at Post #1274 user named r0lz has uploaded a script for a WSH Panel Mod artwork viewing panel.
Download it and try it out, maybe it will work better than the one you have now.

@marc2003
Thanks for starting a Wiki page about obsolete functions and adding some examples ++++
BTW, is anybody allowed to edit that page and add more examples?

That code block I posted previously:
Code: [Select]
function on_metadb_changed(metadb, fromhook) {
    Image && Image.OnNewTrack(metadb);    
    if (metadb)
        window.WatchMetadb(metadb)
    else
        window.UnWatchMetadb();
}

For an educational heads up, could you show us what code you would replace it with please.

WSH Panel Mod

Reply #1596
i knew creating those wiki pages would be a waste of time. oh well, at least i tried....

WSH Panel Mod

Reply #1597
Hey marc don't be so cynical, maybe you see REALLY OBVIOUS things but others don't!
I really appreciate your efforts helping everybody -including me- over all these years ++++

Surely there is ONE MORE MEMBER reading here who knows JavaScript programming!....there's got to be others....right???!!!
If you are reading this, can you please enlighten me on why my question comes across as totally inane by marc2003 - Thanks in advancwe ++++
Secondly, could you post the replacement code for that obsolete function I posted, I am curious to see the obviousness of it all.
Thanks again.

WSH Panel Mod

Reply #1598
Does your previously working script crash in this new version?

it looks like you need to pay special attention to the last paragraph.


i know this post was a reply to someone else but i thought you might have read read it.

here is the last paragraph just incase github is down or something....

Quote
As a final word, if you're not capable of making the changes yourself then you have 2 choices. Ditch the script or ditch this updated component and go back to the original. They are no changes regarding how settings are stored so it's perfectly safe to go between versions without losing anything.


any more dumb fuck posts and my replies are going to be a lot less polite.



WSH Panel Mod

Reply #1599
any more dumb fuck posts and my replies are going to be a lot less polite.

Any more threats like this and I will have to put on my moderator hat. The decision is yours. What is it going to be?

Sorry for doing this in public but I could not send you a personal message.