Skip to content
Snippets Groups Projects
Commit 97ccafd7 authored by Ferenc Schulcz's avatar Ferenc Schulcz
Browse files

Add last pay dates to web view

parent 97138190
No related branches found
No related tags found
No related merge requests found
import datetime
from rcon import Client
import services
import db
......@@ -5,6 +6,7 @@ import pymongo
import socket
import os
import config
import mysql.connector
plugin_dir = os.path.dirname(__file__) # parent folder name of the absolute path of this file
......@@ -41,6 +43,9 @@ def mcadmin(**kwargs):
serverworking = False
if not serverworking and "serverstatus" not in request.args.keys():
serverstatus = "The server is down or loading."
lastplaydates = last_player_logins()
if lastplaydates is None:
serverstatus += "Minecraft database is down."
if blacklist != "There are no bans":
blacklist = blacklist[blacklist.index(':')+1:] # trim header text away
bans = blacklist.split('.')
......@@ -48,7 +53,7 @@ def mcadmin(**kwargs):
banneduserlist.append(bans[i].split()[0])
ulist = db.mc_users.find()
for u in ulist:
mcuserlist.append({'mcuser': u['mcuser'], 'webuser': u['username']})
mcuserlist.append({'mcuser': u['mcuser'], 'webuser': u['username'], 'lastplayed': lastplaydates[u['mcuser']]})
return rqtools.render_template(plugin_dir + '/templates/minecraft_admin.html', mcuserlist=mcuserlist, banneduserlist=banneduserlist, serverstatus=serverstatus)
......@@ -137,3 +142,30 @@ def player_exists(name):
if x is None:
return False
return True
def last_player_logins():
try:
authmedb = mysql.connector.connect(
host=config.get('MINECRAFT_AUTHME_DB_HOST'), user=config.get('MINECRAFT_AUTHME_DB_USER'), password=config.get('MINECRAFT_AUTHME_DB_PASSWORD'), database='authme', charset="utf8mb3")
cursor = authmedb.cursor()
# Query to get realname and timestamp
query = "SELECT realname, timestamp FROM authme"
cursor.execute(query)
# Fetch and process the results
results = {}
for realname, timestamp in cursor.fetchall():
if timestamp == None:
results[realname] = 'never'
else:
human_readable_date = datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d')
results[realname] = human_readable_date
except:
return None
finally:
if authmedb:
authmedb.close()
return results
\ No newline at end of file
......@@ -32,7 +32,8 @@
{% for user in mcuserlist %}
<div class="row">
<p>{{ user['mcuser'] }} <span style="opacity: 50%;">(on website: {{ user['webuser'] }})</span></p>
<p>{{ user['mcuser'] }} <span style="opacity: 50%;">(on website: {{ user['webuser'] }}, last played: {{
user['lastplayed'] }})</span></p>
<a href="{{ url_for('service', servicename='mcban', player=user['mcuser']) }}" class="button">Ban</a>
</div>
{% endfor %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment