示例#1
0
def create_session(request):
    
    if request.GET.get('advanced', 'no') == 'yes':
        advanced = True
    else:
        advanced = False
    
    if request.method == "POST":
    
        f, header_formset = session_and_headers_form(request.POST)
        
        if f.is_valid():
        
            # did the user accidentally use the hostname 'localhost'?
            real_hostname = socket.gethostbyaddr(request.META['REMOTE_ADDR'])[0]
            real_url, corrected = replace_localhost_hostname(f.cleaned_data['url'], real_hostname)
        
            header_text = ''
            if header_formset.is_valid():
                header_text = '\r\n'.join([x.formatted_header() for x in header_formset.forms if x.formatted_header()])
                
            s = HttpSession(http_method=f.cleaned_data['method'],
                http_url=real_url,
                http_headers=header_text,
                follow_redirects=f.cleaned_data['follow_redirects'],
                http_body=f.cleaned_data['body'],
                autocorrected_localhost=corrected)
            s.save()
            if s.pk:
                # save was successful
                request.session.setdefault('spyglass_session_ids', set()).add(s.pk)
                request.session.modified = True
                
                return redirect(s.get_absolute_url())
            else:
                # something went wrong...
                print "[ERROR] Unable to save HttpSession!"
        else:
            print " [WARN] submitted form was invalid: " + str(f.errors)
    else:
        f, header_formset = session_and_headers_form()
    
    context = {
        'form': f,
        'http_header_form': header_formset,
        'use_advanced_form': advanced,
    }
    
    return render_to_response('spyglass/create_session.html', context, context_instance=RequestContext(request))
示例#2
0
def session_detail(request, session_id):
    
    session = get_object_or_404(HttpSession, pk=session_id)
    html_formatter = HtmlFormatter()

    run_session(session)
    
    pretty_request = html_formatter.format(session.get_raw_request())
    
    if session.time_completed:
        if not session.http_error:
            pretty_response = html_formatter.format(session.http_response)
            session_time = session.time_completed - session.time_requested
            elapsed_milliseconds = session_time.microseconds / 1000.0
    else:
        pretty_response = render_to_string('spyglass/fragment_loading_placeholder.html', {'session_id': session.id})
        elapsed_milliseconds = None
    
    use_advanced_form = (len(session.http_body) != 0) or (len(session.http_headers) != 0)
    form, http_header_form = session_and_headers_form(session=session)
        
    context = {
        'session': session,
        'pretty_request': pretty_request,
        'pretty_response': pretty_response,
        'request_linenos': html_line_numbers(pretty_request),
        'response_linenos': html_line_numbers(pretty_response),
        'elapsed_milliseconds': elapsed_milliseconds,
        'form': form,
        'http_header_form': http_header_form,
        'use_advanced_form': use_advanced_form,
    }
    
    return render_to_response('spyglass/session_detail.html', context, context_instance=RequestContext(request))    
示例#3
0
def session_detail(request, session_id):
    
    session = get_object_or_404(HttpSession, pk=session_id)
    html_formatter = HtmlFormatter()

    run_session(session)
    
    pretty_request = html_formatter.format(session.get_raw_request())

    use_advanced_form = (len(session.http_body) != 0) or (len(session.http_headers) != 0)
    form, http_header_form = session_and_headers_form(session=session)

    response_template = open(os.path.join(settings.MEDIA_ROOT, 'mustache/session.mustache')).read()
    formatted_response = pystache.render(response_template, mustache_context_for_session(session))
    
    context = {
        'session': session,
        'pretty_request': pretty_request,
        'request_linenos': html_line_numbers(pretty_request),
        
        'show_placeholder': not session_is_ready(session),
        'formatted_response': formatted_response,
        
        'form': form,
        'http_header_form': http_header_form,
        'use_advanced_form': use_advanced_form,
    }
    
    return render_to_response('spyglass/session_detail.html', context, context_instance=RequestContext(request))    
示例#4
0
def session_list(request):
    all_sessions = HttpSession.objects.all().order_by('-time_requested')
    form, header_form = session_and_headers_form()
    context = {
        'session_list': all_sessions,
        'form': form,
        'http_header_form': header_form,
    }
    return render_to_response('spyglass/session_list.html', context, context_instance=RequestContext(request))
示例#5
0
def session_list_generic(request, queryset):

    form, header_form = session_and_headers_form()
    context = {
        'session_list': queryset,
        'form': form,
        'http_header_form': header_form,
    }
    return render_to_response('spyglass/session_list.html', context, context_instance=RequestContext(request))
示例#6
0
def create_session(request):
    
    if request.GET.get('advanced', 'no') == 'yes':
        advanced = True
    else:
        advanced = False
    
    if request.method == "POST":
    
        f, header_formset = session_and_headers_form(request.POST)
        
        if f.is_valid():
        
            header_text = ''
            if header_formset.is_valid():
                header_text = '\r\n'.join([x.formatted_header() for x in header_formset.forms if x.formatted_header()])
                
            s = HttpSession(http_method=f.cleaned_data['method'],
                http_url=f.cleaned_data['url'],
                http_headers=header_text,
                follow_redirects=f.cleaned_data['follow_redirects'],
                http_body=f.cleaned_data['body'])
            s.save()
            if s.pk:
                # save was successful
                return redirect(s.get_absolute_url())
            else:
                # something went wrong...
                print "[ERROR] Unable to save HttpSession!"
        else:
            print " [WARN] submitted form was invalid: " + str(f.errors)
    else:
        f, header_formset = session_and_headers_form()
    
    context = {
        'form': f,
        'http_header_form': header_formset,
        'use_advanced_form': advanced,
    }
    
    return render_to_response('spyglass/create_session.html', context, context_instance=RequestContext(request))
示例#7
0
def session_list_generic(request, queryset):

    form, header_form = session_and_headers_form()

    return list_detail.object_list(
        request,
        queryset = queryset,
        paginate_by = 20,
        template_name = 'spyglass/session_list.html',
        template_object_name = 'session',
        extra_context = dict(
            form = form,
            http_header_form = header_form
        )
    )
示例#8
0
def homepage(request):

    session_form, headers_form = session_and_headers_form()
    context = {'form': session_form, 'http_header_form': headers_form}
    return render_to_response('spyglass/create_session.html', context, context_instance=RequestContext(request))