foobar2000 auf Deutsch

foobar2000 => Plugins => Thema gestartet von: Foo Foo in 09. Dezember 2009, 20:41:46

Titel: Rating Frage
Beitrag von: Foo Foo in 09. Dezember 2009, 20:41:46
Gibt es eine Möglichkeit das Rating seiner Musik Files
nicht in das Tag zu schreiben sondern in einer Datenbank?
Titel: Re: Rating Frage
Beitrag von: yellowshark in 10. Dezember 2009, 00:32:51
Such mal im Hydrogenaudi-Forum nach foo_playcount_sql, das genau diesen Zweck erfüllt. Außer der entsprechenden dll benötigt man die (kostenlose) Microsoft SQL Server Compact Edition. Kann man aber alles im entsprechenden Thread nachlesen. Das Teil kann auch noch mehr als das offizielle foo_playcount.
Titel: Re: Rating Frage
Beitrag von: tocothetronic in 10. Dezember 2009, 00:47:03
tedgo hat doch sowas auch in seinem darkone, allerdings ohne dieses plugin, keine ahnung wie er das gemacht hat, ich benutze das kaum? vielleicht sagt er noch was dazu, hab mir das skript dazu noch nicht angesehen, glaub auch nicht dass ich soviel davon verstehe. ich kuck mal kurz rein....ne, nix verstanden, aber vlt hats was mit dem cdda zu tun?
Titel: Re: Rating Frage
Beitrag von: tedgo in 10. Dezember 2009, 13:17:33
Das geht auch mit dem offiziellen foo_playcount Plugin (wie in meiner Konfiguration).
Da wird das Rating auch nur in die Datenbank geschrieben, solange man die Infos nicht mit den Tags synchronisiert.
Die Musikdateien müssen aber in der Media Library vorhanden sein, da das Plugin nur diese Dateien berücksichtigt.

Auch foo_customdb schreibt die Ratings nur in die Datenbank.
Titel: Re: Rating Frage
Beitrag von: Foo Foo in 10. Dezember 2009, 19:04:18
Habe meine Bewertung bis jetzt mit einem track info skript getagt.

$button($get(rate.x),$get(rate.y),0,0,18,16,'./images/rating/set'$get(no.set)'/r'$get(rating)'.png','./images/rating/set1/r1.png',TAG:SET:rating:1,TOOLTIP:"Average")

Oder mit Quick Tager via Kontextmenue.

Habe Foo Playcount mal getested und mit Qiuck Tagger einen Track mal testweise berwetet.
Die mp3 hatt ein rating Tag erhalten.
Anschließend die bewertung wieder entfernt und das Rating Tag wurde gelöscht.
Aber die Bewertung wurde wohl in die Datenbank geschrieben und wird immer noch angezeigt.
Wie kann ich nur Foo Playcount ansprechen ohne das Tag zu schreiben?
Funktionieren dann meine Autoplaylisten noch mit %rating% sortierung ?
Man kann ja nur unter advanced etwas einstellen
Haken rein oder raus.
Werd nicht so ganz schlau daraus.


Titel: Re: Rating Frage
Beitrag von: tedgo in 10. Dezember 2009, 20:14:32
Quick Tagger schreibt in die Tags, ist bei dem Namen des Plugins ja eigentlich klar... ;)

Wenn du nur und ausschließlich in die Datenbank bewerten willst, auf die Datei rechtsklicken --> Playback Statistics --> Rating.
Der Haken unter "Advanced" sollte dann NICHT gesetzt sein, sonst wird mit den Tags synchronisiert!

Du kannst dir fürs Rating auch einen Button anlegen, da würde ich aber nicht das Trackinfo mod nehmen, sondern eher Buttons in der Columns UI Buttonbar oder im WSH Panel mod erstellen (das TIM benötigt als Kommando fürs Datenbank-Rating nur "1" - "5", also z. B. $button($get(rate.x),$get(rate.y),0,0,18,16,'./images/rating/set'$get(no.set)'/r'$get(rating)'.png','./images/rating/set1/r1.png',1,) was u. U. zu Konflikten mit anderen Kommandos führen kann, die ebenfalls "1" - "5"  lauten).

Deine Autoplaylists funktionieren selbstverständlich weiterhin, wenn du diese anhand von %rating% und nicht $meta(rating) angelegt hast.
Titel: Re: Rating Frage
Beitrag von: Foo Foo in 11. Dezember 2009, 22:29:59
Danke für die Hilfe.
Nutze jetzt ein WHS Panel Mod Skript für meine Ratings.

:top:
Titel: Re: Rating Frage
Beitrag von: Foo Foo in 15. Dezember 2009, 23:02:55
Habe das WHS Skript jetzt ein paar Tage getested.
Habe beim Start wenn ich die Maus über das Feld bewege einen Skript Error.
Aber sonst funkioniert es einwandfrei.
Hatt jemand einen Track info Mod Skript was funktioniert bekomme meins nicht richtig umgeschrieben.

Hier mein WHS Skript...


function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }

var g_drag = 0;
var bool;
var g_metadb;
var imgname;
var rating;
var nrating;
var lrating;
var img;
var hofset=0;
var imgw=15;
var g_tfo = fb.TitleFormat("%rating%");

on_item_focus_change();

function on_paint(gr){
//var info = g_metadb.GetFileInfo();
if (g_metadb) {
for (i = 1; i < 6; i++) {
img = gdi.image(fb.FoobarPath + "images\\rating\\"
+ ((i > (g_drag ? lrating : rating)) ? "star-off" : "star" + (g_drag ? ((i==rating)?((i==lrating)?"-kill":"-hover") :"-hover") : "")) + ".png");
// + ((i > (g_drag ? lrating : rating)) ? "No" : "") +"Star" + (g_drag ? ((rating != lrating) ? "-hover" : "") : "") + ".png");
// + ((i > (g_drag ? lrating : rating)) ? "No" : (g_drag ? ((rating != lrating) ? "Red" : "") : "")) +"Star.png");
// + (g_drag ? ((rating != lrating) ? "Blue" : "") : "") + ((i > (g_drag ? lrating : rating)) ? "No" : "") +"Star.png");
gr.DrawImage(img, hofset+imgw*(i-1), 1, 16, 16, 0, 0, 16, 16);
}
}
}

function on_mouse_wheel(delta){}

//function on_mouse_lbtn_up(x,y){
//if (lrating !=rating) {if (g_metadb) {
//bool = g_metadb.UpdateFileInfoSimple("RATING",lrating);
//}}
//else {
//bool = g_metadb.UpdateFileInfoSimple("RATING",0);}
//}

function on_mouse_lbtn_up(x,y){
// fb.trace("button up");
if (lrating !=rating) {if (g_metadb) {
bool = fb.RunContextCommandWithMetadb("Rating/"+((lrating==0) ? "<not set>" : lrating),g_metadb);
}}
else {
bool = fb.RunContextCommandWithMetadb("Rating/<not set>",g_metadb);}
}

function on_mouse_move(x, y) {
if (g_metadb) {
g_drag = 1;
nrating = Math.ceil((x-hofset)/imgw);
if (nrating > 5) nrating = 5;
if (nrating != lrating) {
lrating = nrating;
window.Repaint();
}
}
}
function on_mouse_leave() {
on_metadb_changed()
}

function on_item_focus_change() {
fb.trace("itm focus changed");
if (g_metadb) {window.UnwatchMetadb();}
//g_metadb = fb.GetFocusItem();
if (fb.IsPlaying | fb.IsPaused) g_metadb = fb.GetNowPlaying();
if (g_metadb) {
on_metadb_changed();
window.WatchMetadb(g_metadb);
}

}
function on_metadb_changed() {
g_drag = 0;
// fb.trace("changed");
rating = g_tfo.EvalWithMetadb(g_metadb);
if (rating == "?") {rating = 0;}
lrating = rating;
window.Repaint();
}

function on_playback_new_track(metadb) {on_item_focus_change();}
//EOF


Code in Codebox eingefügt - tedgo
Titel: Re: Rating Frage
Beitrag von: tedgo in 16. Dezember 2009, 00:26:40
Hab mir das Script jetzt nicht angeschaut, aber der häufigste Script-Error beim Mousehover liegt daran, dass die Bilder nicht zugeordnet werden können (das Panel kann sie nicht finden. Überprüfe also bitte deine Pfade und ob alle Bilder vorhanden sind).

Fürs Trackinfo mod habe ich dir bereits oben eine Beispielzeile gepostet, die funktioniert. Solange du nicht andere (möglicherweise selbst angelegte) Commands hast, die auf "1" - "5" enden.
Titel: Re: Rating Frage
Beitrag von: Foo Foo in 16. Dezember 2009, 09:45:36
@tedgo

Das WHS Skript funktioniert eigentlich super.
Die Images werden gefunden und der Fehler tritt nur auf wenn man beim Programmstart (Stop)
die Maus über das Feld bewegt.
Wenn ein Track ausgewählt wurde ist es egal ob play pause oder stop
das Skript läuft stabil.

Habe die Vermutung das der Fehler auftritt weil das Skript
keine Info über das Rating bekommt da ja noch keine Datei ausgewählt wurde.

Ich nutze ja den PSS und man könnte ja eine Code einfügen (show pannel)
der das WHS Pannel Element einblendet sobald ein Song abgespielt wird.
Schalte meine Pannels alle mit der Button Funktion um daher habe ich
keinen Plan wie der Befehl hierfür lauten müsste.
Habe folgendes schon probiert...

$if(%_trackinfo_notrack%, $showpanel (ratingWSH,1), $showpanel (ratingWSH,0))

oder...

$showpanel(ratingWSH,$ifequal(%ps_isplaying%,1,1))

funtzt alles nicht. Wie muss der Befehl lauten? (einblenden wenn Track abgespielt wird und dann nicht mehr ausblenden) Danke Dir vielmals für Deine Hilfe.

:top:




Titel: Re: Rating Frage
Beitrag von: tedgo in 16. Dezember 2009, 21:14:28
$showpanel_c(ratingWSH,$if(%ps_isplaying%,1,0))

Ich würde das Übel aber an der Wurzel packen...
Kann das Script momentan nicht austesten, aber in der foobar2000 Console wird bei jedem Script Error die Zeile/der Grund angezeigt, die/der den Fehler verursacht.Poste doch mal die Einträge der Console, dann kann ich (oder jemand anderes) dir vielleicht helfen.

Allerdings denke ich, dass die Frage zu dem Script und deren Beantwortung doch etwas zu speziell für diesen Thread sind (deine Anfangsfrage wurde ja eigentlich beantwortet...), also schlage ich vor, dass du einen neuen Thread zu dem Rating Script eröffnest ;).
Titel: Re: Rating Frage
Beitrag von: Foo Foo in 16. Dezember 2009, 21:32:45
Danke Dir!!!

Kann mit dieser Lösung erstmal leben.
Das oben aufgeführte Skript ist aus der Config von Xchange von Deinem Kollegen Br3tt

http://br3tt.deviantart.com/art/Xchange-3-5-for-foobar-134241412 (http://br3tt.deviantart.com/art/Xchange-3-5-for-foobar-134241412)
er hat ein Skript WSH RATING DB (rating in der database)
und WSH RATING (rating im tag)
Ich bin mit meiner Skripterei erst am Anfang kann noch nicht alles so nachvollziehen. :crazy2:

Konsole?

Titel: Re: Rating Frage
Beitrag von: tedgo in 17. Dezember 2009, 10:52:32
Menü --> View --> Console

Soweit ich weiß, hat Br3tt das aber genauso gelöst (mit $showpanel_c).