53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
import traceback
|
|
from configparser import ConfigParser
|
|
from os.path import abspath
|
|
from typing import Union, List
|
|
|
|
import requests
|
|
|
|
from core.elements import Plain
|
|
|
|
|
|
class Secret:
|
|
list = []
|
|
|
|
@staticmethod
|
|
def add(secret):
|
|
Secret.list.append(secret)
|
|
|
|
@staticmethod
|
|
def find(message: Union[str, List]):
|
|
print(Secret.list)
|
|
if isinstance(message, str):
|
|
for secret in Secret.list:
|
|
if message.upper().find(secret.upper()) != -1:
|
|
return True
|
|
elif isinstance(message, (list, tuple)):
|
|
for m in message:
|
|
if isinstance(m, Plain):
|
|
for secret in Secret.list:
|
|
if m.text.upper().find(secret.upper()) != -1:
|
|
return True
|
|
return False
|
|
|
|
|
|
def load_secret():
|
|
config_filename = 'config.cfg'
|
|
config_path = abspath('./config/' + config_filename)
|
|
cp = ConfigParser()
|
|
cp.read(config_path)
|
|
section = cp.sections()[0]
|
|
options = cp.options(section)
|
|
for option in options:
|
|
value = cp.get(section, option)
|
|
Secret.add(value.upper())
|
|
try:
|
|
ip = requests.get('https://api.ip.sb/ip', timeout=10)
|
|
if ip:
|
|
Secret.add(ip.text.replace('\n', ''))
|
|
except:
|
|
traceback.print_exc()
|
|
pass
|
|
|
|
|
|
load_secret()
|