# Path: lib/config.py

# 
# Path: lib/helpers.py
# class Common(object):
# class IO(object):
# class MaltegoEntity(object):
# class MaltegoTransform(object):
#     def session_helper(self, station_name=None, # station_name - REQUIRE - 'Station_name'
#                        endpoint=None, # 'https://station.com/api/search/index.php'
#                        method_type=None, # GET/POST
#                        data_to_send=None, # Data to sent in POST
#                        url_path=None, # '/api/search/google.com'
#                        parameters=None, # {'limit': '1000'}
#                        headers=None, # {'api_key': 'api_key_value'}
#                        user_agent=None, # {'User-agent': 'VxStream Sandbox'}
#                        response_format=None, # json or bs(BeautifulSoup)
#                        go_to_url=None): # https://www.station.com/index.php?a=somethins&d=something
#     def verbose_output(self, search_value, search_from, search_to, dictionary):
#     def nonverbose_output(self, search_value, search_from, search_to, dictionary):
#     def error_log(self, error, station_name=None):
#     def process_file(self, file_path):
#     def input_validator(self,input_value):
#     def __init__(self,eT=None,v=None):
#     def setType(self,eT=None):
#     def setValue(self,eV=None):
#     def setWeight(self,w=None):
#     def setDisplayInformation(self,di=None):
#     def addAdditionalFields(self,fieldName=None,displayName=None,matchingRule='',value=None):
#     def setIconURL(self,iU=None):
#     def setLinkColor(self,color):
#     def setLinkStyle(self,style):
#     def setLinkThickness(self,thick):
#     def setLinkLabel(self,label):
#     def setBookmark(self,bookmark):
#     def setNote(self,note):
#     def returnEntity(self):
#     def __init__(self):
#     def parseArguments(self,argv):
#     def getValue(self):
#     def getVar(self,varName):
#     def addEntity(self,enType,enValue):
#     def addEntityToMessage(self,maltegoEntity):
#     def addUIMessage(self,message,messageType="Inform"):
#     def addException(self,exceptionString):
#     def throwExceptions(self):
#     def returnOutput(self):
#     def writeSTDERR(self,msg):
#     def heartbeat(self):
#     def progress(self,percent):
#     def debug(self,msg):
#     def sanitise(self, value):
#     BOOKMARK_COLOR_NONE="-1"
#     BOOKMARK_COLOR_BLUE="0"
#     BOOKMARK_COLOR_GREEN="1"
#     BOOKMARK_COLOR_YELLOW="2"
#     BOOKMARK_COLOR_ORANGE="3"
#     BOOKMARK_COLOR_RED="4"
#     LINK_STYLE_NORMAL="0"
#     LINK_STYLE_DASHED="1"
#     LINK_STYLE_DOTTED="2"
#     LINK_STYLE_DASHDOT="3"
#     UIM_FATAL='FatalError'
#     UIM_PARTIAL='PartialError'
#     UIM_INFORM='Inform'
#     UIM_DEBUG='Debug'


from lib import config, helpers
class Metascan(object):

    def __init__(self):
        # lists of values that can be returned
        self.ip_list = []
        self.domain_list = []
        self.hash_list = []
        self.url_list = []
        self.score_list = []
        self.imphash_list = []

        # get helping functions
        self.api = helpers.Common()

        # static station settings
        self.station_name = 'Metascan'
        self.endpoint = 'https://metascan-online.com'   # different subdomains for search
                                                        # hashlookup and ipscan
        self.url_path = ''
        self.parameters = {}
        self.headers = {'content-type': 'application/json',
                'accept': 'application/json',
                'file_metadata': 1}
        self.user_agent = {}
        self.response_format = 'json'

        if config.metascan_api_key:
            self.headers.update({'apikey': config.metascan_api_key})
        else:
            msg = 'API Key NOT provided'

# Path: lib/config.py

# 
# Path: lib/helpers.py
# class Common(object):
# class IO(object):
# class MaltegoEntity(object):
# class MaltegoTransform(object):
#     def session_helper(self, station_name=None, # station_name - REQUIRE - 'Station_name'
#                        endpoint=None, # 'https://station.com/api/search/index.php'
#                        method_type=None, # GET/POST
#                        data_to_send=None, # Data to sent in POST
#                        url_path=None, # '/api/search/google.com'
#                        parameters=None, # {'limit': '1000'}
#                        headers=None, # {'api_key': 'api_key_value'}
#                        user_agent=None, # {'User-agent': 'VxStream Sandbox'}
#                        response_format=None, # json or bs(BeautifulSoup)
#                        go_to_url=None): # https://www.station.com/index.php?a=somethins&d=something
#     def verbose_output(self, search_value, search_from, search_to, dictionary):
#     def nonverbose_output(self, search_value, search_from, search_to, dictionary):
#     def error_log(self, error, station_name=None):
#     def process_file(self, file_path):
#     def input_validator(self,input_value):
#     def __init__(self,eT=None,v=None):
#     def setType(self,eT=None):
#     def setValue(self,eV=None):
#     def setWeight(self,w=None):
#     def setDisplayInformation(self,di=None):
#     def addAdditionalFields(self,fieldName=None,displayName=None,matchingRule='',value=None):
#     def setIconURL(self,iU=None):
#     def setLinkColor(self,color):
#     def setLinkStyle(self,style):
#     def setLinkThickness(self,thick):
#     def setLinkLabel(self,label):
#     def setBookmark(self,bookmark):
#     def setNote(self,note):
#     def returnEntity(self):
#     def __init__(self):
#     def parseArguments(self,argv):
#     def getValue(self):
#     def getVar(self,varName):
#     def addEntity(self,enType,enValue):
#     def addEntityToMessage(self,maltegoEntity):
#     def addUIMessage(self,message,messageType="Inform"):
#     def addException(self,exceptionString):
#     def throwExceptions(self):
#     def returnOutput(self):
#     def writeSTDERR(self,msg):
#     def heartbeat(self):
#     def progress(self,percent):
#     def debug(self,msg):
#     def sanitise(self, value):
#     BOOKMARK_COLOR_NONE="-1"
#     BOOKMARK_COLOR_BLUE="0"
#     BOOKMARK_COLOR_GREEN="1"
#     BOOKMARK_COLOR_YELLOW="2"
#     BOOKMARK_COLOR_ORANGE="3"
#     BOOKMARK_COLOR_RED="4"
#     LINK_STYLE_NORMAL="0"
#     LINK_STYLE_DASHED="1"
#     LINK_STYLE_DOTTED="2"
#     LINK_STYLE_DASHDOT="3"
#     UIM_FATAL='FatalError'
#     UIM_PARTIAL='PartialError'
#     UIM_INFORM='Inform'
#     UIM_DEBUG='Debug'


# Path: stations/metascan/station.py
from lib import config, helpers

class Metascan(object):

    def __init__(self):
        # lists of values that can be returned
        self.ip_list = []
        self.domain_list = []
        self.hash_list = []
        self.url_list = []
        self.score_list = []
        self.imphash_list = []

        # get helping functions
        self.api = helpers.Common()

        # static station settings
        self.station_name = 'Metascan'
        self.endpoint = 'https://metascan-online.com'   # different subdomains for search
                                                        # hashlookup and ipscan
        self.url_path = ''
        self.parameters = {}
        self.headers = {'content-type': 'application/json',
                'accept': 'application/json',
                'file_metadata': 1}
        self.user_agent = {}
        self.response_format = 'json'

        if config.metascan_api_key:
            self.headers.update({'apikey': config.metascan_api_key})
        else:
            msg = 'API Key NOT provided'

            helpers.IO().error_log(msg,self.station_name)