def todaySay(): # fileTamp = os.path.getctime(Paths.config[0] + 'today.json') fileTamp = os.stat(Paths.config[0]+'today.json').st_mtime timeArray = time.localtime(fileTamp) fileTime = time.strftime("%Y%m%d", timeArray) osTime = time.strftime("%Y%m%d", time.localtime()) if fileTime != osTime: try: req = requests.get( "https://rest.shanbay.com/api/v2/quote/quotes/today/", timeout=3) with open(Paths.config[0] + 'today.json', 'w', encoding="utf-8") as f: f.write(req.text) except requests.exceptions.ConnectionError: print(mkPut.fuchsia("[{0}]".format(time.strftime( "%H:%M:%S", time.localtime()))), mkPut.yellow("[warning]"), "更新每日一说超时") except requests.exceptions.ReadTimeout: print(mkPut.fuchsia("[{0}]".format(time.strftime( "%H:%M:%S", time.localtime()))), mkPut.yellow("[warning]"), "更新每日一说超时") # with open(Paths.config[0]+'today.json', 'w', encoding="utf-8") as f: # f.write(req.text) with open(Paths.config[0]+'today.json', 'r', encoding="utf-8") as f: today = json.load(f) content = today['data']['content'] translation = today['data']['translation'] author = "--- {0}".format(today['data']['author']) todaySays = ''' {0} {1} \t\t\t\t\t\t{2} '''.format(content, translation, author) return todaySays
def main(self): for rule in ruleDatas: cms = rule[0] rulesRegex = rule[2] if 'headers' == rule[1]: self.heads(rulesRegex, cms) elif 'cookie' == rule[1]: self.cookieInfo(rulesRegex, cms) else: self.bodys(rulesRegex, cms) webTitle = "" webServer = "" webCms = "None" for key in WebInfos: if 'server' in WebInfos[key][0]: webServer = WebInfos[key][0]['server'] else: webServer = "None" webTitles = re.findall(self.rex, WebInfos[key][1]) if webTitles: webTitle = webTitles[0] else: webTitle = "None" OutInfos[key] = webCms, webServer, WebInfos[key][2], webTitle logger.success("{} {} {} {}".format(mkPut.green(webServer), mkPut.yellow( WebInfos[key][2]), key, mkPut.blue(webTitle)))
def heads(self, rulesRegex, cms): webTitle = "" webServer = "" for key in list(WebInfos): if 'server' in WebInfos[key][0]: webServer = WebInfos[key][0]['server'] else: webServer = "None" webTitles = re.findall(self.rex, WebInfos[key][1]) if webTitles: webTitle = webTitles[0] else: webTitle = "None" for head in WebInfos[key][0]: resHeads = re.findall(rulesRegex, WebInfos[key][0][head]) if resHeads: print( mkPut.fuchsia("[{0}]".format( time.strftime("%H:%M:%S", time.localtime()))), mkPut.red(cms), mkPut.green(webServer), mkPut.yellow(WebInfos[key][2]), key, mkPut.blue(webTitle)) OutInfos[key] = cms, webServer, WebInfos[key][2], webTitle WebInfos.pop(key) break
def main(self): for rule in ruleDatas: cms = rule[0] rulesRegex = rule[2] if 'headers' == rule[1]: self.heads(rulesRegex, cms) elif 'cookie' == rule[1]: self.cookieInfo(rulesRegex, cms) else: self.bodys(rulesRegex, cms) webTitle = "" webServer = "" for key in WebInfos: if 'server' in WebInfos[key][0]: webServer = WebInfos[key][0]['server'] else: webServer = "None" webTitles = re.findall(self.rex, WebInfos[key][1]) if webTitles: webTitle = webTitles[0] else: webTitle = "None" print( mkPut.fuchsia("[{0}]".format( time.strftime("%H:%M:%S", time.localtime()))), mkPut.green(webServer), mkPut.yellow(WebInfos[key][2]), key, mkPut.blue(webTitle)) OutInfos[key] = webServer, WebInfos[key][2], webTitle
def fmain(ips): if fofaApi['email'] and fofaApi['key']: pass else: print( mkPut.fuchsia('[{0}]'.format( time.strftime("%H:%M:%S", time.localtime()))), mkPut.yellow('[warning]'), '请修改配置文件{0}中fofaApi为您的API地址'.format(Paths.config[0] + 'config.py')) exit(0) threads = [] sem = threading.Semaphore(threadNum) try: for ip in ips: if '/' in ip: ip = 'ip="{0}"'.format(ip) sem.acquire() t = Fofa(ip, sem) t.setDaemon(True) threads.append(t) t.start() for t in threads: t.join() except KeyboardInterrupt: pass
def bodys(self, rulesRegex, cms): webTitle = "" webServer = "" for key in list(WebInfos): if 'server' in WebInfos[key][0]: webServer = WebInfos[key][0]['server'] else: webServer = "None" webTitles = re.findall(self.rex, WebInfos[key][1]) if webTitles: webTitle = webTitles[0] else: webTitle = "None" resCodes = re.findall(rulesRegex, WebInfos[key][1]) if resCodes: logger.success("{} {} {} {} {}".format(mkPut.red(cms), mkPut.green( webServer), mkPut.yellow(WebInfos[key][2]), key, mkPut.blue(webTitle))) OutInfos[key] = cms, webServer, WebInfos[key][2], webTitle WebInfos.pop(key)
from colorama import init class LoggingLevel: SUCCESS = 9 SYSINFO = 8 ERROR = 7 WARNING = 6 init(autoreset=True) logging.addLevelName(LoggingLevel.SUCCESS, mkPut.cyan("[+]")) logging.addLevelName(LoggingLevel.SYSINFO, mkPut.green("[INFO]")) logging.addLevelName(LoggingLevel.ERROR, mkPut.red("[ERROR]")) logging.addLevelName(LoggingLevel.WARNING, mkPut.yellow("[WARNING]")) LOGGER = logging.getLogger("GlassLog") formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s", datefmt=mkPut.fuchsia("[%H:%M:%S]")) LOGGER_HANDLER = logging.StreamHandler(sys.stdout) LOGGER_HANDLER.setFormatter(formatter) LOGGER.addHandler(LOGGER_HANDLER) LOGGER.setLevel(LoggingLevel.WARNING) class MY_LOGGER: def info(msg): return LOGGER.log(LoggingLevel.SYSINFO, msg)