Skip to content

bwo/getemx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GETEMX

getemx reads the .emx files used by Emusic and downloads the files they describe. Its behavior is controlled by the file ~/.emxdownloader, which contains instructions for file naming, art downloading, etc (see below in Invocation). It downloads files using either wget, curl, or Haskell's interface to libcurl (though I would be surprised if anyone who had libcurl installed didn't also have the curl binary).

Building & Installation

It should be possible to build and install getemx using cabal.

Invocation

getemx accepts no options on the command line. Its arguments should consist simply of .emx files; the simplest way to invoke it is:

$ getemx *.emx

where the .emx files are in the current directory.

getemx will read a file in your home directory called ".emxdownloader" which can define options to control its behavior. Options may either be boolean or string; the values of boolean options must be one of "f", "t", "false", or "true" while string options may be any string. The syntax of the .emxdownloader file is very simple:

option = value

Any amount of whitespace may occur before or after the "=". The following are boolean options:

  • replace_underscores: if true, underscores in the filename will be replaced by spaces. True by default.
  • replace_apostrophe_identity: if true, the string "'" in filenames will be replaced by "'". True by default.
  • get_art: if true, cover art will be downloaded for each album. True by default.

Currently the only string options control the filenames of the downloaded files. There are two classes here: dldir specifies a directory relative to which further processing will take place, while dlfmt and dlfmt_multidisc specify how to process individual files. The latter two accept a number of replacement options:

Format string: Replaced by:
%(a) Artist name
%(A) Album name
%(n) Track number
%(t) Track name
%(D) Total number of discs in set
%(d) Number of present disc in set (e.g. 2 out of 4)
%(l) Label
%(e) File extension
%(g) Genre
%% %

The defaults for the string options are:

  • dldir: .
  • dlfmt: %(a)/%(A)/%(a) - %(A) - %(n) - %(t)
  • dlfmt_multidisc: %(a)/%(A): %(d)/%(a) - %(A): %(d) - %(n) - %(t)

dlfmt_multidisc is used if a track is being downloaded that belongs to a set with more than one disc; otherwise, dlfmt is used. Note that at present the default for dlfmt_multidisc will probably do the wrong thing on OS X. Note also that neither of the default values ends with %(e): the file extension is supplied automatically if it is not explicitly specified.

A ~/.emxdownloader file that set every option to its default value could look like this:

get_art = t
replace_underscores = t
replace_apostrophe_identity = t
dldir = .
dlfmt = %(a)/%(A)/%(a) - %(A) - %(n) - %(t)
dlfmt_multidisc = %(a)/%(A): %(d)/%(a) - %(A): %(d) - %(n) - %(t)

"Could" because one could also write "true" out in full for "t".

About

read + fetch from emusic .emx files

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages