you could modify the WSH script so it bypasses last.fm and increments the play count by itself.
first you need to go to file>preferences>tools>custom database.
click on the action tab.
click add and then use the following settings:
Display: Customdb Add 1
Field: LASTFM_PLAYCOUNT_DB
Update: Contextmenu
Value: $add(1,$if2(%LASTFM_PLAYCOUNT_DB%,0))
now restart foobar before doing anything else.
now right click the WSH panel, find where it says..
function on_playback_time() {
ps.playback_time();
}
replace it with
function on_playback_time() {
ps.elapsed_time++;
if (ps.elapsed_time == ps.target_time)
fb.RunContextCommandWithMetadb("Customdb Add 1", p.metadb, 8);
}
now you're updating the playcount locally, there are no longer restrictions on the length of song or how much of it needs to be played before counting. if you want to change that, you go back in to the panel and find this...
function on_playback_new_track() {
ps.playback_new_track();
}
replace it with
function on_playback_new_track() {
ps.time_elapsed = 0; //do not edit this
ps.target_time = Math.min(Math.floor(fb.PlaybackLength / 2), 240); //just edit this.
}
currently the target time is half the length or 4 minutes if the track is longer than 8 minutes. but now you're free to edit that however you like. just in case it isn't clear, the time must be specified in seconds.