Ejemplo n.º 1
0
def post():

    print(request.json['fitness'])
    new_fit = request.json['fitness']
    new_date = request.json['date']
    new_model = request.json['model']

    new_run = Run(date=new_date, modelName=new_model, fitness=new_fit)
    new_run.save()

    return response
Ejemplo n.º 2
0
def run_pep8(git_url, path, name, rev):
    """Check out the git project, run pep8, store the results"""

    # Do not allow duplicates of the same project/rev
    old_run = Run.objects.filter(project_name=name, git_revision=rev)
    if not old_run:
        run = Run(project_name=name, project_url=git_url, git_revision=rev)
        run.save()
        pep8_pipe = os.popen("pep8 -r %s" % path)
        parse_pep8(run, path, pep8_pipe)
        pep8_pipe.close()

    os.system("rm -rf %s" % os.path.dirname(path))
Ejemplo n.º 3
0
def afficher_challenge(request, id):
    error=False
    if request.method == 'POST':  # S'il s'agit d'une requête POST
        form = AddRunForm(request.POST)  # Nous reprenons les données

        if form.is_valid(): # Nous vérifions que les données envoyées sont valides

            # Ici nous pouvons traiter les données du formulaire
            date = form.cleaned_data['date']
	    score=form.cleaned_data['score']
	    user=request.user
	    challenge = get_object_or_404(Challenge, id=id)
	    run=Run(date=date,score=score,challenge=challenge,user=user)
	    run.save()
	    print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CREATION RUN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")

    else: # Si ce n'est pas du POST, c'est probablement une requête GET
        form = AddRunForm()  # Nous créons un formulaire vide

    challenge = get_object_or_404(Challenge, id=id)  
    member=challenge.team.filter(id=request.user.id).exists()


    #Creation du graphique
    #Create the data

    #Voir highcharts pour les options
 
    series=[]
    series_options_terms={}
    for joueur in challenge.team.all():
	serie_joueur=	{'options': {'source': Run.objects.filter(user=joueur,challenge=challenge)}}
	serie_joueur['terms']=[{''.join(["score_",joueur.username]):'score'},{''.join(["date_",joueur.username]):'date'}]
	series.append(serie_joueur)
	series_options_terms[''.join(["date_",joueur.username])]=[''.join(["score_",joueur.username])]

    #Ajouter l'objectif
    serie_obj=	{'options': {'source': Challenge.objects.filter(id=challenge.id),'colors': 'red'},'terms':['goal_date','goal']}
    series_options_terms['goal_date']=['goal']
    series.append(serie_obj)

    

    challengeData =DataPool(series)

    print(series_options_terms)
    #Step 2: Create the Chart object

    series_options0 =[{'options':{
                  'type': 'spline',
                  'stacking': False},
                'terms':series_options_terms
		}]

    cht = Chart(
            datasource = challengeData,
            series_options=series_options0,
            chart_options =
              {'title': {'text': 'Performances'},
               'xAxis': {'title': {'text': 'Date'}},
	       'yAxis': {'title': {'text': 'Scores'}}
	})
 

    return render(request, 'challenges/challenge_page.html', locals())
Ejemplo n.º 4
0
class Crawler(object):

    def __init__(self, site, name=None):

        self.site = site
        name = name or str( localtime( now() ) )
        self.run = Run( name=name, site = site )
        self.run.save()

        self.br = M.Browser()
        self.br.set_handle_robots(False)

    def crawl(self,result ,force=False):

        if result.link.available == False or result.status != None:
            if not force:
                return []

        #: get page
        res=self.br.open(result.link.url,timeout=2.0) 
        result.status = res.code  
        result.content_type = res.info()['Content-Type']

        if not result.content_type or result.content_type.find('text/') <0:
            #: PDF ... 
            result.save()
            return []

        result.set_output(res.get_data())

        result.save()

        #: page links
        next_links=result.children()

        #: page has cases
        for c in result.link.case_set.all():
            case_result, case_result_created= LinkResult.objects.get_or_create(
                                                run=self.run,
                                                link=result.link,
                                                case = c
                                            )
            #: TOOD: this implementation expect only 1 depth
            if case_result.status == None:
                if c.form_index >= 0 : 
                    self.br.select_form( nr = c.form_index )
                    for k,v in c.form_params.items(): 
                        self.br[ k ] = v
                    res = self.br.submit()
                    case_result.status = res.code
                    case_result.content_type=res.info()['Content-Type']
                    if result.content_type or result.content_type.find('text/') >=0:
                        case_result.set_output(res.get_data() )
                    case_result.save()

            self.br.open(result.link.url,timeout=2.0,)           #: access original page

        return next_links

    def start(self,url=None,parent=None,follow=True ,force=False):
        #: parent : parent Link instance
        self.br.clear_history()
        time.sleep(0.01 )        
        url = url or self.site.start_url

        result =None
        try:
            result = self.run.provide_result( url, parent )      
            if result == None:
                return 
            next_links = self.crawl( result,force=force)
        except:
            if result:
                result.errors = traceback.format_exc()
                result.save()
            return

        if not follow:
            return 

        for path in next_links:
            self.start(  path ,result.link)