Difference between revisions of "Foobar2000:Components/foo enhanced playcount"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(foo_enhanced_playcount (Record time of every play, and retrieve Last.fm scrobbles): Adding note about foo_playcount)
(Information update)
Line 1: Line 1:
 
+
{{DISPLAYTITLE:foobar2000:Components/Enhanced Playback Statistics (foo_enhanced playcount)}}
 +
{{infobox foobar2000 component
 +
| name                = Enhanced Playback Statistics
 +
| screenshot          =
 +
| caption              =
 +
| module_name          = foo_enhanced playcount
 +
| developer            = MordredKLB
 +
| repository          = [https://github.com/kbuffington/foo_enhanced_playcount github]
 +
| released            =
 +
| released_ref        =
 +
| stable_release      = 4.3.3
 +
| stable_release_date  = 2021-03-21
 +
| preview_release      =
 +
| preview_release_date =
 +
| foobar2000_minimum  = 1.4
 +
| foobar2000_maximum  =
 +
| foobar2000_ui_module =
 +
| use                  =
 +
| license              =
 +
}}
 
= foo_enhanced_playcount (Record time of every play, and retrieve Last.fm scrobbles) =
 
= foo_enhanced_playcount (Record time of every play, and retrieve Last.fm scrobbles) =
 
This component records the timestamp of every single play that foobar makes. If a username is supplied, and last.fm support is enabled, it can also retrieve the timestamp of every scrobble of a song as well.
 
This component records the timestamp of every single play that foobar makes. If a username is supplied, and last.fm support is enabled, it can also retrieve the timestamp of every scrobble of a song as well.

Revision as of 09:08, 20 September 2022

Enhanced Playback Statistics

foo_enhanced playcount
Developer(s) MordredKLB
Repository github
Release information
Initial release
Stable release 4.3.3 (March 21, 2021)
Preview release
foobar2000 compatibility
Architecture {{{foobar2000_architecture}}}
Minimum version 1.4
Maximum version
UI module(s) N/A
Additional information
Use
License
Discussion thread {{{discussion_thread}}}
View all components

foo_enhanced_playcount (Record time of every play, and retrieve Last.fm scrobbles)

This component records the timestamp of every single play that foobar makes. If a username is supplied, and last.fm support is enabled, it can also retrieve the timestamp of every scrobble of a song as well.

While foo_enhanced_playcount can be used in any theme, to get maximum use out of it you'll need to use a panel that supports javascript, like foo_jscript_panel, or foo_wsh_panel.

Note: This component is not a replacement for foo_playcount. This component's functionality is improved by the presence of foo_playcount. Do not uninstall foo_playcount!

New fields provided

  • %played_times% - Date formatted list: ["2012-08-04 15:58:37", "2012-12-10 14:40:46", "2018-01-02 23:38:13"]
  • %played_times_js% - JS timestamp list: [1344117517000, 1355172047000, 1514957893431]
  • %played_times_raw% - raw foobar timestamps: [129885911170000000, 129996456470000000, 131594314930000000] - There's probably no reason to ever use this.
  • %lastfm_played_times% - Date formatted list of scrobbles: ["2012-08-04 15:58:37", "2012-12-10 14:40:46", "2018-01-02 23:38:13"]
  • %lastfm_played_times_js% - JS timestamp list: [1344117517000, 1355172047000, 1514957893000]
  • %lastfm_play_count% - Count of last.fm plays, a la %play_count%: 5
  • %lastfm_added% - Single date: "2012-08-04 15:58:37"
  • %lastfm_first_played% - Always exactly the same as %lastfm_added%. Use whichever one makes most sense logically
  • %lastfm_last_played% - Single date: "2018-04-04 15:58:37"

Code Samples

To consume the Array's of timestamps, you'll need to parse the response:

   var raw = fb.TitleFormat('[%played_times_js%]').Eval();
   var playedTimes = [];
   try {
   	playedTimes = JSON.parse(raw);	// this is required because the value is a string
   } catch (e) {
   	fb.trace('<<< ERROR parsing JSON >>>');  // you probably don't need this try/catch, but it was helpful in my debugging
   }
   for (i=0; i < playedTimes.length; i++) {
   	var p = new Date(playedTimes[i]);
   	// do something with this value
   }

More code samples in the official thread.

Links

Official Discussion Thread

Changelog