# -*- coding: utf-8 -*- import urllib2 from xml.dom import minidom from django.core.management.base import NoArgsCommand class Command(NoArgsCommand): """ www.example.com address@example.com 666 Services 33-350 Kraków Some company 123 456 78 90 666 667 668 ul. test """ help = 'Connect to Infakt API' def handle_noargs(self, **options): api_key = "API_KEY_FROM_INFAKT" uri = 'http://www.infakt.pl' username = 'YOUR_USERNAME' password = 'YOUR_PASSWORD' + api_key try: auth_handler = urllib2.HTTPBasicAuthHandler() auth_handler.add_password(realm='Application', uri=uri, user=username, passwd=password) opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) # get clients from infakt response = urllib2.urlopen(uri+"/api/clients.xml") xmlString = response.read() xml = minidom.parseString(xmlString) cnt = 0 for client in xml.getElementsByTagName('client'): cnt += 1 def _get(n): try: return client.getElementsByTagName(n)[0].firstChild.data except AttributeError, e: return None infakt_id = _get('id') legal_name = _get('nazwa-firmy') nip = _get('nip') notes = _get('info') or " " + "(Infakt id: %s)" % infakt_id website = _get('adres-www') email = _get('email') phone = _get('numer-telefonu') zip_code = _get('kod-pocztowy') city = _get('miejscowosc') street = _get('ulica') # # Import Company or other model from your models and sync them # try: company = Company.objects.get(infakt_id=infakt_id) except Company.DoesNotExist: company = Company() company.legal_name=legal_name company.nip=nip company.notes=notes company.infakt_id=infakt_id company.save() print company except Exception, e: print 'Nie mozna uzyskac listy klientow z API Infakt! (%s)' % e