Example #1
0
    def cariProduk(self):
        database.getDatabase().deleteScreen()

        cari = input("Produk yang dicari: ")
        query = "SELECT namaProduk, stok, harga from produk where namaProduk = '{}'".format(
            cari)

        self.cursor.execute(query)
        barang = self.cursor.fetchall()
        self.database.commit()

        try:  #dilakukan try dan except biar kalo ada error ngeprint yang except
            print([0][0], " dengan harga ", barang[0][1],
                  " Tersedia ditoko kami")
            tambah = input("Apakah  ingin ditambahkan dikeranjang ? \nyes/no")
            if tambah == 'yes':
                Pembeli.belanja.append(barang[0])
                Pembeli.harga.append(barang[0][1])
                mauTambah = input("Tambah Produk? \n yes/no")
                if mauTambah == "yes":
                    Pembeli().cariProduk()
                elif mauTambah == "no":
                    Pembeli().menuPembeli()

            elif tambah == 'no':
                Pembeli().menuPembeli()

        except IndexError:
            print("Maaf, Barang yang anda cari tidak tersedia di toko kami")
            Pembeli().menuPembeli()
Example #2
0
    def login(self):
        database.getDatabase().deleteScreen()
        username = str(input("Username: "******"Password: "******"INSERT INTO dataLogin (username, password) VALUES('{}', '{}');".format(
            username, password)
        self.cursor.execute(query)
        self.database.commit()

        print("Login Berhasil, Selamat Datang di Stock.Id", username, "^^")
        user = input("Ketik 'ya' untuk melanjutkan!")

        if user == 'ya':
            Penjual().menuPenjual()
Example #3
0
    def home(self):
        database.getDatabase().deleteScreen()
        daftar_menu = int(
            input('''============Selamat datang di Stock.id============
        
        1. Registrasi
        2. Log in

======================================================\n'''))

        if daftar_menu == 1:
            User().registrasi()
        elif daftar_menu == 2:
            User().login()

        else:
            print("Menu tidak tersedia, silahkan coba lagi!")
            self.home()
Example #4
0
    def menuPembeli(self):
        database.getDatabase().deleteScreen()

        daftar_menu = int(
            input(
                '''============Selamat datang di MENU PEMBELI Stock.id============
        
        1. Beli Produk
        2. Checkout
        4. Keluar

===============================================================\n'''))

        if daftar_menu == 1:
            Pembeli().selectProduk()
        elif daftar_menu == 2:
            Pembeli().Checkout()
        else:
            User().home()
Example #5
0
    def addProduk(self, tabel):
        self.tabel = tabel

        namaProduk = str(input("Nama produk: "))
        stok = int(input("Stok Produk: "))
        harga = int(input('Harga Produk: '))

        query = "INSERT INTO {} (namaProduk, stok, harga) VALUES('{}', '{}', '{}');".format(
            tabel, namaProduk, stok, harga)
        self.cursor.execute(query)
        self.database.commit()

        print("Produk berhasil ditambahkan.")
        cont = input("Apakah ingin kembali ke menu? (yes/ no\n)")
        if cont == 'yes':
            Penjual().menuPenjual()
        else:
            database.getDatabase().deleteScreen()
            Penjual().addProduk('produk')
Example #6
0
def commandLine():
    global finnhub_websocket
    while True:
        inputString = input()
        cutIndex = -1
        command = ""
        if " " in inputString:
            cutIndex = inputString.index(" ")
            command = inputString[:cutIndex]
        else:
            command = inputString

        if "printDatabase" == command:
            tradeDATAObj = database.getDatabase()
            pp.pprint(tradeDATAObj)
        elif "startupSymbols" == command:
            # add_symbol(finnhub_websocket, "BINANCE:BTCUSDT")
            add_symbol(finnhub_websocket, "AMZN")
            add_symbol(finnhub_websocket, "AAPL")
            add_symbol(finnhub_websocket, "MSFT")
            add_symbol(finnhub_websocket, "AMZN")
            add_symbol(finnhub_websocket, "V")
            add_symbol(finnhub_websocket, "BABA")
            add_symbol(finnhub_websocket, "WMT")
            add_symbol(finnhub_websocket, "DIS")
            add_symbol(finnhub_websocket, "KO")
            add_symbol(finnhub_websocket, "NKE")
            add_symbol(finnhub_websocket, "HSBC")
            add_symbol(finnhub_websocket, "MCD")
        elif "addSymbol" == command:
            if cutIndex > 0:
                add_symbol(finnhub_websocket, inputString[cutIndex + 1:])
                print(f"> Added {inputString[cutIndex+1:]}")
        elif "printSubscription" == command:
            pp.pprint(getSubscription())
        elif "testBlock" == command:
            print(finnhub_websocket)
        elif "printWebhooks" == command:
            print(list_webhooks())
        elif "websocketResub" == command:
            finnhub_websocket.resubscribe()
            print(f"resub {finnhub_websocket.symbols}")
        elif "cleanWebhooks" == command:
            clean_webhooks()
        elif "startWebsocket" == command:
            websocketThread = threading.Thread(target=startWebsocket__,
                                               args=())
            websocketThread.start()
        elif "stopWebsocket" == command:
            finnhub_websocket.stop()
        elif "getSymbols" == command:
            print(finnhub_websocket.getSymbols())
Example #7
0
    def menuPenjual(self):
        database.getDatabase().deleteScreen()

        daftar_menu = int(
            input(
                '''============Selamat datang di MENU PENJUAL Stock.id============
        
        1. Tambah Produk
        2. Hapus Produk
        3. Cek Stok Produk
        4. Keluar

===============================================================\n'''))

        if daftar_menu == 1:
            Penjual().addProduk('produk')
        elif daftar_menu == 2:
            Penjual().deleteProduk()
        elif daftar_menu == 3:
            Penjual().cekProduk()
        else:
            User().home()
Example #8
0
    def registrasi(self):
        database.getDatabase().deleteScreen(
        )  #untuk menghapus tulisan yang diatasnya
        email = str(input("Email: "))
        username = str(input("Username: "******"Password: "******"INSERT INTO dataRegistrasi (email, username, password) VALUES('{}', '{}', '{}');".format(
            email, username, password)
        self.cursor.execute(query)
        self.database.commit()  #mengakhiri dan disimpan permanen

        cont = str(
            input(
                'Selamat anda berhasil terdaftar!^^, continue to login? (yes/ no)\n'
            ))
        if cont == 'yes':
            User().login()
        elif cont == 'no':
            User().home()
        else:
            User().home()
Example #9
0
    def menuPembeli(self):
        database.getDatabase().deleteScreen()

        daftar_menu = int(
            input(
                '''============Selamat datang di MENU PEMBELI Stock.id============
        
        1. Beli Produk
        2. Checkout
        4. Keluar

===============================================================\n'''))

        if daftar_menu == 1:
            Pembeli().cariProduk()
        elif daftar_menu == 2:
            beli = str(input("Beli produk terlebih dahulu!\n (yes/no)"))
            if beli == 'yes':
                Pembeli().menuPembeli()
            else:
                User().home()
        else:
            User().home()
Example #10
0
def handle_request(request):
    http = HTTPHandler

    if not "\r\n\r\n" in request: return None

    try:
        bodySeperatorIndex = request.index("\r\n\r\n")
        # Parse headers
        headers = request[:bodySeperatorIndex].split("\n")

        # Parse body
        body = request[bodySeperatorIndex + 4:]
        if (len(headers) > 1):
            get_content = headers[0].split()

            # accept = headers[6].split()
            # type_content = accept[1].split('/')
            requestUrl = get_content[1]
            if "?" in requestUrl:
                requestUrl = requestUrl[:requestUrl.index("?")]

            print(f"Request: {get_content[1]}")
            if requestUrl == "/recieve":
                return webhook_data(headers, body)
            elif requestUrl == "/getData":
                return json.dumps(database.getDatabase()).encode()
            elif requestUrl == "/add":
                return "not implemented"
            else:
                try:
                    # Filename
                    filename = requestUrl

                    if get_content[0] == "GET":
                        # content = http.get(None, requestUrl, type_content[0])
                        content = http.get(None, requestUrl, 'image')
                        return content
                except FileNotFoundError:
                    return None
    except Error:
        return None
def server_thread(listen_conn, broadcast_conn, listen_addr, broadcast_addr,
                  push_conn, push_addr, client_id):
    """
    server thread to serve clients
    listens for commands from the client and carries them out
    """
    global database
    global clients
    _client = client.Client(listen_conn, broadcast_conn, listen_addr,
                            broadcast_addr, push_conn, push_addr)
    clients.append(_client)
    while True:
        with listen_conn and broadcast_conn:
            print('Connected by', listen_addr)
            print('alternatively, ', broadcast_addr)
            while True:
                # check for updated messages, this should happen before receiving
                # should be split into data[0]@data[1]@data[2]
                # where data[0] is the command (CONN, DISC, etc.), data[1] is the topic, data[2] is the contents
                data = listen_conn.recv(DATA_SIZE).decode("utf-8").split("@")
                data[0] = data[0].upper()
                print("client: ", data)
                if not data:
                    break
                if data[0] == "CONNECT":
                    # send ACK
                    broadcast_conn.send("CONNACK".encode("utf-8"))
                elif data[0] == "DISCONNECT":
                    # send ACK
                    broadcast_conn.send("DISCACK".encode("utf-8"))
                    response = listen_conn.recv(SRTMSG).decode("utf-8")
                    print("client: " + response)

                    if response == "DISCACK":
                        listen_conn.shutdown(socket.SHUT_RDWR)
                        listen_conn.close()
                        broadcast_conn.shutdown(socket.SHUT_RDWR)
                        broadcast_conn.close()
                        # "break" is essentially where the server full shuts down for that client
                        break
                elif data[0] == "PUBLISH":
                    # only proceed if there is topic and contents
                    if len(data) == 3:
                        topic = data[1]
                        contents = data[2]
                        # subscribe the publisher to the topic
                        _client.subscribe(topic)
                        # notify all subscribers
                        notify(topic, contents)
                        broadcast_conn.send("PUBACK".encode("utf-8"))
                    elif len(data) == 4:
                        topic = data[1]
                        contents = data[2]
                        database.publish(topic, contents)
                        # subscribe the publisher to the topic
                        _client.subscribe(topic)
                        # notify all subscribers
                        notify(topic, contents)
                        broadcast_conn.send("PUBACK".encode("utf-8"))
                    else:
                        broadcast_conn.send("PUBFAIL".encode("utf-8"))
                elif data[0] == "SUBSCRIBE":
                    # adds the topic to the client's profile
                    _client.subscribe(data[1])
                    # need to account for wildcard

                    # immediately allow the subscriber to have the latest message
                    path = data[1].split("/")
                    db = database.getDatabase()
                    db_lag = db
                    msg = ""
                    for t in path:
                        db_lag = db
                        if t == "*" or t == "+":
                            t = list(db.keys())[0]
                        msg = db[t][1]
                        db = db[t][0]
                    push_conn.send(msg.encode("utf-8"))
                    broadcast_conn.send("SUBACK".encode("utf-8"))
                elif data[0] == "UNSUBSCRIBE":
                    _client.unsubscribe(data[1])
                    # need to account for wildcard
                    broadcast_conn.send("UNSUBACK".encode("utf-8"))
                elif data[0] == "LIST":
                    print(database)
                    broadcast_conn.send("LIST".encode("utf-8"))
                    print(str(database))
                    broadcast_conn.send(str(database).encode("utf-8"))
                else:
                    # send ACK
                    broadcast_conn.send("invalid type".encode("utf-8"))
                    print("invalid type")
Example #12
0
#!/usr/bin/python
import database as dbs
import switch, thermocontrol, sys

db = dbs.getDatabase()

def help():
    print "h1  - Turn heating on"
    print "h0  - Turn heating off"
    print "t1  - Turn thermometer writing on"
    print "t0  - Turn thermometer writing off"
    print "p1  - Turn PID Controller on"
    print "p0  - Turn PID Controller off"
    print "s   - setpoint"
    print "cdb - clear database"
    print "g   - get current temperature"
    print "x   - quit" 
    print "?   - print this"
    


help()

while True:
    i = raw_input("command: ")

    if (i == "h1"):
        switch.on()
        print "switched heating on"
        continue
Example #13
0
from database import getDatabase
from sensor_bme280 import collectBME280SensorData
from sensor_dht22 import collectDHT22SensorData

# Program start
db = getDatabase()

collectBME280SensorData(db)

collectDHT22SensorData(db)

db.commit()
db.close()
Example #14
0
#!/usr/bin/env python
"""A prototype server developed as a proof-of-concept for a new mapping system
for foxhunting and balloon chases.

This requires Flask, which is a microframework for Python.
See http://flask.pocoo.org/
"""

import database
import flask
import flask.ext.login

app = flask.Flask(__name__, static_url_path='', static_folder='')
db = database.getDatabase()
loginManager = flask.ext.login.LoginManager(app)


class User(flask.ext.login.UserMixin):
    def __init__(self, uid, username):
        self.uid = uid
        self.username = username

    def get_id(self):
        return self.uid


@loginManager.user_loader
def loadUser(userid):
    username, active = db.user(int(userid))
    return User(userid, username)
Example #15
0
 def accept( self ):
     database.getDatabase( self.txtBd.text(), "--dbconfig" in qApp.arguments() )
     super( dlgUserLogin, self ).accept()
Example #16
0
#!/usr/bin/env python
"""A prototype server developed as a proof-of-concept for a new mapping system
for foxhunting and balloon chases.

This requires Flask, which is a microframework for Python.
See http://flask.pocoo.org/
"""

import database
import flask
import flask.ext.login

app = flask.Flask(__name__, static_url_path='', static_folder='')
db = database.getDatabase()
loginManager = flask.ext.login.LoginManager(app)


class User(flask.ext.login.UserMixin):
    def __init__(self, uid, username):
        self.uid = uid
        self.username = username

    def get_id(self):
        return self.uid


@loginManager.user_loader
def loadUser(userid):
    username, active = db.user(int(userid))
    return User(userid, username)