Exemplo n.º 1
0
    def get(self):
        student_no = self.request.get('student_no')

        user_key = db.Key.from_path('User', student_no)
        user = db.get(user_key)
        grades = core.jwc.Grades(student_no, user.passwd)
        content = grades.getGrades()

        if not content:     # 如果此时网站不能正常访问,则加入列表,自动后台 cron job
            # add to list.
            template_values = {
                'user': user
            }
            template = jinja_environment.get_template('wait-for-email.html')
            self.response.out.write(template.render(template_values))
            return

        logging.info('%s done.' % student_no)

        passwd = user.passwd    # backup
        email = user.email
        db.delete(user_key) # delete from list.

        user_done = models.User_done(key_name=student_no)   # add to done_list.
        user_done.student_no = student_no
        user_done.passwd = passwd
        user_done.email = email
        user_done.done_date = util.time_now()   # +8.
        user_done.put()  # store

        template_values = {
            'content': grades.getGrades()
        }
        template = jinja_environment.get_template('showgrades.html')
        self.response.out.write(template.render(template_values))
Exemplo n.º 2
0
    def get_kline(self, symbol, period='1day', fqType='normal', begin=None, end=None, dataframe=True):
        if end is None:
            end = util.time_now()
        if isinstance(begin, str):
            begin = util.date_to_timestamp(begin)
        if isinstance(end, str):
            end = util.date_to_timestamp(end)
        try:
            response = self.session.get(
                connection.URL_XUEQIU_KLINE(symbol=symbol, period=period, fqType=fqType, begin=begin, end=end),	headers=connection.HEADERS_XUEQIU,proxies=connection.proxies,	timeout=3
            )
            kline = response.json()
            # time.sleep(0.5)
        except Exception as e:
            self.logger.warning("{}".format(e))
            self.logger.info(response.text)
            time.sleep(3)
            return False

        if kline["success"] == 'true':
            if dataframe:
                if (kline["chartlist"] is not None) and (kline["chartlist"] != []):
                    df = DataFrame.from_records(kline["chartlist"])
                    df["time"] = pandas.to_datetime(df["time"])
                    df["time"] += timedelta(hours=8)
                    df["symbol"] = symbol
                    return df
                else:
                    return DataFrame()
            else:
                return kline["chartlist"]
        else:
            return None
Exemplo n.º 3
0
    def post(self):
        uid = self.request.get('uid')
        passwd = self.request.get('passwd')
        email = self.request.get('email')
        if len(uid)<8 or len(passwd)<6 or len(email)<5:  # TODO 验证不符合要求的输入
            self.redirect('/')

        try:
            user = models.User(key_name=uid)    # uid is key.
            user.student_no = uid
            user.passwd = passwd
            user.email = email
            user.date = util.time_now()   # +8.
            user.put()  # store
            self.redirect('/getgrades?' + urllib.urlencode({'student_no': uid}))
        except:
            self.redirect('/')
Exemplo n.º 4
0
    logging.info('begin cron tasks.')
    newUsers = db.GqlQuery("SELECT * "
                           "FROM User "
                           "ORDER BY date ASC")
    succeed = 0
    for user in newUsers:
        grades = core.jwc.Grades(user.student_no, user.passwd)
        content = grades.getGrades()
        if content:
            succeed += 1
            util.SendMail(user.email, user.student_no, content)

            student_no = user.student_no
            passwd = user.passwd    # backup
            email = user.email
            db.delete(user) # delete from list.

            user_done = models.User_done(key_name=student_no)   # add to done_list.
            user_done.student_no = student_no
            user_done.passwd = passwd
            user_done.email = email
            user_done.done_date = util.time_now()   # +8.
            user_done.put()  # store

        else:
            if succeed == 0:
                break
            else:
                time.sleep(1)

    logging.info('%d user succeed.', succeed)
Exemplo n.º 5
0
from sklearn.preprocessing import StandardScaler

import settings.para_pre as para
import util

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# --------------------------------------------------------------------------------------
# Main script
# --------------------------------------------------------------------------------------
if __name__ == '__main__':
    print('[{}] Program starts'.format(util.time_now()),
          "(" + str(para.PARA_FUNCTION) + "_" + str(para.VERSION) + ")")

    # region Reading data - target, test and their settings and formatting to DataFrames
    print('[{}] Reading data from: '.format(util.time_now()),
          para.RAW_INPUT_PATH)
    train_df = pd.read_csv(os.path.join(para.RAW_INPUT_PATH, 'train.csv'))
    test_df = pd.read_csv(os.path.join(para.RAW_INPUT_PATH, 'test.csv'))

    print('Training data shape (original): ', train_df.shape)
    print('Test data shape: (original)', test_df.shape)

    train, test, target, train_id, test_id, train_label = util.format_input(
        train_df=train_df,
        test_df=test_df,
        id_label=para.ID_LABEL,
Exemplo n.º 6
0
import gc

import settings.para as para
import util

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# --------------------------------------------------------------------------------------
# Main script
# --------------------------------------------------------------------------------------
if __name__ == '__main__':
    print('[{}] Program starts'.format(util.time_now()), "(" + str(para.PARA_FUNCTION) + "_" + str(para.VERSION) + ")")

    # initiate h2o
    h2o.init(port=5432)

    # region Reading data - target, test and their settings and formatting to DataFrames
    print('[{}] Loading data from: '.format(util.time_now()), para.RESOURCE_PATH)
    print('Data set with suffix:', para.INPUT_SUFFIX)

    # Set data type (skipped)

    train_df = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'train' + para.INPUT_SUFFIX + '.csv'))
    test_df = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'test' + para.INPUT_SUFFIX + '.csv'))
    target = h2o.import_file(os.path.join(para.RESOURCE_PATH, 'target.csv'))

    print('Training data shape (original): ', train_df.shape)