Example #1
0
File: rpc.py Project: BwRy/pyurl
def xmlrpc_create(username, password, s_url, code=None):
    """
    Create a short url.  Optionally a specific code can be requested by the
    second parameter.
    """
    user = authenticate(username=username, password=password)
    if user is None:
        # Authentication failed.
        raise Exception('Invalid authentication credentials.')
    if not len(s_url):
        raise Exception('Url cannot be empty')
    try:
        new_url = Url.objects.get(path=s_url)
    except ObjectDoesNotExist:
        from pyurl.helpers.tools import unique_hash
        new_url = Url(path=s_url, hash=unique_hash(s_url, request=code))
        new_url.save()
    return new_url.short_url
Example #2
0
    def save(self, *args, **kw):
        try:
            # Check to see if the url already exists.
            u = Url.objects.get(path=self.instance.path)
        except ObjectDoesNotExist:
            self.instance.hash = unique_hash(self.instance.path,
                request=getattr(self.instance, 'hash', None))
            # Save url in the db.
            super(UrlForm, self).save(*args, **kw)

        # Add the url to the user session list.
        if self.request.session.get('url_list', False):
            if len(self.request.session['url_list']) >= getattr(settings,
                'MAX_URLS_PER_USER', 10):
                self.request.session['url_list'].pop(0)
            self.request.session['url_list'] += [self.instance.pk]
        else:
            self.request.session['url_list'] = [self.instance.pk]

        return self.request, self.instance