예제 #1
0
    async def 공격(self, ctx, arg='NONE'):
        """ '!공격 @멘션'처럼 사용하여 다른 유저를 공격하는 명령어 예시예요! """

        # 멘션을 ID로 변환
        defender_id = arg.replace('<@', '').replace('>', '').replace('!', '')
        if not defender_id.isdigit():
            return await ctx.send(f"공격 대상을 알 수 없습니다 : `{defender_id}`")

        defender = User(int(defender_id))
        attacker = User(ctx.author)

        # 유저의 체력이 이미 없는 경우
        if attacker.hp == 0:
            return await ctx.send("쓰러진 상태에서는 공격할 수 없어...")

        # 이미 공격 대상의 체력이 0이면
        if defender.hp == 0:
            return await ctx.send("이미 쓰러진 사람을 공격하는 건 매너 위반이야...")

        logs = attacker.attack_to(defender)

        logdata = logs[0]
        window = await ctx.send(f"```diff\n{logdata}```",
                                reference=ctx.message)
        for i in logs[1:]:
            logdata += '\n' + i
            await asyncio.sleep(1.5)
            await window.edit(content=f"```diff\n{logdata}```")
예제 #2
0
    def register(self):
        """Get, validate and convert user input data"""
        first_name = self.first_name_entry.get()
        insertion = self.insertion_entry.get()
        last_name = self.last_name_entry.get()
        zip_code = self.zip_entry.get()
        streetnumber = self.streetnumber_entry.get()
        email = self.email_entry.get()

        # Validate input
        if self.is_valid(first_name, last_name, zip_code, streetnumber, email):
            d = self.convert(first_name, insertion, last_name, zip_code,
                             streetnumber, email)

            check = User(self.ov).register(d['first_name'], d['insertion'],
                                           d['last_name'], d['zip_code'],
                                           d['streetnumber'], d['email'])

            if check:
                user = User(self.ov)

                self.frame.pack_forget()
                MainScreen(self.master, user)

                return True
            else:
                return False
예제 #3
0
 def test_signup_user_returns_correct_id(self):
     self.app.signup_user(self.user)
     self.assertEqual(len(self.app.users), 1)
     self.user = User('*****@*****.**', 'henry123', 'Henry', 'Kato')
     self.app.signup_user(self.user)
     self.assertEqual(len(self.app.users), 2)
     self.user = User('*****@*****.**', 'henry0009', 'Henry', 'Mutunji')
     self.app.signup_user(self.user)
     self.assertEqual(len(self.app.users), 3)
예제 #4
0
def searchBooksBy(section, filt):
    result = auth.checkData()
    if result['auth']:
        words = json.loads(request.data)['words']
        if section == 'explore':
            result['books'] = sql.searchBooks(filt, words)
        elif section == 'readlater':
            user = User()
            result['books'] = sql.searchReadLater(words, user.idUser)
        elif section == 'readings':
            user = User()
            result['books'] = sql.searchPendings(words, user.idUser)
    return jsonify({'result': result})
예제 #5
0
def load_user(email):
    """Returns an object of class User based on provided unique identifier
       if user in the database, otherwise None
    """
    if user_exists(email):
        return User(email)
    return None
예제 #6
0
def user_handle(email_address):
    body = {"email": email_address}
    user_object = User(body)
    result = user_object.get_user()
    if result['statusCode'] == 200:
        return result['response'], 200
    return result['response'], 400
예제 #7
0
파일: app.py 프로젝트: dat210a/calendarize
def register():
    """
    """
    if request.method == "POST":
        # read the posted values from the UI
        email = request.form.get('inputEmail', None)
        password = request.form.get('inputPassword', None)
        # validate received values
        if email and password and not user_exists(email):
            with db.ConnectionInstance() as queries:
                key = random_key(10) + email
                # TODO delete or merge previously created user if exists
                #adds new user to the database
                added = queries.add_user(datetime.utcnow(), email,
                                         hash_password(password), key)
                if (added):
                    user = User(email)
                    #adds default calendar to that user
                    queries.add_calendar(datetime.utcnow(), user.user_id)
                    #send verfication email
                    send_verification(email, key)
                    return render_template("verify_send.html", email=email)
    # reload if something not right
    # TODO maybe some error messages
    return redirect('/')
예제 #8
0
def signup():
    """Renders signup page

        Returns:
            signup page template for user
    """
    if 'logged_in' in session:
        return redirect(url_for('index'))

    if request.method == 'GET':
        return render_template('signup.html', title='Sign Up')
    else:
        # getting form variables
        firstname = request.form['firstname']
        lastname = request.form['lastname']
        email = request.form['email']
        password = request.form['password']

        # creating user object
        global current_user
        current_user = User(email, password, firstname, lastname)
        recipe_app.signup_user(current_user)
        flash(
            'You have successfully created your account, \
               please login into your account', 'success')
    return redirect(url_for('index'))
예제 #9
0
def index():
    """Renders index or home page

        Returns:
            an index page template
    """
    if request.method == 'POST':
        # getting form variables
        email = request.form['email']
        password = request.form['password']

        # signing in user
        global current_user
        current_user = User(email, password)

        # creating session
        session['id'] = recipe_app.signin_user(current_user)

        if session['id']:
            session['logged_in'] = True
            return redirect(url_for('dashboard'))
        else:
            error = 'Wrong email or password combination'
            return render_template('index.html', title='Home', error=error)
    return render_template('index.html', title='Home')
예제 #10
0
    def create_event(self, users):
        self.name_event = input("Nome do evento: ")
        self.title = input("Digite uma sigla: ")
        self.description = input("De uma breve descricao do evento: ")
        self.local = input("Informe o local: ")
        self.start_date = input("Data de inicio: ")
        self.end_date = input("Data do fim do evento: ")
        self.cpf_admin_event = input(
            "Informe o CPF do adiministrador do evento: ")

        from classes.user import verify_event_adm_user_cpf
        from classes.user import User
        while not verify_event_adm_user_cpf(users, self.cpf_admin_event):
            print(
                "Não existe administrador de evento com esse CPF cadastrado!")
            print("Deseja cadastra-lo? ")
            print("SIM//NÂO")
            resposta = input()
            if resposta[0].upper() == "S":
                new_admim_event = User()
                new_admim_event.create_account(users)
                users.append(new_admim_event)
            else:
                break
            self.cpf_admin_event = input(
                "Informe o CPF do adiministrador do evento: ")

        self.value_pro = input(
            "Informe o valor para participantes profissional: ")
        self.value_est = input("Informe o valor para estudantes: ")
        self.participants = []
예제 #11
0
 def loginEvent(self):
     try:
         # create user object and validate
         user = User()
         user.setUsername(self.usernameEntry.get())
         user.setPassword(self.passwordEntry.get())
         if user.validate():
             self.parent.destroy()
             root = tk.Tk()
             app = MainPage(root, user)
             app.focus_force()
         else:
             messagebox.showerror(
                 "Login Failed!!!",
                 "Somthing is wrong, could not login. Please check your username and password and try again."
             )
             self.secondLabel["text"] = "Incorrect username or password"
             self.secondLabel["fg"] = "red"
     except:
         messagebox.showwarning(
             "Login Failed!!!",
             "Username and Password field can not be emplty, If you do not have account then press 'Signup' button to register."
         )
         self.secondLabel["text"] = "Username or password cannot be empty"
         self.secondLabel["fg"] = "red"
예제 #12
0
def initialize_users():
    # Need to create a datastructure that stores the user
    users = []
    transactions = []

    for i in range(utils.number_of_users):
        coinsList = []
        newUser = User(i)
        for j in range(10):
            cID = str(i * 10 + j)
            signature = sign_message(scrooge_private, str(cID))
            encoded = base64.b64encode(signature)
            no_bytes = encoded.decode('utf-8')
            coin_dict = {}
            coin_dict[cID] = no_bytes
            newUser.add_coin(coin_dict)
            transaction = {}
            transaction['previous_transaction'] = None
            transaction['sender'] = 'scrooge'
            transaction['receiver'] = newUser.user_id
            transaction['coin_id'] = json.dumps(coin_dict)
            transactions.append(transaction)

        utils.printLog(
            "User " + str(i) + "\n" +
            str(newUser.private_key.public_key().public_bytes(
                encoding=serialization.Encoding.PEM,
                format=serialization.PublicFormat.SubjectPublicKeyInfo)))
        utils.printLog("10 coins")
        users.append(newUser)
    return users, transactions
예제 #13
0
def sign_in():
    """
    Signs in user to their account
    """
    if request.method == 'POST':
        # Pick form values
        email = request.form['email']
        password = request.form['password']
        user = User(email, password)
        # start session
        session['id'] = bucketApp.sign_in(user)

        if session['id']:
            global current_user
            user = [
                user for user in bucketApp.all_users
                if user.id == session['id']
            ]
            current_user = user[0]

            return redirect(url_for('buckets'))
        return render_template('signIn.html',
                               error='Invalid username or password')
    else:
        return render_template('signIn.html')
예제 #14
0
def register_submit():

    username = request.form.get("username")
    firstname = request.form.get("firstname")
    lastname = request.form.get("lastname")
    password = request.form.get("password")
    password_confirm = request.form.get("passwordConfirm")

    if ((not len(username)) or (not len(firstname)) or (not len(lastname))
            or (not len(password)) or (not len(password_confirm))):
        return error_found("A field is empty")

    valid_username = unique_user(db, username)
    if valid_username is False:
        return error_found("Username already exists")

    valid_password = password_compare(password, password_confirm)
    if valid_password is False:
        return error_found("Passwords are not identical")

    user = User(username, firstname, lastname)

    create_user(db, user, password)

    return render_template("submit.html",
                           username=username,
                           firstname=firstname,
                           lastname=lastname)
예제 #15
0
    async def exec(self, ctx, *args):
        if ctx.author.id not in Config.admin:
            return await ctx.send(
                '권한이 부족해!'
                '\n`❗ 봇 관리자라면 config.py의 admin 리스트에 자신의 디스코드 id가 있는지 확인해 봐!`')

        text = ' '.join(args)
        me = User(ctx.author)
        logger.info(f'{me.name}이(가) exec 명령어 사용 : {text}')
        try:
            exec(text)
        except Exception as e:
            embed = discord.Embed(color=0x980000,
                                  timestamp=datetime.datetime.today())
            embed.add_field(name="🐣  **Cracked!**",
                            value=f"```css\n[입구] {text}\n[오류] {e}```",
                            inline=False)
            logger.err(e)
        else:
            embed = discord.Embed(color=0x00a495,
                                  timestamp=datetime.datetime.today())
            embed.add_field(name="🥚  **Exec**",
                            value=f"```css\n[입구] {text}```",
                            inline=False)
        embed.set_footer(text=f"{ctx.author.name} • exec",
                         icon_url=str(
                             ctx.author.avatar_url_as(static_format='png',
                                                      size=128)))
        await ctx.send(embed=embed, reference=ctx.message)
예제 #16
0
def updateAlines(idbook, alines):
    result = auth.checkData()

    if result['auth']:
        user = User()
        result['update'] = sql.updateAlines(idbook, user.idUser, alines)

    return jsonify({'result': result})
예제 #17
0
    def next_clock_tick(self, users_clock_ticks):
        for user in range(users_clock_ticks):
            self.customer_management.allocate_user(User(self.ttask))

        self.customer_management.remove_timeout_users()
        self.customer_management.optimize_servers()
        self.customer_management.save_state()
        self.customer_management.update_ttime()
예제 #18
0
    def get_users(self):
        users = []
        for user in self.get_data(self.USER_TABLE):
            user = User(user[0], user[1])

            users.append(user)

        return users
예제 #19
0
 def __set_user(self, name, login, pwd):
     """
         Metoda przypisująca dane logowania do pola user.
         :param name: podpis
         :param login: login
         :param pwd: hasło
     """
     self.user = User(login, pwd, name)
예제 #20
0
    def __init__(self, port, username):
        super().__init__()
        self._s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.username = username
        ip = socket.gethostbyname(socket.gethostname())
        while True:
            try:
                self._s.bind((ip, port))
                break
            except:
                port += 1

        self._users = {}
        self._host_user = User(self._s, ip, port, self.username)
        self._system_user = User(self._s, ip, port, "系统提示")
        self._lock = threading.Lock()
        th = threading.Thread(target=self.new_conn_handler)
        th.start()
예제 #21
0
	def get_or_add_user(self, user_name):
		log.debug(f"Fetching user: {user_name}")
		user = self.session.query(User).filter_by(name=user_name).first()
		if user is None:
			log.debug(f"Creating user: {user_name}")
			user = User(user_name)
			self.session.add(user)

		return user
예제 #22
0
    def simulate_scan(self):
        """Simulate OV card scan by entering the serial key"""
        user = User(self.scan_simulation.get())

        if user.is_registered():
            self.frame.pack_forget()
            InfoScreen(self.master, user)
        else:
            self.frame.pack_forget()
            RegisterScreen(self.master, user.get_ov())
예제 #23
0
def login():
    email_id = request.form['email']
    password = request.form['password']
    logged_in = User().login(email_id, password)
    if logged_in[0] is True:
        session['name'] = logged_in[1]['name']
        session['email_id'] = logged_in[1]['email_id']
        return redirect(url_for('mail'))
    else:
        session['error'] = logged_in[1]
        return redirect(url_for('index'))
예제 #24
0
def reset_password():
    """
	function to reset a user password
	"""
    if not request.json or not 'username' in request.json:
        abort(400)
    username = request.json.get('username')
    new_password = request.json.get(new_password)
    user = User(username, email, password)
    if user:
        return jsonify({'message': 'Successfully changed password'})
예제 #25
0
def updateUser():
    result = auth.checkData()

    if result['auth']:
        section = json.loads(request.data)['section']
        data = json.loads(request.data)['data']
        user = User()
        print(section, data)
        result['update'] = sql.updateUser(data, section, user.idUser)

    return jsonify({'result': result})
예제 #26
0
def eReader(idbook, lang):
    result = auth.checkData()

    if result['auth']:
        user = User()
        result['alines'] = sql.getAlines(idbook, user.idUser)[0]['alines']

        bfile = sql.getBfile(idbook)[0]['bfile']
        bookcontent = BookContent(bfile, lang)
        result['content'] = bookcontent.content
    return jsonify({'result': result})
예제 #27
0
def create_account(username=None, email=None, password=None):
    """
	function to register a user
	"""
    username = request.json['username']
    email = request.json['email']
    password = request.json['password']
    confirm_password = request.json['confirm']
    if password == confirm_password:
        user = User(username, email, password)
        users[user.email] = user
        return jsonify({'message': 'You are successfully registered'})
예제 #28
0
    def scan(self, static_ov=None):
        """Scan OV card with RFID-RC522 chip"""
        global ov_read

        if static_ov:
            ov = static_ov
            user = User(ov)
            ov_read = False

            if user.is_registered():
                self.frame.pack_forget()
                InfoScreen(self.master, user)
            else:
                self.frame.pack_forget()
                RegisterScreen(self.master, user.get_ov())
        else:
            reader = MFRC522()

            # Hook the SIGINT, Scan for cards
            signal.signal(signal.SIGINT, self.end_read)

            reader.MFRC522_Request(reader.PICC_REQIDL)

            # Get the UID of the card
            (status, uid) = reader.MFRC522_Anticoll()

            # If we have the UID, continue
            if status == reader.MI_OK:
                ov = '{}:{}:{}:{}'.format(uid[0], uid[1], uid[2], uid[3])
                user = User(ov)
                ov_read = False

                if user.is_registered():
                    self.frame.pack_forget()
                    InfoScreen(self.master, user)
                else:
                    self.frame.pack_forget()
                    RegisterScreen(self.master, user.get_ov())
            else:
                self.master.after(200, self.scan)
예제 #29
0
    def add_user(self):
        """Search new users via central server."""
        user_id = self.search_idLE.text()
        if not utils.is_valid_id(user_id):
            QMessageBox.information(None, 'warning', 'Invalid ID!',
                                    QMessageBox.Ok)
            return
        if user_id == self.me_user.user_id:
            QMessageBox.information(None, 'warning',
                                    'Why searching for yourself?',
                                    QMessageBox.Ok)
            return
        if self.get_user_via_id(user_id) is not None:
            QMessageBox.information(None, 'info',
                                    'User is already your friend!',
                                    QMessageBox.Ok)
            return

        # check whether online
        result = self.central_server_connector.search_user(user_id)
        if result == 'n':
            QMessageBox.information(None, 'info', 'User not online!',
                                    QMessageBox.Ok)
            return

        # update user
        if self.use_my_central_server:
            new_user = User(user_id=user_id,
                            name=None,
                            ip=result[0],
                            port=result[1],
                            icon=utils.get_icon())
        else:
            new_user = User(user_id=user_id,
                            name=None,
                            ip=result,
                            port=config.GENERAL_PORT,
                            icon=utils.get_icon())
        self.update_user(new_user, sock=None)
        self.search_idLE.setText('')
예제 #30
0
def login():

    print("Enter username : "******"Enter password : "******"Welcome - Access Granted")
        while True:
            menu()
    else:
        print('Invalid Creditails...')