Пример #1
0
 def save(self):
     data = db.get_db()
     data.update({
         self.name.capitalize():
         [self.start_date, self.pages, self.progress, self.end_date]
     })
     db.insert(data)
Пример #2
0
def my_history(data=False):
    if not data:
        tradeList = my_trader.order_history()
    else:
        tradeList = data

    if 'detail' in tradeList:
        lib.showError(tradeList['detail'])
        login(force=True)

    for trade in tradeList['results']:
        for execution in trade['executions']:

            try:
                db.insert(
                    'trades', {
                        'user_id': getuser(trade),
                        'side': trade['side'],
                        'instrument': trade['instrument'].split('/')[-2],
                        'quantity': execution['quantity'],
                        'price': execution['price'],
                        'created': execution['timestamp'],
                        'rbn_id': execution['id']
                    })
            except:
                return

        inject(trade)

        print("{} {:5s} {:6s}".format(trade['created_at'], trade['side'],
                                      trade['instrument']['symbol']))

    if tradeList['next']:
        data = my_trader.session.get(tradeList['next'])
        my_history(data.json())
Пример #3
0
def add_ege_task(task_name: str, task_description: str):
    """ Добавляет ЕГЭ задание """

    db.insert("ege", {
        "tasks": task_name,
        "tasks_name": task_description,
    })
Пример #4
0
def write_sql():
    try:
        work = open_workbook("英语口语3000高频词.xlsx")
    except:
        print("读取xlsx文件失败")
        exit()
    data = work.sheet_by_index(0)
    for i in range(1, data.nrows):
        id = str(int(data.cell_value(i, 0)))
        sentence = data.cell_value(i, 5).replace("\n", '')
        en = ''
        zh = ''
        for index in range(len(sentence)):
            if '\u4e00' <= sentence[index] <= '\u9fff':
                en = sentence[:index]
                zh = sentence[index:]
                break
        if en == '':
            en = sentence
        new = {
            'id': id,
            'word': data.cell_value(i, 1),
            'count': int(data.cell_value(i, 2)),
            'symbol': data.cell_value(i, 3),
            'translate': data.cell_value(i, 4).replace("\n", ''),
            'en': en,
            'zh': zh,
        }
        db.insert(new)
Пример #5
0
def create_graph():
    buffer = pd.DataFrame()

    for matchings, _, trip in get_trip_match():
        start = time.process_time()

        graph = aggregate(trip, matchings)

        print(f'aggregate - {time.process_time() - start}')

        graph = topologize(graph, get_intersections(), trip['TripId'].iloc[0],
                           trip['BoksId'].iloc[0])

        print(f'topologize - {time.process_time() - start}')

        if len(graph) == 0:
            continue

        if buffer.empty:
            buffer = graph
            print('empty')
        elif graph['DateTime'].iloc[0].strftime(
                '%x') != buffer['DateTime'].iloc[0].strftime('%x'):
            buffer['Distance'] = buffer[['Source', 'Destination'
                                         ]].apply(func=get_distance, axis=1)
            db.insert('test', buffer, replace=True)
            buffer = graph
            print('insertion')
            exit()
        else:
            buffer = buffer.append(graph)
            print('append')
Пример #6
0
def getInstrument(url):
    key = url.split('/')[-2]
    res = lib.r.hget('inst', key)

    try:
        res = res.decode("utf-8")
    except BaseException:
        pass

    if not res:
        req = urllib.request.Request(url)

        with urllib.request.urlopen(req) as response:
            res = response.read()

            lib.r.hset('inst', key, res)

    resJson = json.loads(res)

    name = resJson['simple_name']

    if not name:
        name = resJson['name']

        db.insert('instruments', {'ticker': resJson['symbol'], 'name': name})

    return res
Пример #7
0
def addidc():
    if not session.get('name', None):
        return redirect('/login')


#    if session.get('role') != 'admin':
#        errmsg = "you are not admin, can not register idc"
#	return json.dumps({'code':1,'errmsg':'you are not admin, can not add idc'})
    if request.method == 'POST':
        print '---------reuqst.form-----'
        print request.form
        print '---------dict(reuqst.form)-----'
        print dict(request.form)
        print '---------dict(reuqst.form).items()-----'
        print dict(request.form).items()
        data = {}
        data = dict((k, v[0]) for k, v in dict(request.form).items())
        print data
        # data = request.get_json()
        fields = ['name', 'name_cn', 'address', 'adminer', 'phone']
        table = 'idc'
        if not data["name"]:
            errmsg = "name null"
            return render_template("idc/idc.html", result=errmsg)
        try:
            db.insert(fields, data, table)
            return json.dumps({'code': 0, 'result': 'add idc success'})
        except:
            print traceback.print_exc()
            return json.dumps({'code': 1, 'errmsg': 'add idc error'})
    else:
        return render_template("idc/addidc.html", info=session)
Пример #8
0
def add_table_to_database(table):
    '''
    Add promocodes into "promocodes" table
    '''
    row_index = 1
    collections = []
    promocodes = []
    for row in table.find_all('tr')[1:]:
        columns = row.find_all('td')
        date = columns[0].text
        text = link_processing(
            columns[1].find('a')['href']) if columns[1].get_text(
            ) == '[автокод]' else columns[1].get_text().replace('\n', ' ')
        description = columns[2].text
        collection_link = link_processing(columns[2].find(
            'a')['href']) if columns[2].find('a') is not None else '-'
        if re.search(r'\d+%', description) is not None:
            rate = int(re.search(r'\d+%', description)[0][:-1])
        elif re.search(r'бесплатно', description):
            rate = 100
        else:
            rate = 0
        promocodes.append(
            (row_index, date, description, text, rate, collection_link))
        collections.append((row_index, collection_link))
        row_index += 1
    insert('promocodes', promocodes)
    print('Table promocodes is filled')
    return collections
Пример #9
0
def run(shapes):
    rer = lambda x: (x[2],x[3],x[0],x[1])
    lines = {}
    for i in range(0,len(shapes)-1):
        start = shapes[i]
        end = shapes[i+1]
        if int(start[3]) == int(end[3])-1: # check the sequence
            line = (start[1],start[2],end[1],end[2])
            if line not in lines and rer(line) not in lines:
                lines[line] = []
            if line in lines:
                lines[line].append(start[0])
            else:
                lines[rer(line)].append(start[0])

    lines_table = []
    shapes_to_lines = []
    i = 1
    for a,value in lines.iteritems():
        lines_table.append((a[0],a[1],a[2],a[3],i))
        for shape in value:
            shapes_to_lines.append((shape,i))
        i = i+1

    db.insert('lines',lines_table)
    db.insert('shapes_to_lines',shapes_to_lines)
Пример #10
0
def saveLoanInfoToDB(db, infoLoan, infoBorrow,url):
  try:
    # check whether personInfo exists. if not, save it
    personID = db.getPersonID(infoLoan[4], INFO_SOURCE)
    if personID < 0:
      sql = "insert into personInfo (nickName, infoSource, updateTime, url) values ('%s', '%s', '%s', '%s');" % (infoLoan[4], INFO_SOURCE, str(time.time()), url)
      personID = db.insert(sql)
      

    # save borrowRecords to DB
    columns = "personID, updateTime, moneyAmount, interestRate, duration, infoSource, url, monthPay"
    values = "'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'" % (personID, str(time.time()), infoLoan[0], infoLoan[1], infoLoan[2], INFO_SOURCE, url, infoLoan[3])
    sql = "insert into borrowRecords (%s) values (%s);" % (columns, values)
    borrowID = db.insert(sql)

    # save bidRecords to DB
    columns = "borrowID, personID, bidMoney, updateTime, url"
    for borrow in infoBorrow:
      bidPersonName = ''.join(''.join(borrow[0].split()).split(','))
      bidMoney = ''.join(''.join(borrow[2].split()).split(','))
      bidPersonID = db.getPersonID(bidPersonName, INFO_SOURCE)
      if bidPersonID < 0:
        sql = "insert into personInfo (nickName, infoSource, updateTime, url) values ('%s', '%s', '%s', '%s');" % (bidPersonName, INFO_SOURCE, str(time.time()), url)
        bidPersonID = db.insert(sql)
      values = "'%s', '%s', '%s', '%s', '%s'" % (borrowID, bidPersonID, bidMoney, str(time.time()), url)
      sql = "insert into bidRecord (%s) values (%s);" % (columns, values)
      bidID = db.insert(sql)
  except Exception, data:
    print "[Exception]", data
Пример #11
0
def saveFMPlanInfoToDB(db, infoPlan, joinDict, period):
    try:
        # save plan info to DB
        columns = "section, money, income, updateTime, state, leftMoney, lockedLimit, lockedOverTime, url"
        values = "'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'" % (
            str(period), infoPlan[0], infoPlan[1], str(
                time.time()), infoPlan[2], infoPlan[5], infoPlan[3],
            infoPlan[4], FM_PLAN_URL + str(period))
        sql = "insert into renrendai_youxuanlicai (%s) values (%s);" % (
            columns, values)
        licaiID = db.insert(sql)

        # save plan join info to DB
        columns = "licaiID, personID, investment, investmentTiime, updateTime, url"
        for join in joinDict:
            personID = db.getPersonID(join['nickName'], DB_SOURCE)
            # check whether personInfo exists. if not, save it
            if personID < 0:
                sql = "insert into personInfo (nickName, updateTime, infoSource, url) values ('%s', '%s', '%s', '%s');" % (
                    join['nickName'], str(time.time()), DB_SOURCE, DB_URL)
                personID = db.insert(sql)
            values = "'%s', '%s', '%s', '%s', '%s', '%s'" % (
                licaiID, personID, str(join['amount']), join['createTime'],
                str(time.time()), FM_PLAN_JOIN_URL + str(period))
            sql = "insert into renrendai_youxuanlicaiJoin (%s) values (%s);" % (
                columns, values)
            db.exeSql(sql)

    except Exception, data:
        print "Exception:", data
Пример #12
0
def historical(stockList):
    global last
    for stock in stockList:
        url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol={}&apikey={}".format(
            stock, key)
        resraw = lib.cache_get(url, wait_until=last + 20)
        last = time.time()

        resjson = json.loads(resraw)
        if "Note" in resjson:
            resraw = lib.cache_get(url, force=True, wait_until=last + 20)
            last = time.time()
            resjson = json.loads(resraw)

        if 'Time Series (Daily)' not in resjson:
            print(resraw)
            return

        duration = 60 * 24
        for date, row in resjson['Time Series (Daily)'].items():
            db.insert(
                'historical', {
                    'ticker': stock,
                    'open': row['1. open'],
                    'high': row['2. high'],
                    'low': row['3. low'],
                    'close': row['4. close'],
                    'begin': date,
                    'duration': duration
                })
Пример #13
0
def systems():
    """
    Page for powering on, powering off, restarting, and reverting systems.
    """
    errors = None
    if request.method == 'POST':
        tid = current_user.team.id
        system = request.form['system']
        action = request.form['action']
        team = [t for t in wm.teams if t.id == tid][0]
        system = [s for s in wm.systems if s.name == system][0]
        vapp = system.vapp.base_name
        vapp = '{}_{}'.format(team.name, vapp)
        print(vapp, system.name)

        if request.form['action'] == 'power on':
            errors = vcloud.power_on(vapp, system.name)
        elif request.form['action'] == 'power off':
            errors = vcloud.power_off(vapp, system.name)
        elif request.form['action'] == 'restart':
            errors = vcloud.restart(vapp, system.name)
        elif request.form['action'] == 'revert':
            errors = vcloud.revert(vapp, system.name)
            if errors == '':
                db.insert('revert_log', ['team_id', 'system'],
                          [tid, system.name])
    systems = wm.systems
    return render_template('vcloud/systems.html',
                           systems=systems,
                           penalty=wm.settings['revert_penalty'],
                           errors=errors)
Пример #14
0
 def event_handler(self, server_name, raw_data):
     data = raw_data.strip()
     data = [x.strip() for x in data.split() if x]
     data.append(str(time.time()))
     print "data", data
     db.insert(server_name, data)
     self.pltr.update(server_name, data)
Пример #15
0
    def insert(self):
        '''
        insert object to db

        >>> class User(Model):
        ...     __table__ = 'user'
        ...     id = IntegerField(primary_key=True)
        ...     name = StringField()
        >>> user1 = User(id=1, name='a')
        >>> user2 = User(id=2, name='b')
        >>> user1.insert()
        {'name': 'a', 'id': 1}
        >>> user2.insert()
        {'name': 'b', 'id': 2}
        >>> d = User.get(1)
        >>> d.id
        1L
        >>> d.name
        u'a'
        '''
        params = {}
        for k, v in self.__mapping__.iteritems():
           if v.insertable:
               if v.name in self:
                   params[v.name] = self[k]
               else:
                   params[v.name] = v.default
        db.insert(self.__table__, **params)
        return self
Пример #16
0
def parse_data(data):
    currency = data["data"]
    for current in currency:
        db.insert((str(current["name"]), current["quote"]["USD"]["price"]))
    logger.info("DB WAS CREATED")
    db.insert_history()
    logger.info("HISTORY WAS CREATED")
def process_one_cat(url, cat_list):
    PAGE_NUM_PROCESSING = 1
    global_var._init()
    global_var.set_value("PAGE_NUM_PROCESSING", PAGE_NUM_PROCESSING)
    global_var.set_value("isLastPage", False)
    while True:
        page_num = global_var.get_value('PAGE_NUM_PROCESSING')
        tmp_url = url + str(page_num) + "/"
        # getJobList(tmp_url)
        print("while True main:" + tmp_url)
        s = requests.Session()
        lg = Lagou()
        pagegen = lg.getJobListPerPage(tmp_url, s)
        for item in pagegen:
            time_wait = 1 + float(random.randint(1, 100)) / 20
            time.sleep(time_wait)
            print("休息时间:" + str(time_wait))
            for job in item:
                db.insert(job, cat_list)
        print("跳出生成器")
        print("休息5秒钟")
        time.sleep(5)

        if global_var.get_value("isLastPage"):
            print("----------爬取结束---------,共" +
                  str(global_var.get_value('PAGE_NUM_PROCESSING')) + "页")
            break
Пример #18
0
 def test_with_one_value(self):
     connection = MockConector(test_env)
     insert(connection, 'TestTable', [{'id': 0, 'name': 'Test name 0'}])
     cursor = connection.cursor.return_value
     cursor.execute.assert_called_with(
         'INSERT INTO "TestTable"(id, name) VALUES (0, \'Test name 0\');')
     cursor.execute.assert_called_once()
Пример #19
0
def create_user(username,password):
    try:
        formattedUsername = format_username(username)
        hashedPassword = generate_password_hash(password)
        insert( 'user', ('username', 'password'), (formattedUsername, hashedPassword))
    except Exception as e:
        logging.error(traceback.format_exc())
Пример #20
0
def add_or_update_catagory(catagory_dict : dict):
    update_sql = '''update catagory set catagory_name =:catagory_name, catagory_order=:catagory_order, \
        catagory_desc=:catagory_desc , update_time =:save_time where id =:catagory_id'''
    insert_sql = '''insert into catagory ( catagory_name, catagory_order, catagory_desc ) \
        values( :catagory_name ,:catagory_order, :catagory_desc)'''
    if not  db.update(update_sql, catagory_dict):
        db.insert(insert_sql, catagory_dict)
Пример #21
0
def run(shapes):
    rer = lambda x: (x[2], x[3], x[0], x[1])
    lines = {}
    for i in range(0, len(shapes) - 1):
        start = shapes[i]
        end = shapes[i + 1]
        if int(start[3]) == int(end[3]) - 1:  # check the sequence
            line = (start[1], start[2], end[1], end[2])
            if line not in lines and rer(line) not in lines:
                lines[line] = []
            if line in lines:
                lines[line].append(start[0])
            else:
                lines[rer(line)].append(start[0])

    lines_table = []
    shapes_to_lines = []
    i = 1
    for a, value in lines.iteritems():
        lines_table.append((a[0], a[1], a[2], a[3], i))
        for shape in value:
            shapes_to_lines.append((shape, i))
        i = i + 1

    db.insert('lines', lines_table)
    db.insert('shapes_to_lines', shapes_to_lines)
Пример #22
0
def process_file(data, name):
    result = parse(BytesIO(data))
    result['name'] = name
    result['timestamp'] = datetime.now().strftime('%Y-%m-%d-%H.%M.%S')
    result['uuid'] = uuid.uuid4().hex
    db.insert(result)
    return result
Пример #23
0
def write_web_users(admins, teams):
    """
    Write web interface users to the database, hashing their passwords.

    Arguments:
        admins (Dict(str->str)): Mapping of admin usernames to passwords
        teams (Dict(str->Dict)): Mapping of team names to team data
    """
    # Admin users
    for username, password in admins.items():
        password = password.encode('utf-8')
        pwhash = bcrypt.hashpw(password, bcrypt.gensalt())
        db.insert('users', ['username', 'password', 'team_id', 'is_admin'],
                  (username, pwhash, None, True))

    # Regular users
    for team_name, data in teams.items():
        tid = teams[team_name]['team_num']
        username = data['user']['username']
        password = data['user']['password']
        password = password.encode('utf-8')
        pwhash = bcrypt.hashpw(password, bcrypt.gensalt())

        db.insert('users', ['username', 'password', 'team_id', 'is_admin'],
                  (username, pwhash, tid, False))
Пример #24
0
def admin_claim_schicht(request):
	if request.method != 'POST':
		return render_template('error.xml',
				error_short='invalid request',
				error_long='you didnt send a POST request. we don\'t understand anything else',
				session=request.session)

	## XXX is it ok to use username here? should be, because the login checker
	## corrects it if anyone tried to fiddle with it
	username = request.form.get('username')
	schicht_id = request.form.get('schicht_id')

	if not db.sane_int(schicht_id) or not db.sane_str(username):
		return invalid_form_error(request.session, msg=u"schicht_id keine zahl oder username kein string")

	userid, found = _find_userid_byname(username)
	if not found:
		return invalid_form_error(request.session, msg=u"user existiert nicht.  sicher dass du dich angemeldet hast?")

	db.insert('INSERT INTO person_schicht (pers_id, schicht_id) VALUES (?, ?)', (userid, schicht_id))

	redirect_target = request.form.get('redirect_target')
	if not redirect_target:
		redirect_target = '/schicht'


	return redirect(redirect_target)
Пример #25
0
def slap_save (data = None):
    """Save a new slap"""
    slap = data.strip()
    slap = slap.replace ("\"","\\\"")
    slap = "(\"%s\")"%slap
    db.insert ("bot_slaps", slap, "`slap`")
    return "Slap Saved"
Пример #26
0
def start():

    # print('Get news from kompas.com')
    # from_kompas = scraper.kompas()
    # print('Get news from cnnindonesia.com')
    # from_cnn = scraper.cnn()
    # print('Get news from liputan6.com')
    # from_liputan6 = scraper.liputan6()
    # print('Get news from bbc.com')
    # from_bbc = scraper.bbc()
    print('Get news from globalnews.ca')
    from_globalnews = scraper.globalnews()

    # insert data from kompas
    # for n in from_kompas:
    #     db.insert(title=n[0], link=n[1], image=n[3], tag=n[2], source=n[4])

    # # insert data from CNN
    # for n in from_cnn:
    #     db.insert(title=n[0], link=n[1], image=n[3], tag=n[2], source=n[4])

    # # insert data from liputan6
    # for n in from_liputan6:
    # 	db.insert(title=n[0], link=n[1], image=n[3], tag=n[2], source=n[4])

    # # insert data from bbc
    # for n in from_bbc:
    # 	db.insert(title=n[0], link=n[1], image=n[3], tag=n[2], source=n[4])

    # insert data from bbc
    for n in from_globalnews:
        db.insert(title=n[0], link=n[1], image=n[3], tag=n[2], source=n[4])

    print(db.get_inserted(), 'news inserted.')
    db.set_inserted(0)
Пример #27
0
def procesarUno(row, clima, data_anterior):
    #SETEO DE NUEVO REGISTRO
    new_row = {}
    # VERIFICACION POR CADA ACUMULATED PARA HACER EL CALCULO
    for key in data_anterior:
        current_value = round(Decimal(row[key].replace('KWH', '')), 3)
        new_row['ACM_' + key] = current_value
        # SI LA DIFERENCIA ES MAYOR AL ACUMULADO ALGO ANDA MAL
        new_row[key] = (current_value - data_anterior[key]) if (
            current_value >= data_anterior[key]) else current_value
        data_anterior[key] = current_value
    new_row['PInverter'] = row['PInverter']
    new_row['PGrid'] = row['PGrid']
    new_row['PV voltage'] = row['PV voltage']
    new_row['Load percent'] = row['Load percent']
    #SETEO DE FECHA Y FORMATEO DE LA HORA
    new_row['fecha'] = row['RecordTime'][0:10]
    new_row['hora'] = formatearHora(row['RecordTime'])
    # SETEO DE CLIMA
    new_row['nubosidad'] = clima[int(
        new_row['hora'])]['cloud'] if clima else "NULL"
    new_row['temperatura'] = clima[int(
        new_row['hora'])]['temp_c'] if clima else "NULL"
    #INSERTO EN DB
    db.insert(new_row)

    return data_anterior
Пример #28
0
    def test_db(self):
        data_uuid = uuid.uuid4().hex
        data = {
            'name': '',
            'branches': [
                (1, 2),
                (2, 3),
                (3, 4),
                (4, 1),
                (2, 5),
                (1, 5)
            ],
            'nodes': [1, 2, 3, 4, 5],
            'uuid': data_uuid
        }

        db.insert(data)
        db_data = db.read(data_uuid)

        expected = [{
            'name': '',
            'branches': [
                [1, 2],
                [2, 3],
                [3, 4],
                [4, 1],
                [2, 5],
                [1, 5]
            ],
            'nodes': [1, 2, 3, 4, 5],
            'uuid': data_uuid

        }]

        self.assertListEqual(db_data, expected)
Пример #29
0
def add_or_update_goods(goods_dict: dict):
    update_sql = '''update goods set goods_name =:goods_name, goods_order=:goods_order, \
        goods_unit=:goods_unit , goods_price=:goods_price, catagory_id=:catagory_id, update_time =:save_time where id =:goods_id'''
    insert_sql = '''insert into goods ( goods_name, goods_order, goods_unit, goods_price , catagory_id) \
        values( :goods_name ,:goods_order, :goods_unit, :goods_price, :catagory_id)'''
    if not db.update(update_sql, goods_dict):
        db.insert(insert_sql, goods_dict)
Пример #30
0
def add(update: Update, context: CallbackContext):
    users = []
    user = update.effective_user
    id = user['id']
    msg = ""

    #check if already in users.txt
    users = db.check(user.mention_markdown(), update.effective_chat.id)
    if len(users) != 0:
        msg = "You've already been added!"
        context.bot.send_message(
            chat_id=update.effective_chat.id,
            text=msg,
            reply_to_message_id=update.effective_message.message_id,
            parse_mode="Markdown",
        )
        return

    db.insert(user.mention_markdown(), update.effective_chat.id)

    msg = "You've been added! Please start me personally to get notified @invisibletagbot."

    context.bot.send_message(
        chat_id=update.effective_chat.id,
        text=msg,
        reply_to_message_id=update.effective_message.message_id,
        parse_mode="Markdown",
    )
Пример #31
0
def login(username, password, headers):
    """Log in user into his account(if it is his account)
    headers - dictionary
    return id or None
    """
    username = common.escape(username)
    sql_str = "username='******'"
    sql_str = sql_str.format(username)
    user = db.select('USERS', sql_str)
    if user:
        user = user[0]
        pass_hash = _generate_hash(password, user[3])
        if user[2] == pass_hash:
            session_id = None
            while (session_id is None) or db.select('SESSIONS', sql_str):
                session_id = _generate_string(256)
                sql_str = "session_id='{}'"
                sql_str = sql_str.format(session_id)

            td = datetime.timedelta(14)
            dt = datetime.datetime.today()
            dt = dt + td
            expires = common.utctime(dt)
            cookie = "session_id={}; expires={}; path=/"
            cookie = cookie.format(session_id, expires)
            headers.append(('Set-Cookie', cookie))

            user_id = user[0]
            db.insert('SESSIONS', (session_id, user_id))
            return user_id
    return None
Пример #32
0
def save_msg(msg):
    if not db.connection:
        return
    text = msg['Text'] if msg['Type'] == 'Text' else msg['Type']
    to_store = (msg['FromUserName'], msg.get('ActualNickName', None),
                msg['ToUserName'], text, msg['Type'], msg['CreateTime'])
    db.insert(to_store)
Пример #33
0
def add_user():
    if not session.get('name', None):
        return redirect('/login')
    if session.get('role') != 'SU':
        return json.dumps({
            'code': 0,
            'result': 'you are not admin, can not register user'
        })
    if request.method == 'POST':
        data = {}
        data = dict((k, v[0]) for k, v in dict(request.form).items())
        data['password'] = hashlib.md5(data['password'] + salt).hexdigest()
        print data
        # data = request.get_json()
        fields = [
            'name', 'name_cn', 'password', 'mobile', 'email', 'role', 'status'
        ]
        if not data["name"]:
            return json.dumps({'code': 1, 'result': 'name not null'})
        try:
            table = 'users'
            db.insert(fields, data, table)
            return json.dumps({'code': 0, 'result': 'add user success'})
        except:
            print traceback.print_exc()
            return json.dumps({'code': 1, 'result': 'name not null'})
    else:
        return render_template("user/adduser.html", info=session)
Пример #34
0
 def update_contest_statistics(result):
     """
     更新比赛统计数据
     :param result:
     :return:
     """
     count = db.select_int('select count(*) from t_ranking where contest_id=? and problem_id=? and username=?',
                           result['contest_id'], result['problem_id'], result['user_id'])
     if count == 0:
         record = dict(contest_id=result['contest_id'], problem_id=result['problem_id'], username=result['user_id'])
         db.insert('t_ranking', **record)
     p_time = db.select_one('select AC_time from t_ranking where contest_id=? and problem_id=? and username=?',
                            result['contest_id'], result['problem_id'], result['user_id']).get('AC_time')
     if p_time == 0:  # 本题还没有AC
         if result['result'] == configs.result_code.AC:  # 本题初次AC
             with db.connection():
                 submit_time = db.select_one('select submit_time from t_submission where submission_id=?',
                                             result['solution_id']).get('submit_time')   # 提交时间, datetime类型
                 date_time = db.select_one('select contest_date, start_time from t_contest where contest_id=?',
                                           result['contest_id'])
                 c_date = date_time.get('contest_date')  # 比赛开始日期, date类型
                 c_time = date_time.get('start_time')    # 比赛开始时间, timedelta类型
                 # 转换为比赛开始时间, datetime类型
                 contest_time = datetime.strptime(c_date.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S') + c_time
                 ac_time = (submit_time - contest_time).total_seconds() / 60  # 本题初次AC所用时间, 单位为分钟, float类型
                 with db.transaction():
                     db.update('update t_ranking set AC_time=? where contest_id=? and problem_id=? and username=?',
                               ac_time, result['contest_id'], result['problem_id'], result['user_id'])   # AC题目所用时间
         else:
             db.update('update t_ranking set wrong_submit = wrong_submit + 1 where contest_id=? and problem_id=? '
                       'and username=?', result['contest_id'], result['problem_id'], result['user_id'])
Пример #35
0
def start():
    print "importing from data.gov.in files..."

    db.insert("source", {"name": "data.gov.in"})

    for fpath in os.listdir(os.path.join("data", "csv")):
        process_file(fpath)
Пример #36
0
def addcabinet():
    if session.get('name', None):
        redirect('/login')
    if request.method == 'POST':
        data = dict((k, v[0]) for k, v in dict(request.form).items())
        fields = ['name', 'idc_id', 'u_num', 'power']
        table = 'cabinet'
        try:
            db.insert(fields, data, table)
            return json.dumps({'code': 0, 'result': 'add cabinet success'})
        except:
            print traceback.print_exc()
            return json.dumps({'code': 1, 'errmsg': 'add cabinet error'})

    else:
        table = 'idc'
        fields = ['id', 'name']
        result = db.selectAll(fields, table)
        print result
        data = [
            dict((k, row[i]) for i, k in enumerate(fields)) for row in result
        ]
        print data
        return render_template('cabinet/addcabinet.html',
                               info=session,
                               idcs=data)
Пример #37
0
def start():
	print "importing from data.gov.in files..."

	db.insert("source", {"name": "data.gov.in"})

	for fpath in os.listdir(os.path.join("data", "csv")):
		process_file(fpath)
Пример #38
0
 def insert(self):
      self.pre_insert and self.pre_insert()
      params = {}
      for k,v in self.__mappings__.iteritems():
          if v.insertable:
              params[v.name] = getattr(self,k)
      db.insert('%s' % self.__table__,**params) 
      return self
Пример #39
0
def addStudent(db, user, role):
    """
    Add a students for this teacher
    """
    data = request.json
    teacher, student = user, data["student"]
    insert(db, "log", time=datetime.now(), teacher=teacher, student=student)
    return {"status": "ok"}
Пример #40
0
def kstar_insert (data = None):
    if (data == None or data.strip() == '' ):
        return "I understand that kstar's godliness surpasses all words, but please do your best"
    else:
        quote = data.strip()
        quote = quote.replace ("\"","\\\"")
        quote = "(\"%s\")"%quote
        db.insert ("bot_quotes_kstar", (quote), "`quote`")
        return "Factoid saved"
Пример #41
0
def create_new_user(qq_id='',wb_id='',db_id=''):
    op_count=1
    user = dict(
        qq_id=qq_id,
        wb_id=wb_id,
        db_id=db_id,
        op_count=1
        )
    db.insert('user',**user)
Пример #42
0
 def insert(self):  # a little similar with save
     paras = {}
     for k, v in self.__mappings__.iteritems():
         if v.insertable:
             if not hasattr(self, k):
                 setattr(self, k, v.default)
             paras[v.name] = getattr(self, k)
     db.insert(str(self.__table__), **paras)
     return self
Пример #43
0
	def save(self):
		try:
			self.mfrom = self.mfrom.replace('"','\'')
			self.mto = self.mto.replace('"','\'')
			db.insert(self)
			return True
		except Exception, e:
			#print e
			return False
Пример #44
0
 def insert(self):
     self.pre_insert and self.pre_insert()
     params = {}
     for key,value in self.__mappings__.iteritems():
         if value.insertable:
             if not hasattr(self,key):
                 setattr(self,key,value.default)
             params[value.name] = getattr(self,key)
     db.insert('%s' % self.__table__,**params)
     return self
Пример #45
0
def savesetting( sng ):
	qstring = "INSERT INTO settings( user_id, name, value ) VALUES (%d, '%s', '%s');" % ( sng.user, sng.name, sng.value )
	db.insert( qstring )

	qstring = "SELECT id FROM settings WHERE user_id = %d AND name = '%s'" % (sng.user, sng.name)
	item = db.select( qstring )
	if ( not item == None ):
		sng.ident = item[0]
	else:
		sng.ident = 0
Пример #46
0
def adduser( usr ):
	qstring = "INSERT INTO users( login_name, passcode, email) VALUES ('%s', '%s', '%s');" % ( usr.login, usr.password, usr.email )
	db.insert( qstring )

	qstring = "SELECT id FROM users WHERE login_name = '%s' AND passcode = '%s' AND email = '%s'" % ( usr.login, usr.password, usr.email )
	item = db.select( qstring )
	if ( not item == None ):
		usr.ident = item[0]
	else:
		usr.ident = 0
Пример #47
0
 def insert(self):
     self.pre_insert and self.pre_insert()
     params = {}
     for k, v in self.__mappings__.iteritems():
         if v.insertable:
             if not hasattr(self, k):
                 setattr(self, k, v.default)
             params[v.name] = getattr(self, k)
     db.insert("%s" % self.__table__, **params)
     return self
Пример #48
0
def update_DB(trips_files, files_last_station):
    l = []
    for r in trips_files:
        for trip_id in r[1]:
            l.append((trip_id,r[0],trips_stops[trip_id][1]))
    db.insert('trips_stops',l)

    l = []
    for r in files_last_station:
        l.append((r[0],r[1]))
    db.insert('files_last_station',l)
Пример #49
0
	def insert(self):
		self.pre_insert and self.pre_insert
		params = {}
		for k,v in self.__mapping__.iteritems():
			if v.insertable:
				if not hasattr(self,k):
					setattr(self,k,v.default)
				params[v.name] = getattr(self,k)

		#print self.__table__,'********',params
		db.insert('%s' %self.__table__,**params)
		return self
Пример #50
0
 def insert(self):
     """通过db的insert接口执行sql
     sql: insert into `user` (`password`,`last_modified`,`id`,`name`) values (%s,%s,%s,%s)
     args:('','','','')
     """
     self.pre_insert and self.pre_insert()
     params = {}
     for k,v in self.__mappings__.iteritems():
         if v.insertable:
             if not hasattr(self,k):
                 setattr(self,k,v.default)
             params[v.name] = self[k]
     db.insert(self.__table__,**params)
     return self
Пример #51
0
    def insert(self):
        params = {}

        for k, v in self.__mapping__.iteritems():
            if v.insertable:
                if hasattr(self, k):
                    arg = getattr(self, k)
                else:
                    arg = v.default
                    setattr(self, k, arg)
                params[k] = arg

        db.insert('%s' % self.__table__, **params)
        return self
Пример #52
0
def create_task(queue, name, task_data=None, callback=None, max_retry=3, execution_time=None, timeout=60):
    '''
    Create a task.

    >>> tid = create_task('sample_queue', 'sample_task', 'task data')
    >>> f = fetch_task('sample_queue')
    >>> f.id==tid
    True
    >>> f.task_data
    u'task data'
    >>> f2 = fetch_task('sample_queue')
    >>> f2 is None
    True
    '''
    if not queue:
        queue = _DEFAULT_QUEUE
    if not name:
        name = 'unamed'
    if callback is None:
        callback = ''
    if callback and not callback.startswith('http://') and not callback.startswith('https://'):
        return dict(error='cannot_create_task', description='invalid callback')
    if task_data is None:
        task_data = ''
    if max_retry < 0:
        max_retry = 0
    if timeout <= 0:
        return dict(error='cannot_create_task', description='invalid timeout')
    current = time.time()
    if execution_time is None:
        execution_time = current
    task = dict( \
        id=db.next_str(), \
        queue=queue, \
        name=name, \
        callback=callback, \
        timeout=timeout, \
        status=_PENDING, \
        max_retry=max_retry, \
        retried=0, \
        creation_time=current, \
        execution_time=execution_time, \
        execution_start_time=0.0, \
        execution_end_time=0.0, \
        execution_expired_time=0.0, \
        task_data=task_data,
        task_result='',
        version=0)
    db.insert('tasks', **task)
    return task['id']
Пример #53
0
def process_msg():

	db.open()
	try:
		stamp = get_period_time_stamp()
		inb = inbox.Inbox()
		i=0
		
		msgs = inb.sms_messages()
		count = len(msgs)
		for i in range(count):
			if(i >= limit):
				break
			
			id = msgs[i]
			
			if(inb.address(id) != txNum):
				continue
			
			t = inb.time(id)
			
			if(t < stamp):
				#too early msg
				break
			#print t
			#print strftime("%Y-%m-%d %H:%M:%S", time.localtime(t))
			msg = inb.content(id)
			
			msg = msg.rstrip(u"【腾讯科技】")
			
			if(msg[:4] == "2/2)"):
				continue
				
			elif(msg[:4] == "1/2)"):
				if(i != 0):
					# i != 0, indicates that we already have both two pieces of the whole message
					newmsg = msg[4:] + inb.content(msgs[i-1])[4:].rstrip(u"【腾讯科技】")
			else:
				newmsg = msg
			
			msgArr = newmsg.split("|")
			
			if(len(msgArr) >= 2):
				main = msgArr[1]
				db.insert(id, main, inb.time(id), newmsg)
			
			
	finally:
		db.db.close()
Пример #54
0
def new_page(text_labels, root1):
	flag = False
	values=[]
	user_name=text_labels[2].get()
	if user_name not in db.fetch_user_id():
		flag = True
	else:
		msg = tk.Tk()
		msg.bell()
		l = tk.Label(msg, text = "User id already exists", font = ("Segoe Script", 12, "normal"))
		l.pack()
		l.config(bg = 'black', fg = 'white')
		msg.mainloop()
	if flag and text_labels[3].get() == text_labels[4].get():
		flag = True
		print("accepted")
		for i in text_labels:
			try:
				print(i,i.get())
				values.append(str(i.get()))
			except Exception as e:
				print(e)
		try:
			root1.destroy()
		except Exception as e:
			print(e)
	else:
		text_labels[3].delete(0,len(text_labels[3].get()))
		text_labels[4].delete(0,len(text_labels[4].get()))
		msg = tk.Tk()
		msg.bell()
		l = tk.Label(msg, text = "Enter the correct password", font = ("Segoe Script", 12, "normal"))
		l.pack()
		l.pack(bg = 'black', fg = 'white')
		msg.minsize(150,150)
		msg.mainloop()
	print("new_page")
	print(values)
	db.insert(tuple(values))
	#insert_to _db(values)
	upload = tk.Tk()
	f_name = tk.Label(upload, text = "Enter file name")
	f_name.pack()
	text = tk.Entry(upload)
	text.pack()
	up_b = tk.Button(upload, text = "UPLOAD", font = ("Segoe Script", 12, "normal"), command = lambda:db.upload(upload,user_name,text.get()))
	up_b.pack()
	upload.mainloop()
	foo(root1,user_name)
Пример #55
0
	def insert(self):
		"""
		通过db对象的insert接口执行SQL
			SQL: insert into `user` (`passwd`, `last_modified`, `id`, `name`, `email`) values(%s, %s, %s, %s, %s),
			ARGS: ('*******', 11111111, 'Michael', '*****@*****.**')
		"""
		self.pre_insert and self.pre_insert()
		params  = {}
		for k, v in self.__mappings__.iteritems():
			if v.insertable:
				if not hasattr(self, k):
					setattr(self, k, v.default)
				params[v.name] = getattr(self, k)
		db.insert('%s' % self.__table__, **params)
		return self
Пример #56
0
 def post(self):
     # 获取cookie保证用户已登录
     username = self.get_secure_cookie("username")
     # 检查是否登录
     if username is None:
         data = {'status':False, 'msg':'您尚未登录'}
         json_result = json.dumps(data , ensure_ascii=False)     # 把python对象编码成json格式的字符串
         self.write(json_result)
         return
     # 获取post数据
     recordDate = self.get_argument('recordDate', '')
     duration   = int(self.get_argument('duration', '0'))
     distance   = float(self.get_argument('distance', '0'))
     calorie    = int(self.get_argument('calorie', '0'))
     target     = float(self.get_argument('target', '0'))
     data = {'status':False, 'msg':''}
     sql = "select id from `ofRecord` where username=? and recordDate=?"
     res = db.select_one(sql, username, recordDate)
     if res is not None :                # 已上传过,更新信息
         recordID = res['id']
         sql = "update `ofRecord` set recordDate=?, duration=?, distance=?, calorie=?, target=? where id=? "
         res = db.update(sql, recordDate, duration, distance, calorie, target, recordID)
     else :                              # 未上传过,插入信息
         table = "ofRecord"
         kw = {"username":username, "recordDate":recordDate, "duration":duration, "distance":distance, "calorie":calorie, "target":target}
         res = db.insert(table, **kw)
     if res :       # 修改成功
         data['status'] = True
         data['msg']    = '修改成功'
     json_result = json.dumps(data , ensure_ascii=False)     # 把python对象编码成json格式的字符串
     self.write(json_result)
Пример #57
0
def get_or_create_school(name):
    sid = db.find_one_val('select id from school where name=%s', [name])
    if sid is not None:
        return sid
    else:
        print 'insert'
        return db.insert('school', {'name': name})
Пример #58
0
    def test_delete(self):
        row_dict = {'type': 'weight'}
        row_dict = db.insert('data', row_dict)
        db.delete('data', row_dict)

        assert_equal(None, row_dict.get('id'))
        assert_equal([], db.rows('select * from data'))
Пример #59
0
def create_user_token(user_id, **kwargs):
    user_token_id = db.insert("INSERT INTO user_tokens (user_id, token) VALUES(%s, UUID())", [user_id])

    for field_name in kwargs:
        db.update("UPDATE user_tokens SET " + field_name + " = %s WHERE id = %s", [kwargs[field_name], user_token_id])

    return db.fetchrow("SELECT * FROM user_tokens WHERE id = %s", [user_token_id])