Esempio n. 1
0
def load_users():
    """Load users from u.user into database."""

    print("Users")

    # Delete all rows in table, so if we need to run this a second time,
    # we won't be trying to add duplicate users
    Log.query.delete()
    Dog.query.delete()
    User.query.delete()

    user1 = User(
        fname="Vaishali",
        lname="Cooner",
        email="*****@*****.**",
        password=
        "******",
        apt=1)
    user2 = User(fname="Heather",
                 lname="Mahan",
                 email="*****@*****.**",
                 password=123,
                 apt=1)

    # We need to add to the session or it won't ever be stored
    db.session.add_all([user1, user2])

    print("dogs")

    dog1 = Dog(dogname="Fluffy",
               age=3,
               breed="Havanese",
               gender="female",
               size="small",
               pic="1abc.jpg",
               user=user1)
    dog2 = Dog(dogname="Boris",
               age=2,
               breed="Minpin",
               gender="male",
               size="small",
               pic="2def.jpg",
               user=user2)

    # We need to add to the session or it won't ever be smovies (movie_id, title, released_at, imdb_url) VALUES (%(movie_id)s, %(title)s, %(released_at)s, %(imdb_url)s)'] [parameters: ({'movie_id': '1', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '2', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '3', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '4', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '5', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '6', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '7', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '8', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}  ... displaying 10 of 1681 total bound parameter sets ...  {'movie_id': '1681', 'title': None, 'released_at': datetime.datetime(1994, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '1682tored
    db.session.add_all([dog1, dog2])

    print("logs")

    log1 = Log(checkin='2018-10-09 2:40:10 PM',
               checkout='2018-10-09 2:30:10 PM',
               dog=dog1)
    log2 = Log(checkin='2018-10-09 2:42:20 PM',
               checkout='2018-10-09 2:58:10 PM',
               dog=dog2)
    # We need to add to the session or it won't ever be stored
    db.session.add_all([log1, log2])

    # Once we're done, we should commit our work
    db.session.commit()
Esempio n. 2
0
def new_message(lti=lti):
#def new_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId']) #From Field
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    newMessage(courseId, {
        'student': studentId, #Broadcast message from:
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': student.info(),
        'date': ''
    })
    return "Message received"
Esempio n. 3
0
def trigger_loaded(courseId, studentId):
    loaded = Log(type='loaded', courseId=courseId, student=studentId)
    loaded.put()

    loadedUpdated(courseId, {
        'student': studentId
    })
Esempio n. 4
0
 def test_normal_login(self):
     """测试正常登陆,接口地址:/api/auth_center/v3/login"""
     l1 = self.l
     l2 = read_yaml()[1]['url']
     url = l1 + l2  # 拼接url
     username = read_yaml()[1]['account']
     pwd = read_yaml()[1]['password']
     result = logging(url, username, pwd)
     if result['code'] == 0:  # 正常登陆状态
         token = result['data']['token']
         fixconfig("token", token)  # 修改token的值为本次登录的token
         member_id = result['data']['member_id']
         fixconfig("member_id",
                   str(member_id))  # 修改member_id的值为本次登录的,需要改一下字符類型
         company_id = result['data']['company_id']
         fixconfig("company_id", str(company_id))  # 修改company_id的值为本次登录的
     elif result['code'] == 1005102105:  # 此账号未注册,请检查输入的账号是否正确
         print(result['msg'])
     elif result['code'] == 1005001006:  # 账号未注册或密码错误
         print(result['msg'])
     else:
         print(coloring()['YELLOW'] + '登陆报错……')
         # 打印日志到logs
         log = Log()
         log.debug('正常登录接口返回信息:%s' % result)
Esempio n. 5
0
def trigger_help(lti=lti):
#def trigger_help():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    studentName = cgi.escape(content['studentName'])
    courseId = cgi.escape(content['courseId'])

    student = ndb.Key('Student', courseId + studentId).get()
    help = Log(type='help', courseId=courseId, student=studentId)
    help.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    feedUpdated(courseId, {
        'student': studentId,
        'fullName': fullName,
        'avatarUrl': avatarUrl
    })

    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': help.key.id(),
        'type': 'help',
        'content': '',
        'info': student.info(),
        'date': DateTimeJSONEncoder().encode(help.date).replace('"', '')
    })
    return "Help received"
Esempio n. 6
0
def _logToDb(module, message, data=None, priority='Debug'):
    dbsess = Session()
    log = Log(priority=priority, message=message, module=module)
    log.add_data(data)
    dbsess.add(log)
    dbsess.commit()
    dbsess.close()
Esempio n. 7
0
def trigger_help():
    studentId = cgi.escape(request.form['studentId'])

    help = Log(type=LogType.HELP_NEEDED, student=studentId)
    help.put()

    p.trigger('private-status', 'help', {'studentId': studentId})
    return "Help received"
Esempio n. 8
0
def trigger_register():
    studentId = cgi.escape(request.form['studentId'])

    register = Log(type=LogType.REGISTERED, student=studentId)
    register.put()

    p.trigger('private-status', 'registered', {'studentId': studentId})
    return "Registration received"
Esempio n. 9
0
def trigger_reward():
    studentId = cgi.escape(request.form['studentId'])

    reward = Log(type=LogType.REWARD, student=studentId)
    reward.put()

    p.trigger('private-status', 'client-reward', {'studentId': studentId})
    return "Reward received"
Esempio n. 10
0
def get_starter_info():
    studentId = cgi.escape(request.form['studentId'])

    rewards = Log.get_by_type(studentId, LogType.REWARD)
    weeklyrewards = Log.get_by_type_weekly(studentId, LogType.REWARD)

    info = {}
    info["totaltickets"] = rewards.count()
    info["weeklytickets"] = weeklyrewards.count()
    return json.dumps(info)
Esempio n. 11
0
def trigger_ping():
    studentId = cgi.escape(request.form['studentId'])

    pinged = Log(type=LogType.PINGED, student=studentId)
    pinged.put()

    p.trigger('private-status', 'client-ping', {'studentId': studentId})
    return "Ping received"


#endregion
Esempio n. 12
0
def trigger_register(lti=lti):
    content = request.get_json(silent=True)
    studentId = cgi.escape(content['studentId'])
    courseId = cgi.escape(content['courseId'])

    register = Log(type='registered', courseId=courseId, student=studentId)
    register.put()

    registerUpdated(courseId, {
        'student': studentId
    })
    return "Registration received"
Esempio n. 13
0
def trigger_reward():
    studentId = cgi.escape(request.form['studentId'])
    student = getStudent(studentId)

    reward = Log(type='reward', student=studentId)
    reward.put()

    p.trigger('private-status', 'client-reward', {
        'studentId': studentId,
        'student': student
    })
    return "Reward received"
Esempio n. 14
0
 def test_contact(self):
     """测试联系人列表,接口地址:/api/scrm/contacts"""
     l2 = read_yaml()[2]['url']
     url = self.l + l2
     token = readconfig('token')
     result = contact_required(_url=url, _token=token)
     self.assertEqual(result['code'], 0)
     # 打印日志到logs
     log = Log()
     log.debug('联系人列表返回信息:%s' % result)
     fixconfig(key='contact_total', value=str(result['page_info']['total']))
     return result
Esempio n. 15
0
def contact_required(_url, _token):

    data = {
        '_gouuse_token': _token,
        'page_size': '50',
    }
    r = requests.post(url=_url, data=data)
    result = r.json()
    # 打印日志到logs
    log = Log()
    log.debug('联系人筛选返回信息:%s' % result)
    return result
Esempio n. 16
0
 def test_custmoser(self):  # 获取客户列表
     """获取客户列表,接口地址:/api/scrm/contacts"""
     l2 = read_yaml()[5]['url']
     url = self.l + l2
     token = readconfig('token')
     result = customer_required(_url=url, _token=token)
     self.assertEqual(result['code'], '0')
     # 打印日志到logs
     log = Log()
     log.debug('客户列表返回信息:%s' % result)
     fixconfig(key='customer_total',
               value=str(result['data']['page_info']['total']))
     return result
Esempio n. 17
0
def customer_required(_url, _token):

    data = {
        'page': 1,
        'page_size': '15',
        'source': 1
        }
    header = {'Authorization': _token}
    r = requests.post(url=_url, headers=header, data=data)
    result = r.json()
    # 打印日志到logs
    log = Log()
    log.debug('联系人筛选返回信息:%s' % result)
    return result
Esempio n. 18
0
def trigger_ping():
    studentId = cgi.escape(request.form['studentId'])
    student = getStudent(studentId)

    pinged = Log(type='ping', student=studentId)
    pinged.put()

    p.trigger('private-status', 'client-ping', {
        'studentId': studentId,
        'student': student
    })
    return "Ping received"


#endregion
Esempio n. 19
0
def fetch_logs(level=None, limit=100, offset=0):
    from model import Log
    query = Log.all()
    if level is not None:
        query.filter("l_level =", level)
    query.order("-logged_time")
    return query.fetch(limit=limit, offset=offset, paging=True)
Esempio n. 20
0
    def post(self):
        """ Logins user according to JSON object data.

            Headers:
                Content-Type: application/json

            JSON Request format:
            {
                "email": email,
                "senha": senha
            }
        """

        data = sign_in_parser.parse_args()

        # Email exists/Verify password hash
        if not email_exists(data['email']) or \
        not User.verify_hash(data['senha'], get_user_hash(data['email'])):
            return {'mensagem': 'Usuário e/ou senha inválidos.'}, 401

        # Generate token
        user = get_user_by_email(data['email'])
        token = Log.generate_token(
            {
                'sub': user.uuid,
                'name': user.name,
                'exp':
                datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
            }, app.config['SECRET_KEY'])

        log = Log(user, token)

        # Registering login
        session.add(log)
        session.commit()

        # User logged in successfully
        return {
            'id': user.uuid,
            'email': user.email,
            'data_criacao': user.creation_date.isoformat(),
            'data_atualizacao': user.update_date.isoformat(),
            'ultimo_login': user_last_login(user.email).date.isoformat(),
            'token': token.decode('UTF-8')
        }, 201
Esempio n. 21
0
def create_log(log_date, student_id, minutes_practiced, pieces_practiced,
               practice_notes):
    """Creates a new practice log record"""

    log = Log(log_date=log_date,
              student_id=student_id,
              minutes_practiced=minutes_practiced,
              pieces_practiced=pieces_practiced,
              practice_notes=practice_notes)

    db.session.add(log)
    db.session.commit()

    return log
Esempio n. 22
0
def get_feed(lti=lti):
#def get_feed():
    content = request.get_json(silent=True)
    courseId = cgi.escape(content['courseId'])
    feeds = Log.get_by_course(courseId)
    jsonfeeds = []
    for feed in feeds:
        jsonfeed = entity_to_dict(feed, ['student', 'type'], ['date', 'key'])
        jsonfeed["date"] = DateTimeJSONEncoder().encode(feed.date).replace('"', '')
        student = ndb.Key('Student', courseId + feed.student).get()
        if (student):
            jsonfeed["fullName"] = student.fullName
            jsonfeed["avatarUrl"] = student.avatarUrl
        jsonfeeds.append(jsonfeed)
    return json.dumps(jsonfeeds)
Esempio n. 23
0
def new_student_message(lti=lti):
#def new_student_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    newStudentMessage(courseId, studentId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'info': student.info(),
        'content': text,
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    return "Message received"
Esempio n. 24
0
def get_messages(lti=lti):
#def get_messages():
    after_id = request.args.get('after_id', 0)
    courseId = request.args.get('courseId', 0)

    messages = Log.get_by_course(courseId)
    messagefeeds = []
    for message in messages:
        messagefeed = entity_to_dict(message, ['student', 'type', 'content'], ['date', 'key'])
        messagefeed["date"] = DateTimeJSONEncoder().encode(message.date).replace('"', '')
        student = ndb.Key('Student', courseId + (message.teacher if message.teacher else message.student)).get()
        if (student):
            messagefeed['info'] = student.info()
        messagefeeds.append(messagefeed)
    return json.dumps(messagefeeds)
Esempio n. 25
0
def log_art(art_id):
    """log page for art"""

    file = request.files['image']
    image_resize = process_image(file)
    img_filename = handle_img_upload(file)
    comment = request.form["comment"]

    log = Log(art_id=art_id,
              user_id = current_user.user_id,
              comment=comment,
              img=img_filename) 
    
    db.session.add(log)
    db.session.commit()

    s3_resource.put_object(Bucket=bucket_name, Key=img_filename, Body=image_resize)
    return "Your site has been logged"
Esempio n. 26
0
def dashboard():
    students = getStudents()
    for student in students:
        student['rewardcount'] = Log.get_by_type(student['studentId'],
                                                 LogType.REWARD).count()
    entries = Poll.get_todays().fetch(5)
    for entry in entries:
        entry.answers = PollAnswer.query(PollAnswer.parent == entry.key)
        if entry.type == "poll":
            entry.yes = PollAnswer.query(PollAnswer.parent == entry.key,
                                         PollAnswer.answer == "yes").count()
            entry.no = PollAnswer.query(PollAnswer.parent == entry.key,
                                        PollAnswer.answer == "no").count()
    config = app.config.get('config')
    jsonconfig = json.dumps(app.config.get('config'))
    return render_template('admin/dashboard.html',
                           appconfig=config,
                           config=jsonconfig,
                           entries=entries,
                           students=students)
Esempio n. 27
0
    def decorated(*args, **kwargs):
        try:
            token = request.headers.get('Authorization')[7:].encode('UTF-8')

            if not session.query(Log).filter(Log.token == token).first():
                raise ValueError("ValueError: Token not registered.")

            data = Log.verify_token(token, app.config['SECRET_KEY'])

        except jwt.exceptions.ExpiredSignatureError:
            return {
                'mensagem': 'Sessão inválida.'
            }, 403

        except Exception as e:
            print(e.__class__)
            return {
                'mensagem': 'Não autorizado.'
            }, 403

        return f(*args, **kwargs)
Esempio n. 28
0
def dashboard():
    students = getStudents()
    meetings = getMeetings()
    for student in students:
        student['rewardcount'] = Log.get_by_type(student['studentId'],
                                                 'reward').count()
    entries = Poll.get_todays().fetch(5)
    for entry in entries:
        entry.answers = PollAnswer.query(PollAnswer.parent == entry.key)
        for answer in entry.answers:
            answer.student = getStudent(answer.studentId)
            answer.studentName = getStudentName(answer.student)
        if entry.type == "poll":
            entry.yes = PollAnswer.query(PollAnswer.parent == entry.key,
                                         PollAnswer.answer == "yes").count()
            entry.no = PollAnswer.query(PollAnswer.parent == entry.key,
                                        PollAnswer.answer == "no").count()
    jsonconfig = json.dumps(app.config.get('config'))
    return render_template('admin/dashboard.html',
                           jsconfig=jsonconfig,
                           entries=entries,
                           students=students,
                           meetings=meetings)
Esempio n. 29
0
def new_teacher_message(lti=lti):
#def new_teacher_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    teacherId = cgi.escape(content['teacherId'])
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    teacher_key = ndb.Key('Student', courseId + teacherId)
    teacher = teacher_key.get()

    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.teacher = teacherId
    message.put()

    newStudentMessage(courseId, studentId, {
        'student': teacherId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': teacher.info(),
        'teacherinfo': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': teacher.info(),
        'teacherinfo': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    return "Message received"
Esempio n. 30
0
 def emit(self,record):
     """ Store the record to the collection. Async insert """
     l = Log()
     l.msg = str(record.msg)+ str(record.args)+str(traceback.format_exc())
     l.filename = record.filename
     l.name = record.name 
     l.levelno = record.levelno
     l.levelname = record.levelname
     if flask.request:
         w = flask.request
         l.json = dumps(w.json,ensure_ascii=False)
         l.url = w.url
         l.session = str(flask.session.items())
         l.ua = w.user_agent.string
         l.ip = w.remote_addr
     l.save()
Esempio n. 31
0
    # Get yo student
    my_student = session.query(Student).filter_by(student_email=rec['student_email']).first()

     # make sure your student exists
    assert my_student


    # Check if note already exists:
    if log_already_exists(my_student.student_id, rec['log_date']):
        continue




    my_log = Log(
        student_id = my_student.student_id,
        log_date = rec['log_date'],
        minutes_practiced = rec['minutes_practiced'],
        pieces_practiced = rec['pieces_practiced'],
        practice_notes = rec['practice_notes']
    )

    # Add to the session
    session.add(my_log)

# Finally, commit
session.commit()

#
Esempio n. 32
0
# bars = parse_csv("data\EURUSD_D1_HistoricalSSI.csv")
# bars = parse_csv("data\EURUSD_H4_HistoricalSSI.csv")
# bars = parse_csv("data\EURUSD_H1_HistoricalSSI.csv")
base_unit = 100000
THRESHOLD = 4
trader = Trader()
logs = LogManager()
for bar in bars.bars:
    ssi = bar.ssi
    if trader.stock > 0:
        if ssi >= -THRESHOLD:
            trader.close(bar)
            logs.add(
                Log(
                    timestamp=bar.timestamp,
                    equity=trader.equity,
                    stock=trader.stock,
                ))
    elif trader.stock < 0:
        if ssi <= -THRESHOLD:
            trader.close(bar)
            logs.add(
                Log(
                    timestamp=bar.timestamp,
                    equity=trader.equity,
                    stock=trader.stock,
                ))
    if trader.stock == 0:
        if ssi >= THRESHOLD:
            unit = base_unit
            trader.sell(bar, unit)
Esempio n. 33
0
    # Find existing log or create a new one.
    try:
        log = mysql.query(Log).filter(Log.url==chat).one()
        try:
<<<<<<< HEAD
            latest_page_query = mysql.query(LogPage).filter(LogPage.log_id==log.id).order_by(LogPage.number.asc())
            latest_page = latest_page_query[-1]
            # XXX Is IndexError the right exception?
        except IndexError:
=======
            latest_page = mysql.query(LogPage).filter(LogPage.log_id == log.id).order_by(LogPage.number.desc()).limit(1).one()
        except NoResultFound:
>>>>>>> 68ff6b3af88cb4d1d46a949b61b7e3086f286404
            latest_page = new_page(mysql, log)
    except NoResultFound:
        log = Log(url=chat)
        mysql.add(log)
        mysql.flush()
        latest_page = new_page(mysql, log)
    return log, latest_page

def new_page(mysql, log, last=0):
    new_page_number = last+1
    latest_page = LogPage(log_id=log.id, number=new_page_number, content=u'')
    mysql.add(latest_page)
    # XXX COMMIT HERE?
    log.page_count = new_page_number
    return latest_page

def archive_chat(redis, mysql, chat, backlog=0):
    log, latest_page = get_or_create_log(redis, mysql, chat)