You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.1 KiB
90 lines
3.1 KiB
5 years ago
|
"""Sherlock Result Module
|
||
|
|
||
|
This module defines various objects for recording the results of queries.
|
||
|
"""
|
||
|
from enum import Enum
|
||
|
|
||
|
|
||
|
class QueryStatus(Enum):
|
||
|
"""Query Status Enumeration.
|
||
|
|
||
|
Describes status of query about a given username.
|
||
|
"""
|
||
4 years ago
|
CLAIMED = "Claimed" # Username Detected
|
||
|
AVAILABLE = "Available" # Username Not Detected
|
||
|
UNKNOWN = "Unknown" # Error Occurred While Trying To Detect Username
|
||
|
ILLEGAL = "Illegal" # Username Not Allowable For This Site
|
||
8 months ago
|
WAF = "WAF" # Request blocked by WAF (i.e. Cloudflare)
|
||
5 years ago
|
|
||
|
def __str__(self):
|
||
|
"""Convert Object To String.
|
||
|
|
||
|
Keyword Arguments:
|
||
|
self -- This object.
|
||
|
|
||
|
Return Value:
|
||
|
Nicely formatted string to get information about this object.
|
||
|
"""
|
||
|
return self.value
|
||
|
|
||
|
class QueryResult():
|
||
|
"""Query Result Object.
|
||
|
|
||
|
Describes result of query about a given username.
|
||
|
"""
|
||
5 years ago
|
def __init__(self, username, site_name, site_url_user, status,
|
||
|
query_time=None, context=None):
|
||
5 years ago
|
"""Create Query Result Object.
|
||
|
|
||
|
Contains information about a specific method of detecting usernames on
|
||
|
a given type of web sites.
|
||
|
|
||
|
Keyword Arguments:
|
||
|
self -- This object.
|
||
5 years ago
|
username -- String indicating username that query result
|
||
|
was about.
|
||
|
site_name -- String which identifies site.
|
||
|
site_url_user -- String containing URL for username on site.
|
||
|
NOTE: The site may or may not exist: this
|
||
|
just indicates what the name would
|
||
|
be, if it existed.
|
||
5 years ago
|
status -- Enumeration of type QueryStatus() indicating
|
||
|
the status of the query.
|
||
5 years ago
|
query_time -- Time (in seconds) required to perform query.
|
||
|
Default of None.
|
||
5 years ago
|
context -- String indicating any additional context
|
||
|
about the query. For example, if there was
|
||
|
an error, this might indicate the type of
|
||
|
error that occurred.
|
||
|
Default of None.
|
||
|
|
||
|
Return Value:
|
||
|
Nothing.
|
||
|
"""
|
||
|
|
||
5 years ago
|
self.username = username
|
||
|
self.site_name = site_name
|
||
|
self.site_url_user = site_url_user
|
||
|
self.status = status
|
||
|
self.query_time = query_time
|
||
|
self.context = context
|
||
5 years ago
|
|
||
|
return
|
||
|
|
||
|
def __str__(self):
|
||
|
"""Convert Object To String.
|
||
|
|
||
|
Keyword Arguments:
|
||
|
self -- This object.
|
||
|
|
||
|
Return Value:
|
||
|
Nicely formatted string to get information about this object.
|
||
|
"""
|
||
|
status = str(self.status)
|
||
|
if self.context is not None:
|
||
4 years ago
|
# There is extra context information available about the results.
|
||
|
# Append it to the normal response text.
|
||
5 years ago
|
status += f" ({self.context})"
|
||
|
|
||
|
return status
|