pandora_client/bin/pandora_client

52 lines
1.7 KiB
Text
Raw Normal View History

2010-11-18 14:46:19 +00:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
2012-02-21 09:45:27 +00:00
# GPL 2012
2010-11-18 14:46:19 +00:00
import os
import sys
from optparse import OptionParser
2012-02-21 09:45:27 +00:00
import json
2010-11-18 14:46:19 +00:00
root = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
if os.path.exists(os.path.join(root, 'pandora_client')):
sys.path.insert(0, root)
import pandora_client
if __name__ == '__main__':
usage = "usage: %prog [options] action"
parser = OptionParser(usage=usage)
parser.add_option('-c', '--config', dest='config', help='config.json containing config', default='~/.ox/client.json', type='string')
(opts, args) = parser.parse_args()
opts.config = os.path.expanduser(opts.config)
2012-02-24 15:24:49 +00:00
if None in (opts.config, ) or (args and args[0] != 'config' and not os.path.exists(opts.config)):
2010-11-18 14:46:19 +00:00
parser.print_help()
sys.exit()
2012-02-14 06:38:01 +00:00
actions = ('scan', 'sync', 'upload', 'extract', 'clean', 'cmd', 'import_srt')
2012-02-21 09:45:27 +00:00
config = ('config', 'add_volume')
if not args or args[0] not in actions + config:
parser.error('you must specify a valid action. \n\t\tknown actions are: %s\n\t\tconfiguration: config, add_volume' % ', '.join(actions))
2010-11-18 14:46:19 +00:00
action = args[0]
2012-01-04 07:01:43 +00:00
offline = False
2012-02-21 09:45:27 +00:00
offline = action in config
if action == 'config':
if not os.path.exists(opts.config):
with open(opts.config, 'w') as f:
json.dump({
"url": "",
"username": "",
"password": "",
"cache": "~/.ox/client.sqlite",
"media": '~/.ox/media',
"volumes": {}
}, f, indent=2)
c = pandora_client.Client(opts.config, offline)
2012-01-02 12:32:15 +00:00
getattr(c, action)(args[1:])
2010-11-18 14:46:19 +00:00