commit 199c363178573948f28e7e13f365b62f10bd7a02
parent e038e89b434f5f419d37eebcca30dd24d4cbfda5
Author: rob <rob@tarina.org>
Date: Thu, 20 Feb 2025 11:55:52 +0200
stats
Diffstat:
M | server.py | | | 44 | ++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 44 insertions(+), 0 deletions(-)
diff --git a/server.py b/server.py
@@ -29,6 +29,7 @@ urls = (
'/dropitem/(.*)?', 'dropitem',
'/payln/(.*)', 'payln',
'/goodies/(.*)', 'goodies',
+ "/stats", "stats",
'/lightning?', 'lightning',
'/paybtc/(.*)', 'paybtc',
'/payment/(.*)', 'payment',
@@ -379,6 +380,49 @@ class almost():
session.sessionkey = 'empty'
return rendersplash.almost(products,bag,session.sessionkey,productname,inbag,db,getprice,getrate,i.category, markdown)
+def visitorlog(ip, referer, environ):
+ last = db.query('SELECT ip AS ip FROM visitors WHERE id=(SELECT MAX(id) FROM visitors)')
+ try:
+ lastip = last[0].ip
+ except:
+ lastip = 'none'
+ if lastip != ip:
+ country = ''
+ country = os.popen('geoiplookup '+ip).read()
+ #print(soundtype)
+ countrycode = country.split(':')[1].split(',')[0].lower().strip()
+ country = country.split(':')[1].split(',')[1].strip()
+ #print('fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu: '+ country)
+ db.insert('visitors', ip=ip, referer=referer, environ=environ, country=country, countrycode=countrycode, time=datetime.datetime.now())
+ print("added to visitor log")
+ return
+
+def getvisitors():
+ visitors = db.select('visitors')
+ total = db.query('SELECT COUNT(*) AS total_visits FROM visitors')
+ unique = db.query('SELECT COUNT(DISTINCT ip) AS unique_visits FROM visitors')
+ return visitors, total[0].total_visits, unique[0].unique_visits
+
+def getvisits():
+ limit=100
+ visits = db.query("SELECT * FROM visitors ORDER BY time DESC LIMIT " + str(limit))
+ visitors = db.select('visitors')
+ total = db.query('SELECT COUNT(*) AS total_visits FROM visitors')
+ unique = db.query('SELECT COUNT(DISTINCT ip) AS unique_visits FROM visitors')
+ countrylist=[]
+ for i in visits:
+ if i.countrycode not in countrylist:
+ countrylist.append(i.countrycode)
+ #print('fuuuuuuuuuuuuuuu: '+i.countrycode)
+ return countrylist, total[0].total_visits, unique[0].unique_visits
+
+class stats:
+ def GET(self):
+ if logged():
+ visitors, total, unique = getvisitors()
+ return render.stats(visitors, total, unique)
+ else:
+ raise web.seeother('/login')
class putinbag:
def GET(self, p):