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 [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.')