Exemplo n.º 1
0
    def get_content_url(self, url):
        try:
            response = requests.get(url, timeout=3)
        except ConnectionError:
            raise Http404

        if response.status_code == 200:
            html_content = parse_html(url, response.content)
            image_res_url = ''

            # FIXME we could leave this out
            if html_content['image']:
                if not re.search('(https?:\/\/[\w+\.]*)',
                                 html_content['image']):
                    url_parsed = urlparse(url)
                    image_url = '/'.join(['://'.join([url_parsed.scheme,
                                          url_parsed.netloc]), html_content['image']])
                else:
                    image_url = html_content['image']

                image_ext = html_content['image'].split('.')[-1].lower()

                if len(image_ext) > 3 and image_ext != 'jpeg':
                    image_ext = image_ext[:3]
                if image_ext in ('jpg', 'png', 'gif', 'jpeg'):
                    image_name = html_content['image'].split('/')[-1]
                    image_hash = generate_hash()
                    image_hash_filename = '.'.join([image_hash, image_ext])
                    image_res_url = os.path.join(settings.MEDIA_URL, 'posts', image_hash_filename)

                    try:
                        req_image = requests.get(image_url, timeout=3)
                        im = Image.open(StringIO(req_image.content))
                        im.save(os.path.join(settings.MEDIA_ROOT, 'posts', image_hash_filename))
                        self.image_name = image_name
                        self.image_original_name = image_hash
                    except IOError:
                        logging.error('There was an error trying to retrieve the Image from the website %s' % url)
                        image_res_url = ''
                    except ConnectionError:
                        logging.error('There was an error in the connection')
                        image_res_url = ''

            text = self.content.replace(url, '')
            self.content = '''<img src="%s" class="img-polaroid post-image" />
                             &nbsp;<div><a href="%s" target="_blank">%s</a>
                             <p>%s</p></div><br /><span>%s</span>''' % (image_res_url, url,
                                                   html_content['title'],
                                                   html_content['description'],
                                                   text)
            self.save()
Exemplo n.º 2
0
    def post(self, request):
        data = json.loads(request.raw_post_data)
        data["username"] = generate_hash()[:29]
        response_data = {}
        f = RegisterForm(data)

        if not f.is_valid():
            context = RequestContext(request, {})
            context["form"] = f
            errors = dict([(k, f.error_class.as_text(v)) for k, v in f.errors.items()])
            response_data["status"] = "failed"
            response_data["errors"] = errors

        else:
            group = Group.objects.get(name="client")
            f.save(request=request, group=group)
            response_data["status"] = "success"

        return HttpResponse(json.dumps(response_data), mimetype="application/json")
Exemplo n.º 3
0
    def post(self, request):
        data = json.loads(request.raw_post_data)
        data['username'] = generate_hash()[:29]
        response_data = {}
        f = RegisterForm(data)

        if not f.is_valid():
            context = RequestContext(request, {})
            context['form'] = f
            errors = dict([(k, f.error_class.as_text(v))
                           for k, v in f.errors.items()])
            response_data['status'] = 'failed'
            response_data['errors'] = errors

        else:
            group = Group.objects.get(name='client')
            f.save(request=request, group=group)
            response_data['status'] = 'success'

        return HttpResponse(json.dumps(response_data),
                            mimetype='application/json')
Exemplo n.º 4
0
    def save(self, request, group=None):
        data = self.cleaned_data
        u = User(username=data["username"], email=data["email"],
                 is_active=False,
                 first_name=data['first_name'],
                 last_name=data['last_name'])
        u.set_password(data["password"])
        u.save()
        token = generate_hash()
        Profile(user=u,
                token=token,
                country='None',
                city='None').save()
        token_url = verify_user_route(request, token)

        if group:
            group.user_set.add(u)

        self.verify_user(u, token_url)

        return u