mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 19:27:49 +00:00
Update reverse geoip python function
Update parsing geosjon python function
This commit is contained in:
@@ -345,10 +345,10 @@ $urlencode_py$ LANGUAGE plpython3u IMMUTABLE STRICT;
|
|||||||
-- python
|
-- python
|
||||||
-- https://ipapi.co/
|
-- https://ipapi.co/
|
||||||
DROP FUNCTION IF EXISTS reverse_geoip_py_fn;
|
DROP FUNCTION IF EXISTS reverse_geoip_py_fn;
|
||||||
CREATE OR REPLACE FUNCTION reverse_geoip_py_fn(IN _ip TEXT) RETURNS void
|
CREATE OR REPLACE FUNCTION reverse_geoip_py_fn(IN _ip TEXT) RETURNS JSONB
|
||||||
AS $reverse_geoip_py$
|
AS $reverse_geoip_py$
|
||||||
"""
|
"""
|
||||||
TODO
|
Return ipapi.co ip details
|
||||||
"""
|
"""
|
||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
@@ -358,13 +358,15 @@ AS $reverse_geoip_py$
|
|||||||
r = requests.get(url)
|
r = requests.get(url)
|
||||||
#print(r.text)
|
#print(r.text)
|
||||||
# Return something boolean?
|
# Return something boolean?
|
||||||
#plpy.notice('Sent successfully to [{}] [{}]'.format(r.text, r.status_code))
|
#plpy.notice('IP [{}] [{}]'.format(_ip, r.status_code))
|
||||||
if r.status_code == 200:
|
if r.status_code == 200:
|
||||||
plpy.notice('Sent successfully to [{}] [{}]'.format(r.text, r.status_code))
|
#plpy.notice('Got [{}] [{}]'.format(r.text, r.status_code))
|
||||||
|
return r.text;
|
||||||
else:
|
else:
|
||||||
plpy.error('Failed to send')
|
plpy.error('Failed to get ip details')
|
||||||
return None
|
return '{}'
|
||||||
$reverse_geoip_py$ TRANSFORM FOR TYPE jsonb LANGUAGE plpython3u;
|
$reverse_geoip_py$ LANGUAGE plpython3u;
|
||||||
|
|
||||||
-- Description
|
-- Description
|
||||||
COMMENT ON FUNCTION
|
COMMENT ON FUNCTION
|
||||||
public.reverse_geoip_py_fn
|
public.reverse_geoip_py_fn
|
||||||
@@ -403,6 +405,8 @@ AS $geojson_py$
|
|||||||
#plpy.notice(feature)
|
#plpy.notice(feature)
|
||||||
if (feature['geometry']['type'] != geometry_type):
|
if (feature['geometry']['type'] != geometry_type):
|
||||||
output.append(feature)
|
output.append(feature)
|
||||||
|
#elif (feature['properties']['id']): TODO
|
||||||
|
# output.append(feature)
|
||||||
#else:
|
#else:
|
||||||
# plpy.notice('ignoring')
|
# plpy.notice('ignoring')
|
||||||
return json.dumps(output)
|
return json.dumps(output)
|
||||||
|
Reference in New Issue
Block a user