Fixes to pull/push logic.
[redakcja.git] / apps / api / management / commands / doc_upload.py
1 #!/usr/bin/env python
2 # -*- conding: utf-8 -*-
3 __author__="lreqc"
4 __date__ ="$2009-09-08 14:31:26$"
5
6 from django.core.management.base import BaseCommand
7 from django.utils import simplejson as json
8 from django.test.client import Client
9 from django.core.urlresolvers import reverse
10
11 from optparse import make_option
12
13 class Command(BaseCommand):
14     
15     option_list = BaseCommand.option_list + (
16         make_option('-u', '--user', action='store', dest='username'),
17         make_option('-p', '--password', action='store', dest='password'),
18         make_option('-d', '--dublin-core', action='store_true', dest='dc'),
19     )
20     
21     def handle(self, *args, **options):
22         client = Client()
23         if not options['username'] or not options['password']:
24             raise CommandError("You must provide login data")
25
26         client.login(username=options['username'], \
27             password=options['password'])
28
29         print options['username'], options['password']
30         
31         filename = args[0]
32         bookname = args[1]
33
34         print "Uploading '%s' as document '%s'" % (filename, bookname)
35         print options['dc']
36         print "With DC template" if options['dc'] is not None else ""
37
38         print client.post( reverse("document_list_view"),\
39         {
40             'bookname': bookname,
41             'ocr_file': open(filename),
42             'generate_dc': options['dc'] or False } )
43