symuid-import-cmus 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import datetime as dt
  4. import os
  5. import re
  6. import symuid
  7. # import symuid.library.cmus
  8. import sys
  9. CACHE_LINE_SEPARATOR = b'\xff'*56
  10. CACHE_COLUMN_SEPARATOR = b'\x00'
  11. def symuid_import_cmus(cache_path):
  12. with open(os.path.expanduser(cache_path), 'rb') as f:
  13. cache_data = [l.split(CACHE_COLUMN_SEPARATOR) for l in f.read().split(CACHE_LINE_SEPARATOR)]
  14. for track_data in cache_data[1:]:
  15. track_path = track_data[0]
  16. if not os.path.exists(track_path):
  17. sys.stderr.write('{!r}: not found\n'.format(track_path))
  18. else:
  19. print(track_path)
  20. def _init_argparser():
  21. import argparse
  22. argparser = argparse.ArgumentParser(description=None)
  23. argparser.add_argument(
  24. 'cache_path',
  25. nargs='?',
  26. default='~/.config/cmus/cache',
  27. help='(default: %(default)r)',
  28. )
  29. return argparser
  30. def main(argv):
  31. argparser = _init_argparser()
  32. args = argparser.parse_args(argv[1:])
  33. symuid_import_cmus(**vars(args))
  34. return 0
  35. if __name__ == "__main__":
  36. sys.exit(main(sys.argv))