示例#1
0
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