thiswebshoprules

git clone https://git.tarina.org/thiswebshoprules
Log | Files | Refs

commit 199c363178573948f28e7e13f365b62f10bd7a02
parent e038e89b434f5f419d37eebcca30dd24d4cbfda5
Author: rob <rob@tarina.org>
Date:   Thu, 20 Feb 2025 11:55:52 +0200

stats

Diffstat:
Mserver.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):