WSH Panel mod - Scriptbeispiele (Seekbar, Rating, Album-Rating, Coverart & mehr)

Begonnen von TomPro, 16. Juni 2009, 19:24:54

Vorheriges Thema - Nächstes Thema

Foo Foo

Funktioniert bei mir jetzt auch!
Was hast Du oder was soll ich genau anpassen
''Hast du die Pfade auch in der commons.js (#179-184) angepasst ?''

Danke!

grimes

Mein neues Projekt:

Foolyrica


Foolyrica holt sich Lyrics von der Webseite http://www.chartlyrics.com/

Spielt man einen Track an, so werden maximal 25 Vorschläge geliefert, um welches Lied es sich handelt.
Die Internetverbindung wird im Kontextmenü des Panels mit "Search Song (Internet)" hergestellt.
Mit der linken Maustaste (lbtn) kann man die Vorschläge wechseln.
Hat man den richtigen Song gefunden, so kann mit "Get Lyrics (Internet)" der Songtext heruntergeladen werden.




Download:

(9.8.2010) 0.1 alpha
(9.8.2010) 0.1 alpha FIX
(10.8.2010) 0.2 alpha: http://pastebin.de/8975
(11.8.2010) 0.3 beta: http://pastebin.de/8994
(14.8.2010) 0.4: http://pastebin.de/9051




grimes

FooTour

Greift auf die API von http://www.bandsintown.com/home zurück.

Es werden die Tourdaten des gerade gehörten Künstlers angezeigt.



(Bild: Event FooTour v1.0)





(Bild: Weltkarte FooTour v1.0)


Installation
(Neu! v1.0) Download der Weltkarte (2048x1024, 233kB):http://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57752/land_shallow_topo_2048.jpg
(Copyright: NASA, NASA Terms of Use: For all non-private uses, NASA's Terms Of Use are as follows:   1. The imagery is free of licensing fee   2. NASA requires that they be provided a credit as the owners of the imagery)
Umbenennen: land_shallow_topo_2048.jpg -> world-map.jpg

Falls euch die Karte nicht gefällt, es kann jede Weltkarte mit äquidistanter zylindrischer Projektion verwendet werden.
Beispiel: http://visibleearth.nasa.gov/view.php?id=73751

(seit v0.6) Download FooTour-Banner: http://www.abload.de/image.php?img=footouro74r.png
Umbenennen: footouro74r.png -> footour.png

Die Weltkarte und FooTour-Banner werden in den Ordner (Profile)\foobar2000\pictures\ kopiert.
(Falls nicht vorhanden, bitte den Ordner "pictures" im Foobar2000-Profilordner erstellen)

Download

(14.8.2010) v0.1
(16.8.2010) v0.2
(17.8.2010) v0.3
(18.8.2010) v0.4
(18.8.2010) v0.5

(31.8.2010) v0.6: http://pastebin.de/9563
Völlig neu überarbeitete Version (update empfohlen)
(1.9.2010) v0.7: http://pastebin.de/9607
(1.9.2010) v0.8: http://pastebin.de/9612
(3.9.2010) v0.9: http://pastebin.de/9640
FIX: minor bugs
ADD: Distance Home/Stage/Tour
ADD: Back to (last) playing artist
(3.9.2010) v1.0: http://pastebin.de/9654
CHG: New world map, old one was incomplete, please replace map
CHG: Code updated for new map





Foo Foo

Ich möchte anstelle eines Bildchens einen textbutton haben.
Segoe UI,8,normal
Wie bekomme ich das hin?  ???


// ==PREPROCESSOR==
// @import "%fb2k_path%skin\mono_lite_2\scripts\common.js"
// @import "%fb2k_path%skin\mono_lite_2\scripts\tooltip_buttons.js"
// ==/PREPROCESSOR==

function on_paint(gr){
var FP = fb.ComponentPath.replace("components","skin");
var icon = gdi.Image(FP+ "mono_lite_2/menu.png");
gr.FillSolidRect(0,0,ww,wh,RGB(220,220,220));
gr.DrawImage(icon,0,0,20,18,0,0,20,18);
}

//Preferences
function on_mouse_lbtn_down(x, y) {
var basemenu = window.CreatePopupMenu();
    var ret;

    basemenu.AppendMenuItem(MF_STRING, 1, "Open a custom station...");
    basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
    basemenu.AppendMenuItem(MF_STRING, 2, "Personal Last.fm radio");
    basemenu.AppendMenuItem(MF_STRING, 3, "Recommended Last.fm radio");
    basemenu.AppendMenuItem(MF_STRING, 4, "Neighbours' Last.fm radio");
    basemenu.AppendMenuItem(MF_STRING, 5, "Playlist Last.fm radio");
    basemenu.AppendMenuItem(MF_SEPARATOR, 0, 0);
    basemenu.AppendMenuItem(MF_STRING, 6, "Friends of foobar2000 group radio");
   
    var ret = basemenu.TrackPopupMenu(x, y);
switch (ret) {
case 1:
            fb.RunMainMenuCommand("File/Open Last.fm Radio Station/A custom Last.fm station.");
            break;         
case 2:
            fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your personal Last.fm radio.");
            break; 
    case 3:
            fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your recommended Last.fm radio.");
            break; 
    case 4:
            fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your neighbours' Last.fm radio.");
            break; 
case 5:
    fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Your playlist Last.fm radio.");
            break; 
    case 6:
            fb.RunMainMenuCommand("File/Open Last.fm Radio Station/Open Friends of foobar2000 Last.fm group.");
            break; 
    }       
}

function on_mouse_mbtn_down(x, y) {
    window.ShowConfigure();
}

//Fixed coords for menu
function on_mouse_rbtn_down(x, y) {

}function on_mouse_rbtn_down(x, y, vkey){
rbtnDown = vkey==6 ? true : false;
}

function on_mouse_rbtn_up(x, y, vkey){
if (rbtnDown) {
rbtnDown=false;
return vkey==4 ? false : true;
} else
return true;
}

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

grimes

FooTheEchoNest

Benutzt die APIs von The Echo Nest.
Zeigt Informationen über die Künstler und gespielten Lieder aus unterschiedlichsten Quellen an.





(Bild: FooTheEchoNest v0.3)


Installation:

Download des "Powered By The Echo Nest" Banners:
http://the.echonest.com/media/images/logos/140x50_dk.gif

Das Banner wird in den Ordner (Profile)\foobar2000\pictures\ kopiert.
(Dies ist Bestandteil der Lizenzvereinbarung mit The Echo Nest)

Bitte missbraucht den API-Key nicht, sonst wird er gesperrt!!


Download:

(21.8.2010) v0.1 Testversion
ADD: biographies
(21.8.2010) v0.2.1 Testversion
(22.8.2010) v0.3 Testversion
ADD: familiarity, hotttnesss
ADD: reviews
(25.8.2010) v0.4
ADD: blogs
ADD: news
ADD: terms
(26.8.2010) v0.5
FIX: performance
ADD: song (key, tempo, etc.)
(27.8.2010) v0.6 (bugfix release)
FIX: performance / cpu verbrauch / optimisierung
(27.8.2010) v0.7
ADD: auto retrieve
ADD: similar artists
(28.8.2010) v0.8
maintenance/bugfix release
(29.8.2010) v0.9: http://pastebin.de/9473
ADD: remember artist/title + data
(30.8.2010) v1.0: http://pastebin.de/9531
(30.8.2010) v1.1: http://pastebin.de/9542
maintenance/bugfix release
(8.9.2010) v1.2: http://pastebin.de/9784
ADD: discover similar artists
ADD: history
ADD: back to (last) playing artist
ADD: audio samples urls (to hear: copy url, paste File | Add Location...)
(10.9.2010) v1.3: http://pastebin.de/9842
FIX: bugs, glitches
(11.9.2010) v1.3.1: http://pastebin.de/9867
FIX: bug preventing APIs access







grimes

Stop after current album v2

Diese Umsetzungen gibt es bereits:



Die neue Version basiert auf einem etwas geänderten Konzept:


  • Wenn tracknumber = totaltracks, dann Stop after current

Download: http://pastebin.de/9897



qwert73

Hallo grimes,

ich wollte mal das Script zu EchoNest ausprobieren und habe es soweit im WSH Panel laufen. Ich habe nun zwar ein Kontextmenü, aber leider eine leere Oberfläche. Das wird wohl daran liegen, dass nirgendwo der Api-Key eingetragen wurde. Wo mach ich das denn nun?

grimes

API key ist schon beim Skript dabei.
Ich habs so gemacht, dass man standardmäßig manuell mit dem Internet verbinden muss, d.h. "The Echo Nest Song (Internet)" betätigen muss.
(Geht auch automatisch mit auto)

qwert73

Ach so, Danke! :)

Nachtrag
Kannst Du mir sagen, wie ich das Tempo eines Songs interpretieren soll. Wenn es die BPM sein sollen, dann ist das bei vielen Tracks Blödsinn.

grimes

Das sind die bpm.
Kann sein, dass die bpm z.B. von einer live-Version stammen und so unterschiedlich sind. Kannst zwischen allen Variationen eines Songs durch klick auf "roten" Bereich blättern.

Foo Foo

Ich habe ein Whs Script erstellt mit dem man foo_run Funktionen ausführen kann...


//den foo_run Service im Properties Fenster änderbar (default ist Mp3 Tag)
var tf_string01 = window.GetProperty("foo_run Service 01","Mp3 Tag");

//der foo_run Service Menuepunkt im Pop Up Menue
Menu.AppendMenuItem(0, 10, tf_string01);

//und der eigentliche Befehl der die Aktion ausführt
case 10:
fb.RunContextCommand("Run service/"+tf_string01);
break;


foo_run.dll muss im components Ordner vorhanden sein und
folgendes muss eingetragen sein..

Preferences - Tools - Run services

Label: Mp3 Tag

Path: ".\applications\Mp3tag\Mp3tagPortable.exe" "%_path%"


habe den Pfad relativ angegeben es handelt sich um das
foobar Verzeichniss..

foobar2000\applications\Mp3tag\Mp3tagPortable.exe" "%_path%

Ich würde gerne mein script so umschreiben das ich die Aktionen auch ohne foo_run
ausführen kann nur mit WHS Pannel.

Kann mir jemand weiterhelfen?  :-\

Danke!









tedgo

So, ich belebe den alten Thread nochmal :)

Habe einen Textbutton "kreiert", der umfangreich konfigurierbar ist.
Er sollte sowohl mit dem WSH Panel mod als auch mit dem neueren JScript Panel funktionieren.

Vielleicht will das ja mal jemand testen.
Einfach den Ordner in den Profilpfad der jeweiligen foobar2000-Installation entpacken, ein Panel (WSH Panel mod oder JScript Panel) zur Config hinzufügen und die Datei "buttontest.txt" importieren.
Im "Configure"-Fenster stehen dann einige Hinweise zum jeweiligen Button.

Einige mögliche Erscheinungsbilder habe ich mal schnell im Beispielscript (zum Herumspielen mit den insgesamt bis zu 26 Optionen) erstellt:


Würde mich freuen, wenn ihr mir mitteilt, ob der Button sinnvoll ist, oder ob es noch Verbesserungsvorschläge gibt.
Und wer sich mit Javascript auskennt, der kann sich ja mal die Scripts anschauen. Vielleicht findet ja jemand einen Fehler darin oder hat Vorschläge zur Optimierung des Codes :)

Es gibt zahlreiche Optionen, die natürlich nicht alle gleichzeitig aktiviert werden müssen und auch nicht für jeden Button einzeln (man hat ja üblicherweise in einem Panel mehrere Buttons des gleichen Stils).

Besonderheit:
Für die Erstellung der Buttons müssen zwei Einträge ins Script:
Einmal die Erstellung des Objektes global und dann noch die Positionierung des Buttons.
Falls man nämlich - wie ich - häufig relative Größenangaben hat, ändert man die Positionierung besser in function on_size().
Da ich aber nicht jedesmal das ganze Objekt in on_size neu erstellen möchte, gehe ich diesen "merkwürdigen" Weg.
Obwohl es von der Performance eher egal wäre... ist mehr zur Beruhigung meines Gewissens :D

Viel Spaß beim Testen!

grimes

Aw, crashed!  :(

ZitatJScript Panel (Buttontest v1.0 by tedGo, based on a sample created by T.P. Wang, using partial code by super-gau)
Laufzeitfehler in JavaScript:
Der Wert der Eigenschaft "RGBA" ist Null oder undefiniert, kein Function-Objekt
File: <main>
Line: 10, Col: 1
<source text only available at compile time>

EDIT:
Ok, hab es jetzt hinbekommen. (Appdata) foobar2000/buttontest
Ich werd es mal ausprobieren.

EDIT2: Funktioniert gut.

huber71

Aw, Crashed ...

Scripting Engine Initialization Failed (Buttontest v1.0 by tedGo, based on a sample created by T.P. Wang, using partial code by super-gau, CODE: 0x80020101)
Check the console for more information (Always caused by unexcepted script error).

tedgo

Ja, hab das wohl missverständlich ausgedrückt...

Also der ZIP-Ordner muss als "buttontest"-Ordner in den Profilpfad von foobar2000 (in einer Standardinstallation ist das %appdata%\foobar2000, in einer portablen Installation ist das der foobar2000-Programmordner) entpackt werden ;)

@huber59
Und was steht in der Console?