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" /> <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()
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")
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')
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