40 lines
No EOL
1.1 KiB
Python
40 lines
No EOL
1.1 KiB
Python
import json
|
|
import os
|
|
from flask import Flask, request
|
|
from waitress import serve
|
|
from functools import reduce
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route("/track", methods = ['GET'])
|
|
def track():
|
|
if request.method == 'GET' and request.args.get('hash'):
|
|
hash = str(request.args.get('hash'))
|
|
ua = str(request.args.get('ua'))
|
|
url = str(request.values.get("url") or request.headers.get("Referer"))
|
|
if os.path.exists('db.json'):
|
|
with open('db.json', 'r') as db:
|
|
db = json.loads(db.read())
|
|
else:
|
|
db = {}
|
|
if hash in db.keys():
|
|
visits = db[hash]['visits']
|
|
else:
|
|
visits = list()
|
|
|
|
visits.append(url)
|
|
visits = list(set(visits))
|
|
db.update({
|
|
hash : {
|
|
'visits' : visits,
|
|
'agent' : ua
|
|
}
|
|
})
|
|
with open('db.json', 'w+') as dbw:
|
|
dbw.write(json.dumps(db, indent=4))
|
|
|
|
return str(len(db[hash]))
|
|
else:
|
|
return 'hash missing'
|
|
|
|
serve(app, host='0.0.0.0', port=8001) |