Created
June 6, 2020 08:07
-
-
Save namieluss/f17c54015845cb6b31d5641cefedc7c2 to your computer and use it in GitHub Desktop.
This is a simple app written in Python Flask with MongoDB mongodb database. Celery is used to manage task queue.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
__author__ = "Suleiman" | |
from datetime import datetime | |
from flask import request | |
from requests import get as http_getter | |
from . import app, db, celery | |
@celery.task | |
def check_who_and_where(page): | |
with app.app_context(): | |
# get ip address of the visitor | |
ip = request.access_route[0] | |
d = http_getter("https://ipapi.co/{}/json/".format(ip)).json() | |
if d and not d.get('reserved'): | |
store = { | |
"ip": d.get('ip', ''), | |
"city": d.get("city", ''), | |
"region": d.get("region"), | |
"org": d.get('org', ''), | |
"country_code": d.get("country_code", ''), | |
"country_name": d.get('country_name', ''), | |
"latitude": d.get('latitude', ''), | |
"longitude": d.get('longitude', ''), | |
"browser": request.user_agent.browser, | |
"platform": request.user_agent.platform, | |
"date": datetime.today(), | |
"page": page | |
} | |
db.page_access_log.insert(store) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment