v1.5.5
This commit is contained in:
145
chatmode.py
Normal file
145
chatmode.py
Normal file
@@ -0,0 +1,145 @@
|
||||
import os,sys
|
||||
import configparser
|
||||
from pluginbase import PluginBase
|
||||
|
||||
|
||||
runcanshu = 0
|
||||
|
||||
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(os.path.expanduser('~') + '/.ashrc')
|
||||
themefile = config.get('ash', 'ash_theme')
|
||||
plugin_list = config.get('ash', 'plugin')
|
||||
if "," in plugin_list:
|
||||
plugin_list = plugin_list.split(",")
|
||||
|
||||
# 插件
|
||||
|
||||
plugin_base = PluginBase(package='main.plugins')
|
||||
plugin_source = plugin_base.make_plugin_source(searchpath=['./plugin'])
|
||||
|
||||
def plugin_load():
|
||||
config.read(os.path.expanduser('~') + '/.ashrc')
|
||||
themefile = config.get('ash', 'ash_theme')
|
||||
plugin_list = config.get('ash', 'plugin')
|
||||
if "," in plugin_list:
|
||||
plugin_list = plugin_list.split(",")
|
||||
|
||||
if type(plugin_list) == str:
|
||||
if plugin_list in plugin_source.list_plugins():
|
||||
pass
|
||||
else:
|
||||
if not plugin_list:
|
||||
|
||||
if plugin_list != "":
|
||||
plugin_source.load_plugin(plugin_list)
|
||||
|
||||
else:
|
||||
for i in plugin_list:
|
||||
if i in plugin_source.list_plugins():
|
||||
pass
|
||||
else:
|
||||
if not i == "":
|
||||
plugin_source.load_plugin(i)
|
||||
|
||||
plugin_load()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
themeconfig = configparser.ConfigParser()
|
||||
# 获取当前文件的绝对路径
|
||||
current_file_path = os.path.abspath(__file__)
|
||||
|
||||
# 从绝对路径中提取目录
|
||||
current_file_dir = os.path.dirname(current_file_path)
|
||||
themeconfig.read(current_file_dir+ "/" + "theme" + "/" + themefile + "/" + themefile + ".ini")
|
||||
#print(current_file_dir+ "/" + "theme" + "/" + themefile + "/" + themefile + ".ini")
|
||||
#print(themeconfig["theme"])
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
while True:
|
||||
|
||||
# 重新加载plugin
|
||||
|
||||
plugin_load()
|
||||
runcanshu = 0
|
||||
config.read(os.path.expanduser('~') + '/.ashrc')
|
||||
themefile = config.get('ash', 'ash_theme')
|
||||
os.system("python3 " + current_file_dir + "/" + "theme/"+ themefile + "/" + "theme.py")
|
||||
with open(current_file_dir + "/" + "themetext", "r") as f:
|
||||
themetext = f.read()
|
||||
|
||||
# 获取当前用户和地址
|
||||
user = os.getlogin()
|
||||
address = os.getcwd()
|
||||
# 把inputtext这个变量里的{user}换成user变量
|
||||
inputtext = themetext.replace("{user}", user)
|
||||
# 把inputtext这个变量里的{address}换成address变量
|
||||
inputtext = inputtext.replace("{address}", address)
|
||||
|
||||
text1 = str(input(inputtext))
|
||||
if text1 == "exit":
|
||||
runcanshu = 1
|
||||
sys.exit()
|
||||
try:
|
||||
if text1[0] == 'c' and text1[1] == 'd':
|
||||
# 如果cd后面的路径不存在,则提示错误
|
||||
if len(text1) > 2 and not os.path.exists(text1[3:]):
|
||||
print("路径不存在")
|
||||
else:
|
||||
os.chdir(text1[3:])
|
||||
|
||||
runcanshu = 1
|
||||
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
if text1[0] == 'a' and text1[1] == 's' and text1[2] == 'h':
|
||||
runcanshu = 1
|
||||
os.system("python3 " + current_file_dir + "/" + "main.py " + text1[4:])
|
||||
except:
|
||||
pass
|
||||
# 判断输入的内容是否在插件的command_list中,如果在,则执行对应的函数
|
||||
for i in plugin_list:
|
||||
# print(plugin_source.list_plugins())
|
||||
if type(plugin_list) == list:
|
||||
if text1 in plugin_source.load_plugin(i).command_list:
|
||||
# print(plugin_source.load_plugin(i).command_list)
|
||||
plugin_source.load_plugin(i).run(text1)
|
||||
|
||||
runcanshu = 1
|
||||
break
|
||||
else:
|
||||
if text1 in plugin_source.load_plugin(plugin_list).command_list:
|
||||
# print(plugin_source.load_plugin(plugin_list).command_list)
|
||||
plugin_source.load_plugin(plugin_list).run(text1)
|
||||
|
||||
runcanshu = 1
|
||||
break
|
||||
|
||||
try:
|
||||
if text1[0] == 'p' and text1[1] == 'c' and text1[2] == 'm' and text1[3] == 'd':
|
||||
exec(text1[5:])
|
||||
runcanshu = 1
|
||||
except IndexError:
|
||||
pass
|
||||
except (NameError, SyntaxError) as nerror:
|
||||
print(repr(nerror))
|
||||
|
||||
if runcanshu == 1:
|
||||
continue
|
||||
|
||||
|
||||
if runcanshu == 0:
|
||||
os.system(text1)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user