Ejemplo n.º 1
0
    def start_lottery(self):
        global d
        d = Database()
        idLotto = d.get_last_lottery_id()
        if not idLotto:
            d.create_lotto()
            idLotto = d.get_last_lottery_id()
        while True:
            if (time.localtime().tm_sec == 0
                    and time.localtime().tm_min % lottery_time == 0):
                numbers = []
                result = []
                for i in range(6):
                    x = False
                    while (x == False):
                        r = random.randint(1, 49)
                        if r not in numbers:
                            numbers.append(r)
                            result.append(str(r))
                            x = True

                d = Database()
                result.sort(key=int)
                d.create_lotto()
                d.update_lotto_after_lottery(str(idLotto), result)
                idLotto = d.get_last_lottery_id()
                del d
                time.sleep(2)
Ejemplo n.º 2
0
class Vote(Database().DynamicDocument):
    ''' class to store vote data '''

    number = Database().IntField()
    symbol = Database().StringField(max_length=5)
    ticker = Database().StringField(max_length=40)
    created_at = Database().DateTimeField(default=datetime.now())
Ejemplo n.º 3
0
class Action(Database().DynamicDocument):
    ''' class to hold the different possible actions of a pitch '''

    name = Database().StringField(max_length=500)
    vote_count = Database().IntField(default=0)
    vote_numbers = Database().ListField()
    vote_symbol = Database().StringField(max_length=10)
    ticker = Database().StringField(max_length=50)
    action = Database().StringField(max_length=50)
    amount = Database().IntField()
    action_id = Database().IntField()
    created_at = Database().DateTimeField(default=datetime.now())
Ejemplo n.º 4
0
 def test_add_user_blank_first_name(self, setup_db,
                                    test_input_bad_first_name,
                                    test_input_good_first_name,
                                    test_input_last_name, test_input_email,
                                    test_input_password, expected):
     test_db = Database(setup_db)
     user = UserController(test_db)
     set_keyboard_input([
         test_input_bad_first_name, test_input_good_first_name,
         test_input_last_name, test_input_email, test_input_password,
         test_input_password
     ])
     user.addNewUser()
     output = get_display_output()
     assert output == [
         "Enter new user information, all information is case-sensitive.",
         "First Name: ",
         "First name can not be blank.  Please enter a first name.",
         "First Name: ", "Last Name: ", "E-Mail Address: ", "Password: "******"Re-Enter Password: "******"\n New User was successfully added"
     ]
     result = test_db.query_user_db(
         "SELECT EXISTS(SELECT * FROM Employee WHERE FirstName is '%s' AND LastName is "
         "'%s' AND Email is '%s' AND Password is '%s')" %
         (test_input_good_first_name, test_input_last_name,
          test_input_email, test_input_password))
     assert result[0] == expected
Ejemplo n.º 5
0
def documets():
    user = check_auth(request.headers, __name__)
    if user != True:
        return user
    user = authorize.get(request.headers.get('UserToken'))
    try:
        database = Database(config)
    except TypeError:
        return jsonify({"message": "Нет подключения к БД"})

    result = {}

    if request.method == "GET":
        pk = str(crypto_file.generate_public_key()).split('\\n')
        result = {
            "document_type": {},
            "public_key": ''.join(i for i in pk[1:-1])
        }
        for row in database.select_data(
                "SELECT id, title FROM document_type;"):
            result["document_type"][row[0]] = row[1]

    elif request.method == "POST":
        json = request.get_json(silent=True)
        if not json:
            return jsonify({"message": "JSON не найден"}), 400
        fields = ["hash", "document_type_id", "photo"]
        for field in fields:
            if not json.get(field):
                return jsonify({"message": f"Поле {field} не найдено"}), 400

        hash_md5 = hashlib.md5()
        hash_md5.update(str(json.get("photo")).encode())

        if not hash_md5.hexdigest() == json.get("hash").lower():
            return jsonify({"message": f"hash не совпадает"}), 406

        query = "INSERT INTO {table}({fields}) VALUES ({values}, now())"

        values = {
            "table":
            sql.Identifier("public", "documents"),
            "fields":
            sql.SQL(",").join(
                sql.Identifier(i) for i in
                ["hash", "user_id", "document_type_id", "photo", "dt_upload"]),
            "values":
            sql.SQL(",").join(
                sql.Literal(i) for i in [
                    json.get("hash"),
                    user.get_id(),
                    json.get("document_type_id"),
                    json.get("photo"),
                ])
        }

        result = database.insert_data(sql.SQL(query).format(**values))

    database.close()
    return jsonify(result)
def db(config, event):
    db = Database(config)
    for _ in range(1000):
        e = Event(**event)
        with Session(db._engine, future=True) as sess, sess.begin():
            sess.add(e)
    return db
Ejemplo n.º 7
0
 def ingest_latest_obs(self):
     with Database(DATABASE_PATH) as db:
         file_content = self.api.get_latest_obs()
         if file_content:
             df = file_content_to_dataframe(file_content)
             obs_list = []
             timestamp = int(df.ta.index[0][1].timestamp())
             if (latest_timestamp := db.get_latest_timestamp()
                 ) and latest_timestamp == timestamp:
                 print(
                     f'timestep already in database: {datetime.fromtimestamp(timestamp).isoformat()}'
                 )
                 return
             for row in df.itertuples():
                 station_id = int(row.Index[0])
                 station = Station(
                     id=station_id,
                     name=row.stationname,
                     latitude=row.lat,
                     longitude=row.lon,
                     height=row.height,
                 )
                 db.add_station(station)
                 obs = Observation(
                     timestamp=int(row.Index[1].timestamp()),
                     station_id=station_id,
                 )
                 for element_name, mapping in mappings.items():
                     setattr(obs, element_name,
                             getattr(row, mapping.knmi_alias, None))
                 obs_list.append(obs)
             db.add_observations(obs_list)
Ejemplo n.º 8
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-c",
                        "--clear_db",
                        action="store_true",
                        help="Clear database")
    parser.add_argument("-d",
                        "--daemon",
                        action="store_true",
                        help="Run as daemon")
    parser.add_argument("-g",
                        "--initialize_geolocation",
                        action="store_true",
                        help="(Re-)Initialize geolocation module")
    parser.add_argument(
        "-u",
        "--initialize_unsafe",
        action="store_true",
        help="Initialize a new set of unsafe URLs, domains and IPs")

    args = parser.parse_args()

    if args.clear_db:
        config = json.load(open("config.json"))
        db = Database(config["database"]["user"],
                      config["database"]["password"],
                      config["database"]["host"], config["database"]["port"],
                      config["database"]["db"])
        db.clear_db()
    if args.initialize_unsafe:
        initialize_unsafe_connections_list()
    if args.initialize_geolocation:
        GeoLocation.initialize()
    if args.daemon:
        Scheduler.run()
Ejemplo n.º 9
0
def auth_api():
    try:
        database = Database(config)
    except TypeError:
        return jsonify({"message": "Нет подключения к БД"})
    number_phone = request.get_json(silent=True).get("number_phone")
    password = request.get_json(silent=True).get("password")
    user_data = database.login({"number_phone": number_phone})
    if user_data:
        if time() - user_data[4].timestamp() >= 300:
            update_password(database, user_data[0], "")
            return jsonify({'message': 'Время пароля истекло'}), 401, {
                'ContentType': 'application/json'
            }

        if check_password_hash(user_data[1], password):
            if user_data[3] == True:
                user = User(id=user_data[0],
                            number_phone=number_phone,
                            role=user_data[2])

                authorize[user.get_token()] = user
                update_password(database, user_data[0], "")

                return jsonify({
                    "UserToken": user.get_token(),
                    "role": user.get_role()
                })
            return jsonify({'message': 'Пользователь заблокирован'}), 401, {
                'ContentType': 'application/json'
            }

    return jsonify({'message': 'Неправильный логин или пароль'}), 401, {
        'ContentType': 'application/json'
    }
Ejemplo n.º 10
0
def create_app(*config_cls) -> Flask:
    # preprocess.preprocess_deepec()
    # preprocess.preprocess_ecpred()
    # preprocess.preprocess_ecami()
    # preprocess.preprocess_detect_v2()

    if len(config_cls) == 0:
        config_cls = (ProductionLevelConfig, RemoteConfig)

    config_cls = [
        config() if isinstance(config, type) else config
        for config in config_cls
    ]

    log(
        message="Flask application initialized with {}".format(", ".join(
            [config.__class__.__name__ for config in config_cls])),
        keyword="INFO",
    )

    flask_app = Flask(__name__)
    for config in config_cls:
        flask_app.config.from_object(config)

    register_extensions(flask_app)
    register_views(flask_app)
    register_hooks(flask_app)

    with flask_app.app_context():
        c = flask_app.config
        Database(c['DB_HOST'], c['DB_USER'], c['DB_PASSWORD'],
                 c['DB_DATABASE'])

    return flask_app
Ejemplo n.º 11
0
def get_password():
    try:
        database = Database(config)
    except TypeError:
        return jsonify({"message": "Нет подключения к БД"})

    result = {}
    if not request.get_json(silent=True):
        return jsonify({"message": "JSON не найден"}), 400

    number_phone = request.get_json(silent=True).get("number_phone")
    if not number_phone:
        return jsonify({"error": "Телефон не найден"}), 404

    isFind = database.select_data(
        sql.SQL("SELECT id FROM users WHERE number_phone={number_phone}").
        format(number_phone=sql.Literal(number_phone)))

    if not isFind:
        isFind = create_user(database, number_phone)

    if isFind:
        password = generate_password()
        update_password(database, isFind[0],
                        generate_password_hash(password, method='sha256'))
        send_password(password, number_phone)
        update_connection_log(database, isFind[0], request.remote_addr)

    database.close()
    return "Ok"
Ejemplo n.º 12
0
def main():
    try:
        config = cp.ConfigParser()
        config.read('./app/conf/main.ini')
        # database section
        user = config.get('database', 'user')
        password = config.get('database', 'password')
        database = config.get('database', 'database')
        host = config.get('database', 'host')
        # other section
        wall = config.get('other', 'wall')
        update = config.getfloat('other', 'update')
    except:
        logger.error('Config file error')
        sys.exit()

    logger.info('Cakes thief: trying to connect to PostgreSQL database')
    logger.info('User: %s' % user)
    logger.info('Password: %s' % password)
    logger.info('Database: %s' % database)
    logger.info('Host: %s' % host)
    logger.info('Wall: %s' % wall)
    logger.info('Update in seconds: %s' % update)

    db = Database(user=user,
                  password=password,
                  database=database,
                  host=host)
    parser = Parser(wall, update, db)
    parser.start()
    parser.idle()
Ejemplo n.º 13
0
 def main_prize_action(self, params=None):
     database = Database()
     try:
         response = database.get_next_lottery_main_prize()
         self.send_request(response['response'])
     except:
         self.send_request('UNEXPECTED_ERROR')
     del database
Ejemplo n.º 14
0
 def won_list_action(self, params=None):
     database = Database()
     try:
         response = database.get_won_list()
         self.send_request(response['response'])
     except:
         self.send_request('UNEXPECTED_ERROR')
     del database
Ejemplo n.º 15
0
 def get_balance_action(self, params=None):
     database = Database()
     if self.userID:
         response = database.get_balance(self.userID)
         self.send_request(response['response'])
     else:
         self.send_request('NO_LOGIN')
     del database
Ejemplo n.º 16
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.db = Database(test=True)
     self.input_cases =\
         (Stock("Apple", "AAPL", "united states",
                "01/01/2018", "17/10/2020"),
         Etf("WIG 20 ETF", "Beta ETF WIG20TR Portfelowy FIZ",
             "poland", "01/01/2018", "17/10/2020", "Warsaw"))
Ejemplo n.º 17
0
 def __init__(self):
     self.username = None
     self.password = None
     self.session = None
     self.language = None
     self.vocab = []
     self.wordHash = {}
     self.flagHash = {}
     self.db = Database()
Ejemplo n.º 18
0
    def timeseries(self, station_id: int, history_hours: int) -> List[dict]:
        with Database(DATABASE_PATH, read=True) as db:
            start_timestamp = int((datetime.utcnow() -
                                   timedelta(hours=history_hours)).timestamp())
            obs = db.get_observations_for_station(station_id, start_timestamp)

        obs_list = self._post_process_obs(obs)

        return obs_list
Ejemplo n.º 19
0
    def setUpClass(self):
        from app import config
        self.app = start_app(config.Test)

        # connect to the test db
        from mongoengine.connection import connect, disconnect, get_connection
        disconnect()
        from app.database import Database
        self.db = Database(app=self.app)
Ejemplo n.º 20
0
def create_app(config_name):
    app = FlaskAPI(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')
    message_factory = MessageFactory(app.config["SECRET"])
    db = Database(MongoClient(app.config["DATABASE_URI"]))

    @app.route('/messages/<string:user_id>/<string:message_cvs>',
               methods=['GET', 'DELETE'])
    def message(user_id, message_cvs):
        message_ids = message_cvs.split(',')
        if request.method == "GET":
            messages = db.get_messages(user_id, message_ids)
            if len(messages) > 0:
                return jsonify(messages)
            else:
                abort(404)
        else:
            count = db.delete_messages(user_id, message_ids)
            if count >= 1:
                response = jsonify()
                response.status_code = 204
                return response
            else:
                abort(404)

    @app.route('/messages/<string:user_id>', methods=['POST', 'GET'])
    def messages(user_id):
        if request.method == "POST":
            user_input = str(request.data.get('message', ''))
            message = message_factory.create(user_id, user_input)
            response = jsonify(id=db.save_message(message))
            response.status_code = 201
            return response
        else:
            try:
                start = parse_date_time(request.args.get('start'),
                                        datetime.min)
                stop = parse_date_time(request.args.get('stop'), datetime.max)
                messages = db.get_messages_between(user_id, start, stop)
                if len(messages) != 0:
                    return jsonify(messages)
                else:
                    abort(404)  # Not sure if I should return 404 or 204
            except (ValueError, OverflowError):
                abort(400)

    @app.route('/messages/<user_id>/unread', methods=['GET'])
    def unread(user_id):
        return jsonify(db.get_unread_messages(user_id))

    @app.route('/status', methods=['GET'])
    def status():
        return jsonify(db.status())

    return app
Ejemplo n.º 21
0
def handle_disconnection():

    # handles disconnection from the server
    print("DISCONNECT")
    db = Database()
    msg = {"name": session[NAME_KEY], "message": " has left the chat"}
    db.insert_message(session[NAME_KEY], " has left the chat")
    result = db.get_messages_by_name(1, session[NAME_KEY])
    result = trim_seconds_from_message(result)
    socketio.emit("message response", result)
Ejemplo n.º 22
0
def handle_event(json, methods=["GET", "POST"]):
    if len(json["name"]) >= 2:
        db = Database()
        db.insert_message(json["name"], json["message"])
        result = db.get_messages_by_name(
            1, json["name"]
        )  # getting the last message from the database( the one that was just inserted above)
        result = trim_seconds_from_message(result)
        socketio.emit("message response",
                      result)  # sending it back to the clients
Ejemplo n.º 23
0
 def test_login_success(self, setup_db, test_input_name,
                        test_input_password):
     test_db = Database(setup_db)
     set_keyboard_input([test_input_name, test_input_password])
     result = login(test_db).login()
     output = get_display_output()
     assert output == [
         "Please enter email: ", "Please enter password: "******"\nLogin Successful"
     ]
     assert result == True
Ejemplo n.º 24
0
 def last_won_action(self, params=None):
     database = Database()
     try:
         if params and len(params) == 1:
             response = database.get_last_lotto(int(params[0]))
             self.send_request(response['response'])
         else:
             self.send_request('PARAMS_COUNT')
     except:
         self.send_request('UNEXPECTED_ERROR')
     del database
    def search_nearest(self, **kwargs):
        mongodb = Database().get_connection()
        point_util = PointUtil()
        coordinate = point_util.convert_point(kwargs['coordinate'])
        pdvs = Pdv.objects(address__near=coordinate,
                           address__max_distance=float(kwargs['max_distance']))

        data = list()
        for pdv in pdvs:
            data.append(pdv.to_json())

        return data
Ejemplo n.º 26
0
 def my_coupons_action(self, params=None):
     database = Database()
     try:
         userID = self.userID
         if self.userID:
             response = database.get_user_coupons_list_with_lottery(userID)
             self.send_request(response['response'])
         else:
             self.send_request('NO_LOGIN')
     except:
         self.send_request('UNEXPECTED_ERROR')
     del database
Ejemplo n.º 27
0
	def __init__(self, *args, **kwargs):

		self.window = MainWindow()

		## Build
		self.db = Database('tcc')
		self.staff = self.build_staff()

		self.login_layout = self.build_login_layout()

		## Engine
		self.window.add_page(self.login_layout)
Ejemplo n.º 28
0
 def add_balance_action(self, params=None):
     database = Database()
     try:
         if params and len(params) == 1:
             userID = self.userID
             if self.userID:
                 response = database.add_balance(userID, float(params[0]))
                 self.send_request(response['response'])
             else:
                 self.send_request('NO_LOGIN')
     except:
         self.send_request('UNEXPECTED_ERROR')
     del database
Ejemplo n.º 29
0
    def setUp(self):
        self.client = app.test_client(self)

        # RUN 'set APP_SETTINGS=testing' to set testing environment (for database)
        self.database_obj = Database(app)

        # get Authorization token (used for all protected endpoints)
        signup_response = self.client.post('/api/v1/auth/signup',
                                           data=json.dumps(
                                               TestData.user_data2),
                                           content_type='application/json')
        token_json_dict = json.loads(signup_response.data.decode())
        self.access_token = token_json_dict['access_token']
Ejemplo n.º 30
0
 def test_insert_user_db(self, setup_db, employee_id, first_name, last_name,
                         email, password):
     db = Database(setup_db)
     insert_statement = "INSERT INTO Employee (EmployeeID, FirstName, LastName, Email, Password) " + \
                        "VALUES (" + str(employee_id) + ",'" + first_name + "','" + last_name + "','" + email + \
                        "','" + password + "')"
     query_statement = "SELECT EXISTS(SELECT * FROM Employee WHERE EmployeeID is " + str(employee_id) + \
                       " AND FirstName is '" + first_name + "' AND LastName is '" + last_name + \
                       "' AND Email is '" + email + "' AND Password is '" + password + "')"
     insert_results = db.insert_user_db(insert_statement)
     query_results = db.query_user_db(query_statement)
     assert insert_results == True
     assert query_results[0] == 1