示例#1
0
    def create(imgfile, permitted_user_ids, private):
        errors = FileWrapper.is_valid_file(imgfile)
        if len(errors):
            return None

        f_ext = path.splitext(imgfile.filename)[1]
        file_id = insert_db(
            'INSERT into Files (extension, private) VALUES (?, ?)', [
                f_ext, bool(private)])
        if not file_id:
            return None
        for user_id in permitted_user_ids:
            status = insert_db(
                'INSERT into FilePermissions (file_id, user_id) VALUES (?, ?)', [
                    file_id, user_id])
            if not status:
                return None

        f_wrapper = FileWrapper(file_id, f_ext, private)

        storage_path = os.path.join(app.root_path, app.config[
                                    'UPLOAD_FOLDER'], f_wrapper.get_filename())
        app.logger.debug("Saving attachment to {:s}".format(storage_path))
        imgfile.save(storage_path)
        return f_wrapper
示例#2
0
async def info_state(message: types.Message, state: FSMContext):
	answer = message.text
	db.insert_db(message.chat.id,info=answer)
	await bot.unpin_all_chat_messages(message.chat.id)
	await bot.pin_chat_message(message.chat.id, message.message_id)
	await state.finish()
	await message.answer("Информация успешно установлена")
示例#3
0
文件: bot.py 项目: ph87/itchat_demo
def download_files(msg):
    file_path = os.path.join('media', msg.fileName)
    with open(file_path, 'wb') as f:
        f.write(msg.download())
        insert_db(msg.type, msg.fileName, msg.CreateTime, msg.User.NickName)
    logger.info('{}, {}, {}, {}'.format(msg.type, msg.filename, msg.CreateTime,
                                        msg.User.NickName))
示例#4
0
def win():
    global move_count
    print '\n\nYou caught the cat in ' + str(move_count) + ' moves!'
    print win_text
    insert_db(p.name, move_count, datetime.now())
    raw_input('\nPress Enter to see a list of leaders!')
    cls()
    results_db()
示例#5
0
文件: views.py 项目: leepjeff/guifius
def add_entry(lon, lat):
    if not session.get('logged_in'):
        about()
    db.insert_db('insert into nodes (lon, lat) values (?, ?)',
        [lon, lat],
	True)

    flash('New node added')
    return redirect(url_for('build'))
示例#6
0
def delete_buchung(Reservierungsnummer):

    # Löschen
    insert_db("DELETE FROM reservieren WHERE Reservierungsnummer = ?",
              (Reservierungsnummer, ))

    flash('Reservierung gelöscht', 'success')

    return redirect(url_for('buchungen'))
示例#7
0
def save_user(name, email, face_encoding):
    user_exists_query = "SELECT * FROM Usuarios WHERE email='{}';".format(
        email)
    user_exists = db.query_db(user_exists_query)

    # Check if face exists - could be implemented by checking the face values
    if (user_exists == []):
        face_encoding_str = face_encoding.dumps()  #insert string to DB
        insert_query = "INSERT INTO Usuarios (nombre, email, rostro) VALUES(%s, %s, _binary %s);"
        data_array = (name, email, face_encoding_str)
        db.insert_db(insert_query, data_array)
    return ''
示例#8
0
def process_song_file(conn, path):

    # Extract
    artist_data, song_data = extract_song_file(path)

    # Transform
    transformed_artist_data = transform_artist_data(artist_data)
    transformed_song_data = transform_song_data(song_data)

    # Load
    insert_db(conn, 'artist', transformed_artist_data)
    insert_db(conn, 'song', transformed_song_data)
示例#9
0
文件: parser.py 项目: shmuga/p2p
def process_file(mainlog, conn, curr):
    letter = []
    for line in mainlog:
        if line.startswith('From MAILER-DAEMON') or line.startswith('From [email protected]'):
            # after tihs we get letter error
            errorKey = process_letter(''.join(letter))
            if not errorKey:
                errorKey = 666
            idGroup = find_id(''.join(letter))
            if idGroup:
                queueId, sendId = idGroup.groups()
                # inserting to db
                db.insert_db(conn, curr, queueId, sendId, errorKey)
            letter = []
        letter.append(line)
示例#10
0
def extract(instr_list, output_table):
    for instrument in instr_list:
        xml_file = download_file(instrument, TMP_DIR)
        if instrument["instrument_type"] == "Non-Equity Instruments":
            df = parse_non_equity(instrument, xml_file)
        else:
            df = parse_equity(instrument, xml_file)
        print("Writing CSV...")
        csv_file = f"{HOST_STAGING_DIR}{instrument['file_name'][:-4]}.csv"
        write_csv(df, csv_file)
        print("COPYing to db...")
        insert_db(csv_file, "raw", output_table)
        clean_file(xml_file)
        clean_file(csv_file)
        print(f"Done {xml_file}")
示例#11
0
def process_file(mainlog, conn, curr):
    letter = []
    for line in mainlog:
        if line.startswith('From MAILER-DAEMON') or line.startswith(
                'From [email protected]'):
            # after tihs we get letter error
            errorKey = process_letter(''.join(letter))
            if not errorKey:
                errorKey = 666
            idGroup = find_id(''.join(letter))
            if idGroup:
                queueId, sendId = idGroup.groups()
                # inserting to db
                db.insert_db(conn, curr, queueId, sendId, errorKey)
            letter = []
        letter.append(line)
示例#12
0
    def verify_twofa(self, token):
        totp = pyotp.TOTP(self.otp_secret)
        totp_verify = totp.verify(token, valid_window=15)

        # Already succesful
        if totp_verify:
            return True, False

        # Try if the token is a backup codes
        # Make a timing safe comparison over all elements in the list
        match = False
        for e in self.otp_backup_codes:
            match |= safe_str_cmp(e, token)

        if not match:
            return False, False

        # Clear the token and reserialize
        self.otp_backup_codes.remove(token)
        json_recovery_tokens = json.dumps(self.otp_backup_codes)

        result = insert_db('UPDATE Users SET otp_backup_codes = ? WHERE id = ?', [json_recovery_tokens, self.id])
        if not result:
            return False, False

        # We used one of the backup codes
        return True, True
示例#13
0
文件: create.py 项目: alazycoder/didi
def insert_id_to_db(level, uid):
    res = []
    for i in range(50):
        s = generate_id()
        sql = "insert into id(id,status,level,uid) values('%s',1,%d,'%s')" % (
            s, level, uid)
        if insert_db(sql):
            res.append(s)
    return res
示例#14
0
文件: views.py 项目: leepjeff/guifius
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        pw_hash = bcrypt.generate_password_hash(form.password.data) #Hash the inputted pw
        db.insert_db('insert into users (username, password, email, name, city, role) values (?,?,?,?,?,?)',
                [form.username.data,
                pw_hash, #drop in the hashed password
                form.email.data,
                form.name.data,
                form.city.data,
                1],True)
        flash("User: "******" has been successfully registered!")
        user = db.pullUserObj(form.username.data, form.password.data) 
        if login_user(user,0): #Everything looks good attempt login.
            return redirect('/')
        else:
            flash("Could Not Login After Registering. Try manually logging in.")    
        return redirect('/login') #Dump them back to login, maybe this'll work?
    return render_template('register.html', title='Register', form=form)
示例#15
0
 def create(author_id, recipient_id, content, attachment_name=None):
     if len(content) > MAX_CONTENT_LENGTH:
         return None
     result = insert_db(
         'INSERT into Messages (author_id, recipient_id, content, filename, timestamp) VALUES (?, ?, ?, ?, ?)', [
             author_id, recipient_id, content, attachment_name, int(
                 time.time())])
     if not result:
         return None
     return True
示例#16
0
    def change_role(self, is_admin):
        if self.is_admin == is_admin:
            # Value does not change, nothing to do
            return

        result = insert_db('UPDATE Users SET is_admin = ? WHERE id = ?', [
                           int(is_admin), self.id])
        if not result:
            return None
        self.is_admin = is_admin
        return True
示例#17
0
    def update_password(self, new_password):
        errors = User.verify_password_policy(new_password)
        if len(errors):
            return errors

        salt, hashed_pw = User.create_salt_and_hashed_password(new_password)

        result = insert_db('UPDATE Users SET password_salt = ?, password_token = ? WHERE id = ?', [
                           salt, hashed_pw, self.id])
        if result is None:
            return ['Could not reset password']
        return []
示例#18
0
    def create(user):
        token = os.urandom(32)
        token = b64encode(token, '-_')
        signer = URLSafeTimedSerializer(app.config['SECRET_KEY'])
        signed_token = signer.dumps(token)
        hashed_token = PasswordRecoveryTokens.hash_token(signed_token)

        status = insert_db('INSERT into PasswordRecoveryTokens (user_id, token) VALUES (?, ?)', [user.id, hashed_token])
        if status:
            return signed_token
        else:
            return None
示例#19
0
async def process_callback_check_pay(callback_query: types.CallbackQuery):
	cb_m_id = callback_query.message.chat.id
	if callback_query.data.endswith(str(callback_query.from_user.id)):
		last_tr = banking.mono_check(cb_m_id)
		if int(db.get_from_db(cb_m_id, "price")) <= last_tr['amount'] / 100:
			str_to_db = db.get_from_db(str(cb_m_id),"list_user")
			try:
				user = last_tr['comment'] + "✅"
				not_done = last_tr['comment']
				if str_to_db == "none":
					db.insert_db(cb_m_id,list_user= user + "\n")
				elif str_to_db.find(not_done) > -1:
					db.insert_db(cb_m_id,list_user=str_to_db.replace(not_done,user))
					await bot.send_message(cb_m_id,"Oплата прошла успешно")
				elif str_to_db.find(user) == -1:
					db.insert_db(cb_m_id,list_user=str_to_db + user + "\n")
					await bot.send_message(cb_m_id,"Oплата прошла успешно")
				else:
					await bot.send_message(cb_m_id,"Oплата не прошла, обратитесь к админу")
			except:
				await bot.send_message(cb_m_id,"Oплата не прошла, обратитесь к админу")
		else:
			await bot.send_message(cb_m_id,"Oплата не прошла, обратитесь к админу")
		data = callback_query.data.split()
		await bot.edit_message_reply_markup(cb_m_id, int(data[1]) + 1)
示例#20
0
def edit_buchung(Reservierungsnummer):

    # Buchung per Resnr. bekommen
    buchung = query_db(
        "SELECT * FROM reservieren r JOIN Aufführung_von a ON r.Datum = a.Datum AND r.Uhrzeit = a.Uhrzeit WHERE Reservierungsnummer = ?",
        (Reservierungsnummer, ),
        one=True)

    form = ReservierungsFormular(request.form)

    # Felder vorbelegen mit alten Daten
    form.name.data = buchung['Name']
    form.datum.data = datetime.strptime(buchung['Datum'], '%Y-%m-%d')
    form.uhrzeit.data = datetime.strptime(buchung['Uhrzeit'], '%H:%M')
    form.sitzplatz.data = buchung['Sitzplatz']

    if request.method == 'POST' and form.validate():
        name = request.form['name']
        datum = request.form['datum']
        uhrzeit = request.form['uhrzeit']
        sitzplatz = request.form['sitzplatz']

        result = query_db(
            "SELECT * FROM Aufführung_von WHERE (Datum, Uhrzeit, Name) = (?,?,?) AND Datum > DATE('now') ",
            (datum, uhrzeit, name))
        if result:
            insert_db(
                "UPDATE reservieren SET Datum = ?, Uhrzeit = ?, Sitzplatz = ? WHERE Reservierungsnummer = ?",
                (datum, uhrzeit, sitzplatz, Reservierungsnummer))
            flash('Buchung geändert', 'success')
            return redirect(url_for('buchungen'))
        else:
            flash('Aufführung existiert nicht! Bitte Eingaben überprüfen.')
            return redirect(
                url_for('edit_buchung',
                        Reservierungsnummer=Reservierungsnummer))

    return render_template('edit_buchung.html', form=form)
示例#21
0
    def new_session(user):
        app.logger.debug(
            "Create new session for user {:s}".format(user.username))
        session_token = os.urandom(Session.TOKEN_LENGTH)
        session_token = b64encode(session_token).decode('utf-8')

        signer = URLSafeTimedSerializer(app.config['SECRET_KEY'])
        session_token = signer.dumps(session_token)
        csrf_token = Session.create_csrf_token()

        result = insert_db(
            'INSERT INTO Sessions (session_token, user_id, csrf_token) Values (?, ?, ?)', [
                session_token, user.id, csrf_token])
        return result, session_token, csrf_token
示例#22
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        username = request.form['username']
        vorname = request.form['vorname']
        nachname = request.form['nachname']
        soznr = request.form['soznr']
        ort = request.form['ort']
        adresse = request.form['adresse']
        password = pbkdf2_sha256.hash(request.form['password'])

        query = 'INSERT INTO users (username, password, SozNr) VALUES(?,?,?);'
        query_person = 'INSERT INTO Person (SozNr, Vorname, Nachname, Ort, Adresse) VALUES(?,?,?,?,?);'
        try:
            insert_db(query, (username, password, soznr))
            insert_db(query_person, (soznr, vorname, nachname, ort, adresse))
            flash(
                'Vielen Dank für die Registrierung! Sie sind nun angelegt und können sich mit Username & Passwort einloggen.',
                'success')
            return redirect(url_for('login'))
        except:
            flash('Error bei SQL Query', 'error')
            return redirect(url_for('register'))
    return render_template('register.html', form=form)
示例#23
0
async def send_command(message: types.Message):
	if message.text.lower().startswith('/start'):
		db.insert_db(message.chat.id)
		await message.answer( f'{message.from_user.first_name} , добро \
пожаловать к PartyBot!\nЕсть вопросы? Обратись к помощи /help\n')
	elif message.text.lower() == "/help":
		await message.answer("Этот бот поможет организовать тусовочку\n\
/setinfo - установить информацию тусовочки\n/setlocale - установить место\n\
/setdate - установить дату\n/setprice - установить цену\n/setcardinfo \
		- установить автопроверку платежей (Monobank, PrivatBank)")
	elif message.text.lower() == "/setinfo":
		await message.answer("А теперь отправь информацию о тусовочке!")
		await Test.info.set()
	elif message.text.lower() == "/setlocale":
		kb.inline_btn_1.callback_data = "btn1 " + str(message.message_id) + " " + str(message.from_user.id)
		kb.inline_btn_2.callback_data = "btn2 " + str(message.message_id) + " "  + str(message.from_user.id)
		await message.answer("А теперь выбери формат адреса",reply_markup=kb.inline_kb_variant_addres)
	elif message.text.lower() == "/setdate":
		await message.answer("А теперь отправь дату тусовочки!\nНапример 17.03")
		await Test.date.set()
	elif message.text.lower() == "/setprice":
		await message.answer("А теперь отправь стоимость проходки на тусовочку!")
		await Test.price.set()
	elif message.text.lower() == "/setcardinfo":
		kb.mono.callback_data = "monokey " + str(message.message_id) + " " + str(message.from_user.id)
		kb.private.callback_data = "privatekey " + str(message.message_id) + " "  + str(message.from_user.id)
		await message.answer("А теперь выбери свой банк!",reply_markup=kb.bank_kb)
	elif message.text.lower().startswith("/delete"):
		str_to_db = db.get_from_db(str(message.chat.id),"list_user")
		user = message.text.split()[1]
		if str_to_db.find(user) == -1:
			await message.answer(user + " - нет в списке")
		else:
			str_to_db = str_to_db.replace(user + "\n","")
			db.insert_db(message.chat.id,list_user=str_to_db)
			await message.answer(user + " - удалил из списка")
def process_log_file(conn, path):

    # Extract
    time_data, user_data, playsong_data = extract_log_file(path)

    # Transform
    transformed_time_data = transform_time_data(time_data)
    transformed_playsong_data = transform_playsong_data(playsong_data, conn)

    # Load
    insert_db(conn, 'time', transformed_time_data)
    insert_db(conn, 'user', user_data)
    insert_db(conn, 'songplay', transformed_playsong_data)
示例#25
0
    def create(username, email, salt, hashed_password, is_admin=False, otp_secret=None):
        # usernames are case insensitive so we need to check first regardless
        # of unique constraint
        if User.get_user_by_name(username):
            app.logger.debug("Username already exists")
            return None
        if User.get_user_by_email(email):
            app.logger.debug("Email already exists")
            return None

        if not otp_secret:
            otp_secret = pyotp.random_base32()

        otp_recovery_tokens = []
        for i in range(User.NR_RECOVERY_TOKENS):
            otp_recovery_tokens.append(pyotp.random_base32())

        json_recovery_tokens = json.dumps(otp_recovery_tokens)
        result = insert_db(
            'INSERT into Users (username, email, password_salt, password_token, is_admin, otp_secret, otp_backup_codes) VALUES (?, ?, ?, ?, ?, ?, ?)', [
                username, email, salt, hashed_password, int(is_admin), otp_secret, json_recovery_tokens])
        if not result:
            return None
        return User.get_user_by_name(username)
示例#26
0
async def cardprivate_state(message: types.Message, state: FSMContext):
	answer = message.text
	db.insert_db(message.chat.id,private=answer)
	await state.finish()
	await message.answer("Информация успешно установлена")
示例#27
0
async def price_state(message: types.Message, state: FSMContext):
	answer = message.text
	db.insert_db(message.chat.id,price=answer.lower())
	await state.finish()
	await message.answer("Цена успешно установлена")
示例#28
0
async def locale_state(message: types.Message, state: FSMContext):
	answer = message.text
	db.insert_db(message.chat.id,locale=answer)
	await state.finish()
	await message.answer("Геолокация успешно установлена")
示例#29
0
async def send_text(message: types.Message):
	m_id = message.chat.id
	proxyDict = {
		"http"  : os.environ.get('FIXIE_URL', ''), 
		"https" : os.environ.get('FIXIE_URL', '')}
	if message.text.lower() == 'погодка':
		try:
			await message.answer(other.pogodka(m_id),reply_markup=delkey)
		except:
			await message.answer("Погодка будет доступна за 5 дней до туссовки.",reply_markup=delkey)
	elif message.text.startswith('/key'):
		await message.answer("Вот мои комманды: ",reply_markup=kb.markup_key)
	elif message.text.lower() == 'дата':
		await message.answer(db.get_from_db(str(m_id),"date"),reply_markup=delkey)
	elif message.text.lower() == 'цена':
		await message.answer(db.get_from_db(str(m_id),"price") + " ₴",reply_markup=delkey)
	elif message.text.lower() == 'инфо':
		await message.answer(db.get_from_db(str(m_id),"info"),reply_markup=delkey)
	elif message.text.lower() == 'кто будет?':
		await message.answer(db.get_from_db(str(m_id),"list_user"),reply_markup=delkey)
	elif message.text.lower() == 'я буду':
		str_to_db = db.get_from_db(str(m_id),"list_user")
		user = message.from_user.username
		if user is None:
			user = message.from_user.full_name
		if str_to_db.find(user) == -1:
			if str_to_db == "none":
				db.insert_db(m_id,list_user= "******" + user + "\n")
			else:
				db.insert_db(m_id,list_user=str_to_db + "@" + user + "\n")
			await message.answer("@" + user + " - добавил тебя в список",reply_markup=delkey)
		else:
			await message.answer("@" + user + " - извини но ты уже в списке",reply_markup=delkey)
	elif message.text.lower() == 'не буду':
		str_to_db = db.get_from_db(str(m_id),"list_user")
		user = message.from_user.username
		if user is None:
			user = message.from_user.full_name
		if str_to_db.find(user) == -1:
			await message.answer("@" + user + " - тебя нет в списке",reply_markup=delkey)
		else:
			str_to_db = str_to_db.replace("@" + user + "\n","")
			db.insert_db(m_id,list_user=str_to_db)
			await message.answer("@" + user + " - удалил тебя из списка",reply_markup=delkey)
	elif message.text.lower() == 'геолока':
		locale = db.get_from_db(str(m_id),"locale").strip()
		if locale[0].isdigit():
			await message.answer_location(locale.split()[0],locale.split()[1])
		else:
			location = geolocator.geocode(locale, language='ru')
			await message.answer(location,reply_markup=delkey)
			await message.answer_location(location.latitude, location.longitude)
	elif message.text.lower() == 'бюджет':
		try:
			# p_price = privat_bank(os.getenv('API_PRIVAT2'),proxyDict, "155325","5168745302334229")
			m_price = int(banking.mono_bank(m_id))
			await message.answer("Бюджет тусовочки 💴 💴 💴 : " + str(m_price) + " ₴",reply_markup=delkey)
		except:
			await message.answer('Cервер выебываеться попробуйте позже 😔 😔 😔',reply_markup=delkey)
	elif message.text.lower() == 'оплатить':
		kb.mono_pay.callback_data = "mono_pay " + str(message.message_id) + " " + str(message.from_user.id)
		kb.private_pay.callback_data = "private_pay " + str(message.message_id) + " " + str(message.from_user.id)
		kb.nal_pay.callback_data = "nal_pay " + str(message.message_id) + " " + str(message.from_user.id)
		await message.answer("Выберите способ оплаты :",reply_markup=kb.payment_kb)
示例#30
0
 def insert(self, cardid, studentname, studentid, studentaccount):
     params = [cardid, studentname, studentid, studentaccount]
     ret = db.insert_db(params)
     return ret
示例#31
0
 def clear():
     return insert_db('DELETE FROM PasswordRecoveryTokens')
示例#32
0
 def delete_token(token):
     return insert_db('DELETE FROM PasswordRecoveryTokens where token = ?', [token])
示例#33
0
if latest_datetime[0]:
    latest_date_formatted = latest_datetime[0].strftime('%Y-%m-%dT%H:%M:%SZ')

    url = base_stream_url + '?since={date}'.format(
        date=latest_date_formatted)
else:
    url = base_stream_url

if len(sys.argv) > 1 and sys.argv[1] == 'nohistorical':
    url = base_stream_url

for event in EventSource(url):
    if event.event == 'message':
        try:
            change = json.loads(event.data)
        except ValueError:
            continue

        hashtag_matches = hashtag_match(change['comment'])
        if hashtag_matches and valid_edit(change):
            for hashtag in hashtag_matches:
                if db.is_duplicate(hashtag, change['id']):
                    print("Skipped duplicate {hashtag} ({id})".format(
                        hashtag=hashtag, id=change['id']))

                elif valid_hashtag(hashtag):
                    # Check edit_summary length, truncate if necessary
                    if len(change['comment']) > 800:
                        change['comment'] = change['comment'][:799]
                    db.insert_db(hashtag, change)