Package: lastfm-cg
lastfm_cg : lastfm collage generatorGenerate covers collage from albums listened by a lastfm user.This utility needs a valid config file with your lastfm API keys (get them atlast.fm/api.) in~/.config/lastfm_cg/config.ini(the config file will be created at first launch, you can also seeconfig_sample.inifor an example).
You can also use the--API_KEYand--API_SECRETargument to set your lastfm API key.It also caches the image files downloaded thanks to therequests-cachelibrary. If you don't want the script to create an sqlite file in your~/.local/share/lastfm_cg/directory, you will have to launch the script with the-d/--disable_cacheflag.A twitter bot and a mastodon bot are also available in the bot_lastfm_cg folder. You can see them in action on my ownTwitterandMastodonaccounts.Some systemd service are also available in the systemd-service directory to run the lastfm_cg script at a given time. You will have to change them to match your configuration, more specifically theWorkingDirectoryandExecStartdirective.Requirementspylastnumpypillowrequestsrequests-cachetqdmInstallationClassic installation :pip install lastfm_cgIf you are an Archlinux user, you can install the AUR packagelastfm_cg-git.Run from sourceFirst method (installing the lastfm_cg package)git clone https://github.com/dbeley/lastfm_cg
cd lastfm_cg
python setup.py install
lastfm_cg -hSecond method (installing the lastfm_cg package with pipenv)git clone https://github.com/dbeley/lastfm_cg
cd lastfm_cg
pipenv install '-e .'
pipenv run lastfm_cg -hUsageShow the help and the available options.lastfm_cg -husage: lastfm_cg [-h] [--debug] [--timeframe TIMEFRAME] [--rows ROWS]
                 [--columns COLUMNS] [--username USERNAME] [-d] [--top100]
                 [--API_KEY API_KEY] [--API_SECRET API_SECRET]
                 [--output_filename OUTPUT_FILENAME]

Create lastfm album collage for one or several lastfm users.

optional arguments:
  -h, --help            show this help message and exit
  --debug               Display debugging information
  --timeframe TIMEFRAME, -t TIMEFRAME
                        Timeframe (Accepted values : 7day, 1month, 3month,
                        6month, 12month, overall. Default : 7day).
  --rows ROWS, -r ROWS  Number of rows (Default : 5).
  --columns COLUMNS, -c COLUMNS
                        Number of columns (Default : number of rows).
  --username USERNAME, -u USERNAME
                        Usernames to extract, separated by comma.
  -d, --disable_cache   Disable the cache
  --top100              Create a top 100 image. Will override columns/rows.
  --API_KEY API_KEY     Lastfm API key (optional)
  --API_SECRET API_SECRET
                        Lastfm API secret (optional)
  --output_filename OUTPUT_FILENAME
                        Output filename (optional, example: output.png)Generate a collage for the user USER of the size 5x5 for the last 7 days (default values).lastfm_cg -u USER
lastfm_cg -u USER -t 7day -r 5Generate a collage for the user USER of the size 10x8 for the last year.lastfm_cg -u USER -t 12month -r 10 -c 8Generate a top 100 collage for the user USER for all its listening history.lastfm_cg -u USER --top100 -t overallGenerate collages for the users USER and USER2 of the size 3x30 for all their listening history.lastfm_cg -u USER,USER2 -t overall -r 3 -c 30
lastfm_cg --username USER,USER2 --rows 3 --columns 30 --timeframe overallSample results5 rows x 8 columnstop 100Systemd serviceYou will have to change the command executed with the systemd service (ExecStartoption) and the working directory (WorkingDirectoryoption).cp systemd-service/* ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now lastfm_cg_weekly.timer