Esempio n. 1
0
def pic_gallery():
    alerts = generateAlerts()
    user_data = sec.getUserSession()
    imageGallery = db.getImageDetails()
    cfg.debug(imageGallery,True)

    return render_template(cfg.gallery_page, title="Minecraft Gallery", u=user_data, i=imageGallery, a=alerts)
Esempio n. 2
0
def home():
    rule = request.url_rule

    sec.generateAppKeys()

    if 'logout' in rule.rule:
        sec.clearSession()
        user_data = user.clearUserData()
        sec.setSessionVar(sec.user_data_key, user_data)

    if sec.getSessionVar(sec.user_data_key) == False:
        user_data = user.clearUserData()
        sec.setSessionVar(sec.user_data_key, user_data)

    user_data = sec.getUserSession()


    cfg.debug(f">>>>>>USERDATA {user_data}",True)




    alerts = generateAlerts()
    server_data = getMCServerData()
    projects = getProjectData()
    return render_template(cfg.dashboard_page, title="Dashboard", a=alerts, u=user_data, s=server_data,p=projects)
Esempio n. 3
0
def loginAction():

    if sec.isLoggedIn():
        pass
    else:
        if request.method == "POST":
            email = request.form['email']
            password = request.form['password']

            data = (email, password)

            user_data= db.check_user(data)
            cfg.debug(user_data, True)

            sec.setSessionVar(sec.user_data_key,user_data)


    return redirect("/")
Esempio n. 4
0
def getProjectData():

    # todo change desc to be based on percent commplete
    sql = "SELECT name, percentComplete, desc from projectAreasTracking order by percentComplete ASC"
    conn = create_connection(cfg.DB)
    cur = conn.cursor()
    cur.execute(sql, )
    projectList = cur.fetchall()
    projects = []
    cfg.debug(projectList, DEBUG)
    for project in projectList:
        # if project[1] == 100:
        #     percent = "Completed"
        # else:
        style = project[2]
        percent =  f"{project[1] }%"
        p = { "name": project[0], "done": percent, 'style': style}
        projects.append(p)


    return projects
Esempio n. 5
0
def profile_page(uid=""):

    rule  = request.url_rule.rule


    user_data= sec.getUserSession()

    alerts = generateAlerts()
    if request.method == 'POST' and "update" in rule:

        # get formdata s
        cfg.debug("UPDATING PROFILE ",True)
        pwd = request.form['new_pwd']
        name = request.form['mcUsername']
        if request.form['orig_mc'] != name or pwd != "":
            sql = "UPDATE members set minecraftName = ? , pic = ?"
            if pwd.strip() != "":
                sql = sql + f", password = {pwd}"
            sql = sql + " where memberId = " + request.form['uid']

            pic = f"https://minotar.net/helm/{name}/50.png"

            data = (name, pic)

            cfg.debug(sql,True)
            cfg.debug(data,True)
            conn = create_connection(cfg.DB)
            cur = conn.cursor()
            cur.execute(sql,data)
            conn.commit()
            conn.close()

            user_data['mcUsername'] = name
            user_data['pic'] = pic

            sec.setSessionVar(sec.user_data_key,user_data)


        return render_template(cfg.profile_page, a=alerts, u=user_data)



    if uid == "" or user_data['loggedIn'] == False or uid != user_data['mcUsername']:
        cfg.debug(f"REDIRECTING FROM MEMBERS UPADTE uid: {uid} loggedIn: {user_data['loggedIn']} id: {user_data['id']}",True)
        return redirect("/")

    # display normal profile page

    return render_template(cfg.profile_page, a=alerts, u=user_data)
Esempio n. 6
0
def getMCServerData():
    cfg.debug(f"getMCServerData", DEBUG)
    # get mc server info
    mcServer = "minecraft.tas.qld.edu.au"
    conn = create_connection(cfg.DB)
    sql = "SELECT MAX(maxPing), date from ping"
    cfg.debug(sql, DEBUG)

    cur = conn.cursor()
    cur.execute(sql)
    maxPing = cur.fetchone()[0]

    sql = "SELECT COUNT(name) FROM members"
    cur.execute(sql)
    count = cur.fetchone()[0]

    try:


        server = MinecraftServer(mcServer)
        status = server.status()

        latency = status.latency

        playersOnLine = status.players.online
        playersMax = status.players.max

        query = server.query()
        playersList = query.players.names
        cfg.debug(f"Playerlist: {playersList}", DEBUG)

        now = datetime.datetime.now()
        # get max ping from db.



        if latency > maxPing:
            sql = f"INSERT INTO ping (maxPing, date) VALUES ({status.latency}, '{now}')"
            cfg.debug(sql , DEBUG)
            cur.execute(sql )
            conn.commit()
            maxPing = f"{latency} ms"

        percent = math.floor(playersOnLine / playersMax * 100)

    except Exception as e:
        cfg.debug(f"MC error {e}", True)
        playersList = []
        playersOnLine = 0
        playersMax = 20
        percent = 0
        latency = "OFFLINE"
        count = 0


    # listOfPlayers = "THIS WILL BE A LIST OF ALL PLAYERS"
    serverData = {
        "ip": mcServer,
        "latency": f"{latency} ms",
        "playersList": playersList,
        "playerCount": playersOnLine,
        "playersMax": playersMax,
        "percent": percent,
        "maxPing": f"{maxPing} ms",
        "docLink": latestDoc,
        "discord": discordInvite,
        "members": count
    }
    cfg.debug(f"mc server data: {serverData} ", True)
    return serverData
Esempio n. 7
0
def contact():
    alerts = generateAlerts()
    user_data = sec.getUserSession()
    cfg.debug(f"Alerts: {alerts}", True)
    return render_template(cfg.contact_page, title="Contact us", u=user_data, a=alerts)