Module allintelligence.piplwrapper
Expand source code
import requests
from allintelligence.config import PIPL_API_KEY
"""
Pipl module to obtain information about a person from an email
__author__:AllPentesting
"""
def petition(email):
"""
Function that contracts with the API Pipl and returns a series of information from an email that is passed
Parameters:
- email: mail of the person we are looking for information
"""
response = requests.get("https://api.pipl.com/search/?email="+email+"&key="+PIPL_API_KEY)
return __parser(response.json())
def __parser(info_pipl):
"""
Function responsible for interpreting the json obtained through requests and returns a dictionary with Pypl data.
Parameters:
- info_pipl: JSON that gives us pipl
"""
try:
# Main dictionary with all the pipl information
dict_pipl = {}
array_usernames = []
for username in info_pipl["person"].get("usernames",[]):
array_usernames.append(username.get("content", None))
array_usernames = list(filter(None.__ne__, array_usernames))
if(len(array_usernames) == 0):
array_usernames = []
# We add the array of usernames to the main Pipl dictionary
dict_pipl.update({"usernames":array_usernames})
array_emails = []
for email in info_pipl["person"].get("emails", []):
array_emails.append(email.get("address", None))
array_emails = list(filter(None.__ne__, array_emails))
if(len(array_emails) == 0):
array_emails = []
# We add the email dictionary to the main Pipl dictionary
dict_pipl.update({"emails":array_emails})
array_addresses = []
for address in info_pipl["person"].get("addresses", []):
array_addresses.append(address.get("display", None))
array_addresses = list(filter(None.__ne__, array_addresses))
if(len(array_addresses) == 0):
array_addresses = []
# We add the array of addresses to the main Pipl dictionary
dict_pipl.update({"addresses":array_addresses})
array_phones = []
for phone in info_pipl["person"].get("phones", []):
array_phones.append(phone.get("display_international", None))
array_phones = list(filter(None.__ne__, array_phones))
if(len(array_phones) == 0):
array_phones = []
# We add the array of phones to the main Pipl dictionary
dict_pipl.update({"phones":array_phones})
array_jobs = []
for job in info_pipl["person"].get("jobs", []):
array_jobs.append(job.get("display", None))
array_jobs = list(filter(None.__ne__, array_jobs))
if(len(array_jobs) == 0):
array_jobs = []
# We add the array of jobs to the main Pipl dictionary
dict_pipl.update({"jobs":array_jobs})
array_images = []
for img in info_pipl["person"].get("images", []):
image = img.get("urls", None)
if(image != None):
check_image = requests.get(image)
if check_image.status_code == 200:
array_images.append(img.get("urls", None))
# We add the images dictionary to the main Pipl dictionary
dict_pipl.update({"images":array_images})
array_urls = []
for url in info_pipl["person"].get("urls", {}):
array_urls.append([url.get("url", None)])
array_urls = list(filter(None.__ne__, array_urls))
if(len(array_urls) == 0):
array_urls = []
# We add the urls dictionary to the main Pipl dictionary
dict_pipl.update({"urls":array_urls})
return dict_pipl
except Exception:
print(info_pipl)
return {"error":info_pipl["@http_status_code"]}
Functions
def __parser(info_pipl)
-
Function responsible for interpreting the json obtained through requests and returns a dictionary with Pypl data.
Parameters
- info_pipl: JSON that gives us pipl
Expand source code
def __parser(info_pipl): """ Function responsible for interpreting the json obtained through requests and returns a dictionary with Pypl data. Parameters: - info_pipl: JSON that gives us pipl """ try: # Main dictionary with all the pipl information dict_pipl = {} array_usernames = [] for username in info_pipl["person"].get("usernames",[]): array_usernames.append(username.get("content", None)) array_usernames = list(filter(None.__ne__, array_usernames)) if(len(array_usernames) == 0): array_usernames = [] # We add the array of usernames to the main Pipl dictionary dict_pipl.update({"usernames":array_usernames}) array_emails = [] for email in info_pipl["person"].get("emails", []): array_emails.append(email.get("address", None)) array_emails = list(filter(None.__ne__, array_emails)) if(len(array_emails) == 0): array_emails = [] # We add the email dictionary to the main Pipl dictionary dict_pipl.update({"emails":array_emails}) array_addresses = [] for address in info_pipl["person"].get("addresses", []): array_addresses.append(address.get("display", None)) array_addresses = list(filter(None.__ne__, array_addresses)) if(len(array_addresses) == 0): array_addresses = [] # We add the array of addresses to the main Pipl dictionary dict_pipl.update({"addresses":array_addresses}) array_phones = [] for phone in info_pipl["person"].get("phones", []): array_phones.append(phone.get("display_international", None)) array_phones = list(filter(None.__ne__, array_phones)) if(len(array_phones) == 0): array_phones = [] # We add the array of phones to the main Pipl dictionary dict_pipl.update({"phones":array_phones}) array_jobs = [] for job in info_pipl["person"].get("jobs", []): array_jobs.append(job.get("display", None)) array_jobs = list(filter(None.__ne__, array_jobs)) if(len(array_jobs) == 0): array_jobs = [] # We add the array of jobs to the main Pipl dictionary dict_pipl.update({"jobs":array_jobs}) array_images = [] for img in info_pipl["person"].get("images", []): image = img.get("urls", None) if(image != None): check_image = requests.get(image) if check_image.status_code == 200: array_images.append(img.get("urls", None)) # We add the images dictionary to the main Pipl dictionary dict_pipl.update({"images":array_images}) array_urls = [] for url in info_pipl["person"].get("urls", {}): array_urls.append([url.get("url", None)]) array_urls = list(filter(None.__ne__, array_urls)) if(len(array_urls) == 0): array_urls = [] # We add the urls dictionary to the main Pipl dictionary dict_pipl.update({"urls":array_urls}) return dict_pipl except Exception: print(info_pipl) return {"error":info_pipl["@http_status_code"]}
def petition(email)
-
Function that contracts with the API Pipl and returns a series of information from an email that is passed
Parameters
- email: mail of the person we are looking for information
Expand source code
def petition(email): """ Function that contracts with the API Pipl and returns a series of information from an email that is passed Parameters: - email: mail of the person we are looking for information """ response = requests.get("https://api.pipl.com/search/?email="+email+"&key="+PIPL_API_KEY) return __parser(response.json())