# description: file to log to. Usually used in daemon mode.
# default: unset, logging to stdin/stdout
#logfile =
-##
## VERBOSITY
# type: string
# * warning
# * error
verbosity = info
-##
#
#######################################################################
# contrib = Scrobble, AwesomePlugin,
# ExperimentalTest, AnotherTest
# default:
+# internal = "Crop, Lastfm, RandomFallBack"
+# contrib =
# description: Plugins list declaration.
# Optional plugin's configuration must be in its own section.
# For instance a "AwesomePlugin" declared here
# Two plugins sources are available, internal and contrib
#
internal = Crop, Lastfm, RandomFallBack
-#contrib = PlaceHolder
+#contrib =
## HISTORY_DURATION
# type: integer (in hours)
# track/title
#
history_duration = 8
-##
## USER_DB # NOT IMPLEMENTED #
# type: boolean
# description: Load user database to find similar artists
-# User DB is loaded from $XDG_CONFIG_HOME/sima/sima.db
+# User DB is loaded from $XDG_CONFIG_HOME/mpd_sima/sima.db
# Use simadb_cli to edit/add entries.
user_db = false
-##
-
-#####################################################################
-# You do not need to set up options below.
-# But well, you got bored of the way sima is behaving, then go ahead
-# play with it :)
## QUEUE_LENGTH
# type: integer
# default: 1
# description: Queue length triggering tracks addition
queue_length = 1
-##
######################### PLUGINS #####################################
-#
-[placeholder]
-key = Value
[crop]
## CONSUME
# EchoNest or LastFM
#[echonest]
[lastfm]
-## QUEUE_MODE # NOT COMPLETED #
+## QUEUE_MODE
# type: string
# description: The default is to queue random tracks from similar artists.
# Possible values:
# track : Will queue tracks from similar artists (default).
-# top : Will queue top tracks from similar artists. # NOT IMPLEMENTED #
+# top : Will queue top tracks from similar artists.
# album : Will queue whole album from similar artists.
queue_mode = track
# description: how many albums the plugin will try to get
album_to_add = 1
-#
-#######################################################################
+## CACHE
+# type: boolean
+# description: whether or not to use on-disk persistent http cache
+# * When set to "true", sima will use a persistent cache for its http client.
+# The cache is written along with the dbfile in:
+# $XDG_CONFIG_HOME/mpd_sima/http/<web_service>
+# Toggling http cache is only available for last.fm. EchoNest have rate limits,
+# we must then pay attention to bandwidth and use of caching is required.
+# * If set to "false", caching is still done but in memory.
+# default: True
+cache = True
#
####################### END OF CONFIGURATION ##########################
# local import
from ...lib.simafm import SimaFM
from ...lib.webserv import WebService
-from ...lib.cache import FileCache
+from ...lib.cache import FileCache, DictCache
class Lastfm(WebService):
self.ws = SimaFM
# Set persitent cache
vardir = daemon.config['sima']['var_dir']
- SimaFM.cache = FileCache(join(vardir, 'http', 'LastFM'))
+ persitent_cache = daemon.config.getboolean('lastfm', 'cache')
+ if persitent_cache:
+ SimaFM.cache = FileCache(join(vardir, 'http', 'LastFM'))
+ else:
+ SimaFM.cache = DictCache()
# VIM MODLINE