##// END OF EJS Templates
Merged with default
Merged with default

File last commit:

r841:c295c39c decentral
r1020:0e2fda16 merge decentral
Show More
sync_with_server.py
37 lines | 1.1 KiB | text/x-python | PythonLexer
import re
import urllib
import httplib2
from django.core.management import BaseCommand
from boards.models import GlobalId
__author__ = 'neko259'
REGEX_GLOBAL_ID = r'\[(\w+)\]\[(\w+)\]\[(\d+)\]'
class Command(BaseCommand):
help = 'Send a sync or get request to the server.' + \
'sync_with_server <server_url> [post_global_id]'
def handle(self, *args, **options):
url = args[0]
if len(args) > 1:
global_id_str = args[1]
match = re.match(REGEX_GLOBAL_ID, global_id_str)
key_type = match.group(1)
key = match.group(2)
local_id = match.group(3)
global_id = GlobalId(key_type=key_type, key=key,
local_id=local_id)
xml = GlobalId.objects.generate_request_get([global_id])
data = {'xml': xml}
body = urllib.urlencode(data)
h = httplib2.Http()
response, content = h.request(url, method="POST", body=body)
# TODO Parse content and get the model list
else:
raise Exception('Full sync is not supported yet.')