From 808ca338bd7ccae3d2ace8c005eb5acc0544000f Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sun, 7 Aug 2022 12:41:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 1 - README.md | 48 --------------- icon.png | Bin 8230 -> 0 bytes main.py | 174 ------------------------------------------------------ 4 files changed, 223 deletions(-) delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 icon.png delete mode 100755 main.py diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d562c25..0000000 --- a/LICENSE +++ /dev/null @@ -1 +0,0 @@ -允许使用程序里任意内容 \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 0b01fa4..0000000 --- a/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# spark-webapp-runtime 运行器 - -#### 介绍 -一个 spark-webapp-runtime 图形化运行器 - -#### 软件架构 -能运行 spark-webapp-runtime 即可 - - -#### 安装教程 - -1. 安装所需依赖(注意请安装星火商店) - -``` -sudo apt install python3 python3-tk spark-webapp-runtime git -``` -2、下载该程序 - -``` -git clone https://gitee.com/gfdgd-xi/spark-webapp-runtime-runner -``` -3、运行该程序 - -``` -cd spark-webapp-runtime-runner -chmod 777 main.py -./main.py -``` - - - - -#### 使用说明 - -1. …… -2. …… -3. …… -(不想写) - -#### 参与贡献 - -1. 星火商店团队 - - -#### 特技 - -好像无…… - diff --git a/icon.png b/icon.png deleted file mode 100644 index 294c88dbe2d0aa457213dc2687dc214d27affd0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8230 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 MRad26**f}v08X&8XaE2J diff --git a/main.py b/main.py deleted file mode 100755 index 8b69f4d..0000000 --- a/main.py +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/env python3 -########################################################################################## -# 作者:gfdgd xi -# 版本:1.0.2 -# 感谢:感谢星火商店(Spark-Store)团队,提供了 spark-webapp-runtime 给大家使用,让我能做这个程序 -# 基于 Python3 的 tkinter 构建的 spark-webapp-runtime 前端 -########################################################################################## -################# -# 引入所需的库 -################# -import tkinter as tk -import tkinter.filedialog -import tkinter.messagebox -import os -import threading - -################### -# 程序所需事件 -################### -# 读取文本文档 -def readtxt(path): - f = open(path, "r") # 设置文件对象 - str = f.read() # 获取内容 - f.close() # 关闭文本对象 - return str # 返回结果 - -# 写入文本文档 -def write_txt(path, things): - file = open(path, 'a+', encoding='UTF-8') # 设置文件对象 - file.write(things) # 写入文本 - file.close() # 关闭文本对象 - -# 获取用户桌面目录 -def get_desktop_path(): - for line in open(get_home() + "/.config/user-dirs.dirs"): # 以行来读取配置文件 - desktop_index = line.find("XDG_DESKTOP_DIR=\"") # 寻找是否有对应项,有返回 0,没有返回 -1 - if desktop_index != -1: # 如果有对应项 - break # 结束循环 - if desktop_index == -1: # 如果是提前结束,值一定≠-1,如果是没有提前结束,值一定=-1 - return -1 - else: - get = line[17:-2] # 截取桌面目录路径 - get_index = get.find("$HOME") # 寻找是否有对应的项,需要替换内容 - if get != -1: # 如果有 - get = get.replace("$HOME", get_home()) # 则把其替换为用户目录(~) - return get # 返回目录 - -def liulanico(): - path = tkinter.filedialog.askopenfilename(title="选择 spark-webapp-runtime 的图标", initialdir="~/", filetypes=[("全部文件", "*.*")]) - if path != "": - e3_text.set(path) - -def start(): - runs = threading.Thread(target = start_run) - runs.start() - -def start_run(): - os.system("spark-webapp-runtime -u '" + e1.get() + "' -i '" + e3_text.get() + "' -t '" + e2_text.get() + "' -d '" + e4_text.get() + "'") - -# 获取用户主目录 -def get_home(): - return os.path.expanduser('~') - -# 显示“关于这个程序”窗口 -def about_this_program(): - tkinter.messagebox.showinfo(title="关于这个程序",message="一个基于 Python3 的 tkinter 制作的 spark-webapp-runtime 运行器\n版本:1.0.2\n适用平台:Linux") - -# 显示“提示”窗口 -def helps(): - tkinter.messagebox.showinfo(title="提示", message="提示:\n1、无") - -# 生成 .desktop 文件在桌面 -def make_desktop_on_start(): - if e5_text.get() == "": - tkinter.messagebox.showinfo(title="提示", message="没有填写要保存的文件名") - else: - if os.path.exists(get_home() + "/.local/share/applications/" + e5_text.get() + ".desktop"): # 判断目录是否有该文件,如果有 - choose = tkinter.messagebox.askokcancel(title="提示",message="文件已经存在,是否覆盖?") # 询问用户是否覆盖 - if choose: # 如要覆盖 - os.remove(get_home() + "/.local/share/applications/" + e5_text.get() + ".desktop") # 删除该文件 - else: # 如不覆盖 - return # 结束 - os.mknod(get_home() + "/.local/share/applications/" + e5_text.get() + ".desktop") # 创建文本文档 - write_txt(get_home() + "/.local/share/applications/" + e5_text.get() + ".desktop", "[Desktop Entry]\nName=" + e5_text.get() + "\nVersion=1.0\nExec=" + 'spark-webapp-runtime -u "' + e1.get() + '" -i "' + e3_text.get() + '" -t "' + e2_text.get() + '" -d "' + e4_text.get() + '"\nType=Application\nTerminal=false\nStartupNotify=true\nEncoding=UTF-8\nComment=' + e4_text.get() + "\nIcon=" + e3_text.get()) # 写入文本文档 - os.system("chmod 755 '" + get_home() + "/.local/share/applications/" + e5_text.get() + ".desktop" + "'") # 赋予可执行权限 - tkinter.messagebox.showinfo(title="提示", message="生成完成!") # 显示完成对话框 - -# 生成 .desktop 文件在桌面 -def make_desktop_on_desktop(): - if e5_text.get() == "": - tkinter.messagebox.showinfo(title="提示", message="没有填写要保存的文件名") - else: - if os.path.exists(get_desktop_path() + "/" + e5_text.get() + ".desktop"): # 判断目录是否有该文件,如果有 - choose = tkinter.messagebox.askokcancel(title="提示",message="文件已经存在,是否覆盖?") # 询问用户是否覆盖 - if choose: # 如要覆盖 - os.remove(get_desktop_path() + "/" + e5_text.get() + ".desktop") # 删除该文件 - else: # 如不覆盖 - return # 结束 - os.mknod(get_desktop_path() + "/" + e5_text.get() + ".desktop") # 创建文本文档 - write_txt(get_desktop_path() + "/" + e5_text.get() + ".desktop", "[Desktop Entry]\nName=" + e5_text.get() + "\nVersion=1.0\nExec=" + 'spark-webapp-runtime -u "' + e1.get() + '" -i "' + e3_text.get() + '" -t "' + e2_text.get() + '" -d "' + e4_text.get() + '"\nType=Application\nTerminal=false\nStartupNotify=true\nEncoding=UTF-8\nComment=' + e4_text.get() + "\nIcon=" + e3_text.get()) # 写入文本文档 - os.system("chmod 755 '" + get_desktop_path() + "/" + e5_text.get() + ".desktop" + "'") # 赋予可执行权限 - tkinter.messagebox.showinfo(title="提示", message="生成完成!") # 显示完成对话框 - -# 生成 shell 文件在桌面 -def make_desktop_on_shell(): - if e5_text.get() == "": - tkinter.messagebox.showinfo(title="提示", message="没有填写要保存的文件名") - else: - if os.path.exists(get_desktop_path() + "/" + e5_text.get() + ".sh"): # 判断目录是否有该文件,如果有 - choose = tkinter.messagebox.askokcancel(title="提示",message="文件已经存在,是否覆盖?") # 询问用户是否覆盖 - if choose: # 如要覆盖 - os.remove(get_desktop_path() + "/" + e5_text.get() + ".sh") # 删除该文件 - else: # 如不覆盖 - return # 结束 - os.mknod(get_desktop_path() + "/" + e5_text.get() + ".sh") # 创建文本文档 - write_txt(get_desktop_path() + "/" + e5_text.get() + ".sh", "#!/bin/bash\n" + "spark-webapp-runtime -u '" + e1.get() + "' -i '" + e3_text.get() + "' -t '" + e2_text.get() + "' -d '" + e4_text.get() + "'") # 写入文本文档 - os.system("chmod 777 '" + get_desktop_path() + "/" + e5_text.get() + ".sh" + "'") # 赋予可执行权限 - tkinter.messagebox.showinfo(title="提示", message="生成完成!") # 显示完成对话框 - -########################### -# 窗口创建 -########################### -window = tk.Tk() # 创建窗口 -window.title("spark-webapp-runtime 运行器") # 设置标题 -# 设置变量以修改和获取值项 -e1_text = tk.StringVar() -e2_text = tk.StringVar() -e3_text = tk.StringVar() -e4_text = tk.StringVar() -e5_text = tk.StringVar() -# 创建控件 -label1 = tk.Label(window, text="要启动的网址(URL 需要填写协议)(选填)") -e1 = tk.Entry(window, textvariable=e1_text, width=100) -label2 = tk.Label(window, text="spark-webapp-runtime 的标题(选填)") -e2 = tk.Entry(window, textvariable=e2_text, width=100) -label3 = tk.Label(window, text="spark-webapp-runtime 的图标路径(选填)") -e3 = tk.Entry(window, textvariable = e3_text, width = 100) -button1 = tk.Button(window, text="浏览", command=liulanico) -label4 = tk.Label(window, text="spark-webapp-runtime 描述信息(支持 html 标签)(如需使用 “'” 符号,请使用 \\ 转义)") -e4 = tk.Entry(window, textvariable=e4_text, width=100) -button2 = tk.Button(window, text="启动", command=start) -label5 = tk.Label(window, text="生成的 .desktop 或 shell 的文件名") -e5 = tk.Entry(window, textvariable=e5_text, width=100) -button3 = tk.Button(window, text="生成 Shell 脚本到桌面", command=make_desktop_on_shell) -button4 = tk.Button(window, text="生成 .desktop 文件到桌面", command=make_desktop_on_desktop) -button5 = tk.Button(window, text="生成 .desktop 文件到启动器", command=make_desktop_on_start) -menu = tk.Menu(window) # 设置菜单栏 -programmenu = tk.Menu(menu,tearoff=0) # 设置“程序”菜单栏 -menu.add_cascade(label="程序",menu=programmenu) -programmenu.add_command(label="退出程序",command=window.quit) # 设置“退出程序”项 -help = tk.Menu(menu,tearoff=0) # 设置“帮助”菜单栏 -menu.add_cascade(label="帮助",menu=help) -help.add_command(label="小提示",command=helps) # 设置“小提示”项 -help.add_separator() # 设置分界线 -help.add_command(label="关于这个程序",command=about_this_program) # 设置“关于这个程序”项 -# 添加控件 -window.config(menu=menu) # 显示菜单栏 -label1.pack() -e1.pack() -label2.pack() -e2.pack() -label3.pack() -e3.pack() -button1.pack() -label4.pack() -e4.pack() -button2.pack() -label5.pack() -e5.pack() -button3.pack() -button4.pack() -button5.pack() -# 显示窗口 -window.mainloop()