Files
Meppo/Tools/ReBuild.py
2022-03-22 18:03:05 +08:00

117 lines
3.2 KiB
Python

#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
'''
____ _ _ _ _ __ __ _
| _ \ __ _| |__ | |__ (_) |_| \/ | __ _ ___| | __
| |_) / _` | '_ \| '_ \| | __| |\/| |/ _` / __| |/ /
| _ < (_| | |_) | |_) | | |_| | | | (_| \__ \ <
|_| \_\__,_|_.__/|_.__/|_|\__|_| |_|\__,_|___/_|\_\
'''
import os
from importlib import import_module
from collections import Counter
########################################################################################################################
#pro
def get_moudle():
dir = 'Moudle' #pro
# dir = '../Moudle' #dev
list=os.listdir(dir)
moudles=[]
for i in list:
if i !='__pycache__':
path = os.path.join(dir, i)
if os.path.isdir(path):
moudles.append(i)
return moudles
def get_payload(moudle):
dir = 'Moudle/'+moudle #pro
# dir = '../Moudle/'+moudle #dev
list = os.listdir(dir)
payloads = []
for i in list:
tmp=[]
path = os.path.join(dir, i)
if os.path.isfile(path):
if '.py' in i:
payload=i.replace('.py','')
tmp.append(payload)
tmp.append(get_remark(moudle,payload))
payloads.append(tmp)
return payloads
def get_remark(moudle,payload):
return import_module('Moudle.'+moudle+'.'+payload).REMARK
def Rebuild():
str=""
moudles=get_moudle()
MOUDLE_NUM = len(moudles)
PAYLOAD_NUM = 0
for i in moudles:
str=str+("# {}\n".format(i))
for j in get_payload(i):
str=str+("from Moudle.{} import {}\n".format(i,j[0]))
PAYLOAD_NUM=PAYLOAD_NUM+1
str=str+("\n")
NUM="MOUDLE_NUM={}\nPAYLOAD_NUM={}\n\n".format(MOUDLE_NUM,PAYLOAD_NUM)
f=open('Moudle/Moudle_index.py','w')
f.write(NUM+str)
f.close()
########################################################################################################################
#dev
def get_moudle_dev():
# dir = 'Moudle' #pro
dir = '../Moudle' #dev
list=os.listdir(dir)
moudles=[]
for i in list:
if i !='__pycache__':
path = os.path.join(dir, i)
if os.path.isdir(path):
moudles.append(i)
return moudles
def get_payload_dev(moudle):
# dir = 'Moudle/'+moudle #pro
dir = '../Moudle/'+moudle #dev
list = os.listdir(dir)
payloads = []
for i in list:
tmp=[]
path = os.path.join(dir, i)
if os.path.isfile(path):
if '.py' in i:
payload=i.replace('.py','')
tmp.append(payload)
tmp.append(get_remark(moudle,payload))
tmp.append(get_author(moudle, payload)) #dev
payloads.append(tmp)
return payloads
def get_author(moudle,payload):
return import_module('Moudle.'+moudle+'.'+payload).AUTHOR
def Rebuild_dev():
moudles=get_moudle_dev()
res=[]
for i in moudles:
for j in get_payload_dev(i):
res.append(j[2])
dic=Counter(res)
for key in dic:
value = dic[key]
print(key,value)
if __name__ == '__main__':
# get_moudle()
# Rebuild()
Rebuild_dev()