Пример #1
0
 def post(self):
     author = users.get_current_user()
     self.response.content_type = 'application/json'
     try:
         algo = Algorithm(parent=ndb.Key('Python Algorithms', 'scrap'))
         algo.author = author
         algo.script = self.request.get('script')
         algo.viz = self.request.get('viz')
         algo.name = self.request.get('name')
         algo.public = False
         algo.put()
         # notify(author, 'save', algo.name, algo.script, algo.viz)
         msg = 'Script was successfully saved by %s as "%s"' % (
             author.email(), algo.name)
         info(msg)
         info(algo.script)
     except Exception as e:
         msg = 'Could not save script: %s' % e
     self.response.write(json.encode({'result': msg}))
    def create_or_edit(self, data, contract):
        try:
            algorithm_id = data.get('id')
            if not algorithm_id:
                algorithm = Algorithm()
            else:
                algorithm = Algorithm.query.filter_by(
                    id=algorithm_id).first_or_404()

                if algorithm.contract_id != contract.id and not contract.is_admin:
                    return None

            algorithm.title = data.get('title')
            algorithm.steps = data.get('steps')
            algorithm.description = data.get('description')
            algorithm.categories = data.get('categories')
            algorithm.template_id = data.get('template_id')
            algorithm.initial_step = data.get('steps')[0].get('uid')
            algorithm.current_step = data.get('steps')[0].get('uid')

            if data.get('is_template') and contract.is_admin:
                algorithm.clinics = data.get('clinics')
                algorithm.is_template = True
                algorithm.template_category = data.get('template_category')
            else:
                algorithm.patient_id = contract.patient_id
                algorithm.contract_id = contract.id

            if not algorithm_id:
                self.db.session.add(algorithm)

            self.change_step(algorithm, algorithm.initial_step)

            self.check_inits(algorithm)

            return algorithm
        except Exception as e:
            log(e)
            return None
Пример #3
0
    def execute_upload(self, request):
        import uuid
        form = self.form_class(request.POST, request.FILES)
        print request.FILES['file']
        if form.is_valid():
            print request.FILES['file']
            resp = self.handle_uploaded_file(request.FILES['file'])
            if resp['score'] < 100:
                button_type = 'btn-warning'
            else:
                button_type = 'btn-success'
            self.uuid_index = str(uuid.uuid4())

            resp['score'] = random.randint(1, 100)

            model = Algorithm

            run_rank = model.objects.filter(
                rating__gt=int(resp['score'])).order_by('ranking')
            if len(run_rank) > 0:
                rankobj = run_rank.last()
                rank = rankobj.ranking + 1

            else:
                rank = 1

            run_rank_low = model.objects.filter(rating__lte=int(resp['score']))
            if len(run_rank_low) > 0:
                for i in run_rank_low:
                    i.ranking += 1
                    i.save()

            else:
                pass

            b = Algorithm(run_id=self.uuid_index,
                          name=request.user.username,
                          user=request.user,
                          ranking=rank,
                          rating=resp['score'],
                          button=button_type,
                          time=resp['duration'],
                          cpu=18)
            b.save()
            job_post = u'{0} has sent a job score: {1} rank: {2} :'.format(
                request.user.username, resp['score'], rank)

            resp = model.objects.all().order_by('ranking')
            values = resp.values('run_id')

            for ind, item in enumerate(values):
                if (item['run_id']) == self.uuid_index:
                    paging = divmod(ind, 5)[0]

            feed = Feed(user=request.user,
                        post=job_post,
                        job_link='/leaderboard?q=foo&flop=flip&page=' +
                        str(paging + 1))
            feed.save()

            #request.user.profile.notify_job_done(b)

            like = Activity(activity_type=Activity.RUN_PROCESSED,
                            feed=feed.pk,
                            user=request.user)
            like.save()

            user = request.user
            user.profile.notify_liked_bis(feed)

            return paging
Пример #4
0
    sys.stdout.flush()
    password1 = getpass.getpass()
    sys.stdout.write(PROMPT + "Confirm New Admin ")
    sys.stdout.flush()
    password2 = getpass.getpass()
    if password1 == password2 and 12 <= len(password1):
        password = password1
    else:
        print(WARN +
              'Error: Passwords did not match, or were less than 12 chars')
        os._exit(1)

### Initialize algorithms
md5 = Algorithm(
    name=u'MD5',
    length=32,
    chars=u'1234567890ABCDEF',
)
lm = Algorithm(
    name=u'LM',
    length=16,
    chars=u'1234567890ABCDEF',
)
ntlm = Algorithm(
    name=u'NTLM',
    length=16,
    chars=u'1234567890ABCDEF',
)
dbsession.add(md5)
dbsession.add(lm)
dbsession.add(ntlm)
Пример #5
0
    def execute_upload(self,request):
                import uuid
                form = self.form_class(request.POST, request.FILES)

                if  form.is_valid():
                    #resp = self.handle_uploaded_file(request.FILES['file'])
                    with open('uploaded_custom.py', 'wb+') as destination:
                        for chunk in request.FILES['file'].chunks():
                            destination.write(chunk)
                        destination.close()

                    proxy = callme.Proxy(server_id='fooserver2',amqp_host='amqp://*****:*****@37.187.117.106/echopen1', timeout=3600)
               
                    resp = proxy.denoise(open('uploaded_custom.py', 'rb').read())

                    self.uuid_index  = str(uuid.uuid4())

                    model = Algorithm

                    run_rank = model.objects.filter(rating__gt=int(resp['score'])).order_by('ranking')
                    if len(run_rank) > 0:
                        rankobj = run_rank.last()
                        rank = rankobj.ranking + 1

                    else:
                        rank = 1
                     
                    run_rank_low = model.objects.filter(rating__lte=int(resp['score']))
                    if len(run_rank_low) > 0 :
                        for i in run_rank_low:
                            i.ranking += 1
                            i.save()

                    else:
                        pass
                    
                                  
                    b = Algorithm(run_id= self.uuid_index, name=request.user.username, user=request.user, ranking = rank, rating=resp['score'], button = button_type, time= resp['duration'], source_code=source, cpu=18)
                    b.save()
                    job_post = u'{0} has sent a job score: {1} rank: {2} :'.format(request.user.username,resp['score'], rank)
                    
                    resp = model.objects.all().order_by('ranking')
                    values = resp.values('run_id')
                    
                    for ind, item  in enumerate(values) :
                        if (item['run_id']) == self.uuid_index :
                            paging =  divmod(ind, 5)[0]

                    feed = Feed(user=request.user, post=job_post, job_link='/leaderboard?q=foo&flop=flip&page='+str(paging+1))
                    feed.save()


                    #request.user.profile.notify_job_done(b)      
                    

                    like = Activity(activity_type=Activity.RUN_PROCESSED, feed=feed.pk, user=request.user)
                    like.save()

                    user = request.user
                    user.profile.notify_liked_bis(feed)
                    

                    return paging
Пример #6
0
#!/usr/bin/env python

import sqlalchemy

from models import Algorithm, Base, Currency, Wallet

if __name__ == "__main__":
    engine = sqlalchemy.create_engine('sqlite:///:memory:', echo=True)

    Base.metadata.create_all(engine)

    Session = sqlalchemy.orm.sessionmaker(bind=engine)

    algo = Algorithm(name="crytponight")
    session = Session()
    session.add(algo)
    session.commit()