Untitled

mail@pastecode.io avatar
unknown
python
3 years ago
4.4 kB
2
Indexable
Never
# __ Imports #
## ___Standered imports__
import os
import sys
## __ non statered imports

from flask import Flask
import secrets

import hashlib

from FileWrite import FileWrite

push = FileWrite.FileWriter.push

# End of __imports__
hashedKeys = []
for file in os.scandir('keys/API_KEYS'):
    file = open(file, 'r')
    hashedKeys.append(file.read(1))
    file.close()

app = Flask('app')


@app.route('/api/<string:key>/<string:username>')
def Api(Key, username):
    key = checkkey(Key, username)
    if key:
        return 'Welcome to the api'


@app.route('/api/User/<string:status>/<string:username>/<string:password>')

def user(status, username, password):
    #return "broken"
        folder = 'keys/Accounts'
        if status == "temp":
            for file in os.scander(folder):
                if file.isfile:
                    if username in file:
                        file = open(folder + file, 'r')
                        pswd_hsh = file.read(1)

                        if hashlib.pbkdf2_hmac(user, password,
                                               file.read(2)) == pswd_hsh:
                            userfound = True
                            temp_Api_Key = generate_api_key
                            return temp_Api_Key
                        else:
                            return "wrong username or password"
            if not (userfound): return "wrong username or password"
        elif status == "sign_up":
            salt = secrets.token_hex(16)
            psw_hash = hashlib.pbkdf2_hmac('sha256', password.encode(), salt.encode(),5)
            push(folder + username, psw_hash, '.psw')
            push(folder + username, salt, '.psw')
            apikey = generate_api_key()
            api_hash = hashlib.pbkdf2_hmac('sha256', apikey.encode(), salt.encode(),5)
            push('keys/API_KEYS/' + username + psw_hash, api_hash, 'psw')
            global hashedKeys
            hashedKeys.append(api_hash)
            return apikey


def checkkey(key, username):
    salt = open('.keys.Accounts.' + username + '.psw')
    key = hashlib.pbkdf2_hmac('sha256', key, salt.read(2).encode('utf-8'),5)
    salt.close
    if key in hashedKeys:
        return True
    else:
        return False


def generate_api_key():
    return secrets.token_urlsafe(16)

app.debug = True
app.run(host='0.0.0.0', port=8080,debug = True)


import datetime
import os

class functionsclass:
    
    global path
    path = os.path.realpath('')
    def __init__(self):
        #functions.__init startup function
        print("functions active")

    def log1(
        self,
        What,
        Where,
    ):
    #log1 is a function that writes log messages to the log file
        tim = datetime.time().__str__()

        try:
            with open(os.path.join(path + "log.txt"), "x") as f:
                f.write("time:" + tim + " " + What + " at " + Where + "\n")
        except:
            with open(os.path.join(path + "log.txt"), 'r') as f :
                f.write("time:" + tim + " " + What + " at " + Where + "\n")
    def push(self,filename,send,exention):
        try:
            with open(os.path.join(path + "/" + filename + "." + exention ), 'x') as f:
                f.write(send + "\n")
                functionsclass.log1("created and wrote " + send, " at " + filename)

        except:
            with open(os.path.join(path + "/" + filename + "." + exention), 'a') as f:
                f.append(send + "\n")
                f.close()
                functionsclass.log1("wrote " + send, " at " + path + "/" + filename)



from functions1.funtions import functionsclass



functions = functionsclass(functionsclass)


class FileWriter:
    # ----------------------------------------------------------------
   
    # front class Log push , and file push   
    def push(filename,Content,exention):
      functions.push(filename,Content,exention)
    def logs1(What,Where,):
      functions.logs1(What,Where)
      
   
    def __init__(self):
        #setup the file writer
        
        self.__filename

        self.logs1("init", "logs1.txt")
        self.push("start", "Welcome to file writer",".txt")
    def Start(self):
      print("Started")