2019-10-03 19:06:44 +01:00
|
|
|
from fmframework.io.csv import export_scrobbles
|
2020-07-01 10:52:47 +01:00
|
|
|
from fmframework.net.network import Network, LastFMNetworkException
|
2019-03-16 02:34:09 +00:00
|
|
|
|
2019-10-03 19:06:44 +01:00
|
|
|
import sys
|
|
|
|
import os
|
|
|
|
import logging
|
2019-03-16 02:34:09 +00:00
|
|
|
|
2019-10-03 19:06:44 +01:00
|
|
|
logger = logging.getLogger('fmframework')
|
2019-03-16 02:34:09 +00:00
|
|
|
|
2019-10-03 19:06:44 +01:00
|
|
|
file_handler = logging.FileHandler(".fm/backup.log")
|
2020-07-01 10:52:47 +01:00
|
|
|
file_handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(name)s - %(funcName)s - %(message)s'))
|
2019-10-03 19:06:44 +01:00
|
|
|
logger.addHandler(file_handler)
|
|
|
|
|
|
|
|
stream_handler = logging.StreamHandler()
|
2020-07-01 10:52:47 +01:00
|
|
|
stream_handler.setFormatter(logging.Formatter('%(levelname)s %(name)s:%(funcName)s - %(message)s'))
|
2019-10-03 19:06:44 +01:00
|
|
|
logger.addHandler(stream_handler)
|
|
|
|
|
|
|
|
|
|
|
|
def backup_scrobbles(file_path):
|
|
|
|
net = Network(username='sarsoo', api_key=os.environ['FMKEY'])
|
|
|
|
|
2020-07-01 10:52:47 +01:00
|
|
|
try:
|
2020-08-12 09:25:19 +01:00
|
|
|
scrobbles = net.recent_tracks()
|
2020-07-01 10:52:47 +01:00
|
|
|
|
|
|
|
if not os.path.exists(file_path):
|
|
|
|
os.makedirs(file_path)
|
|
|
|
|
|
|
|
export_scrobbles(scrobbles, file_path)
|
2019-10-03 19:06:44 +01:00
|
|
|
|
2020-07-01 10:52:47 +01:00
|
|
|
except LastFMNetworkException:
|
|
|
|
logger.exception('error during scrobble retrieval')
|
2019-03-16 02:34:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2019-10-03 19:06:44 +01:00
|
|
|
backup_scrobbles(sys.argv[1])
|