def import_blog(request): form = BlogForm() if request.method == 'POST': wp_form = WPXMLForm(request.POST,request.FILES) if wp_form.is_valid() and request.FILES: try: blog = import_from_wp(request.FILES['wp_xml'].read(), request.user) return HttpResponseRedirect(reverse('blog_index', kwargs={'slug': blog.slug})) except: msg = _('Importation error. Please, check the XML file and try again.') messages.add_message(request, messages.SUCCESS, msg, fail_silently=True) else: wp_form = WPXMLForm() return render_to_response('base/new_blog.html', locals(), context_instance=RequestContext(request))
def import_blogs_from_api(username=None, onlyone=False, debug=False): request = urllib2.unquote(BLOGS_JSON_URL) pass_request = urllib2.unquote(BLOGS_PASS_JSON_URL) try: result = urllib2.urlopen(request, timeout=5*60).read() data = eval(result) pass_result = urllib2.urlopen(pass_request, timeout=5*60).read() pass_data = build_dict(eval(pass_result),key='blogs') to_continue = username and True or False for dataset in data: if username == slugify(dataset['slug']): to_continue = False elif to_continue: continue print slugify(dataset['slug']) userdata = { 'fullname': dataset['title'], 'email': dataset['email'], 'bio': dataset['description'], } password = pass_data.get(dataset['slug']) and pass_data[dataset['slug']]['password'] or dataset['slug'] if '{SSHA}' in password: userdata['password'] = password.replace("{SSHA}","") else: userdata['password'] = make_password(password) user, created = BitakoraUser.objects.get_or_create(username=slugify(dataset['slug']), defaults=userdata) img_url = None for suffix in IMG_FORMATS: try: code = urllib2.urlopen(BLOGS_BASE+user.username+'/image.'+suffix).code except: code = None if code == 200: img_url = BLOGS_BASE+user.username+'/image.'+suffix if img_url: photo = handle_url_file(img_url,user) user.photo = photo user.save() blog_result = urllib2.urlopen(BLOGS_BASE+dataset['slug'].replace(" ","%20")+'/downloadWordPress',timeout=5*60).read() import_from_wp(blog_result,user, debug) if onlyone: break except Exception as e: raise e return True