diff --git a/Documents/COMPILE_ZH.md b/Documents/COMPILE_ZH.md
index 2804231..3dbce01 100644
--- a/Documents/COMPILE_ZH.md
+++ b/Documents/COMPILE_ZH.md
@@ -1,20 +1,66 @@
-# 编译与调试
+# 编译
-本文档将指导您编译或调试`SuperScriptMaterializer`
+本文档将指导您编译或调试`SuperScriptMaterializer`以及对`SuperScriptViewer`的编译。
-## 需求
+## SuperScriptMaterializer
-- Visual Studio 2010,即VC++ v100的工具集(不能使用Virtools 2015及以上版本进行编译,在编译Virtools 5.0 Standalone版本的时候亲测会出错且无法解决)
+### 需求
+
+- Visual Studio 2010,即VC++ v100的工具集(不能使用Virtools 2015及以上版本进行编译,在编译Virtools 5.0 Standalone版本的时候亲测会出错且无法解决,但对于其他版本您可以尝试使用高版本的工具集进行编译)
- Virtools SDK 或 Ballance Mod Loader(如果以Virtools 2.1作为目标)
+- SQlite SDK
- Python 3.x
-## 编译之前
+### 编译之前
-编译之前,您需要先进入项目根目录下,在此处打开终端,我们首先需要生成编译的参数。自上一个版本以来,我们将编译时需要的一些参数全部转为Visual Studio可识别的宏,定义在独立的`Virtools.props`中,此步操作便是生成这个文件,以确定编译文件的相关参数。
+编译之前,对于SQLite SDK,您可以从[sqlite.org](http://www.sqlite.org/)下载,然后使用Visual C++的工具集执行`LIB /DEF:sqlite3.def /machine:IX86`以获取可以用于编译的文件。
-按如下格式运行指令
+然后您需要先进入项目根目录下,在此处打开终端,我们首先需要生成编译的参数。自上一个版本以来,我们将编译时需要的一些参数全部转为Visual Studio可识别的宏,定义在独立的`Virtools.props`中,此步操作便是生成这个文件,以确定编译文件的相关参数。
+
+按如下格式运行指令:
```
-
+python3 mk_materializer_cfg.py [plugin|standalone] [21|25|35|40|50] [virtools_root_path] [sqlite_header] [sqlite_lib] [sqlite attach ref] [bml path]
```
+每一项参数的含义:
+
+* `[plugin|standalone]`:编译为插件还是独立程序
+* `[21|25|35|40|50]`:Virtools版本
+* `[virtools_root_path]`:Virtools Dev的根目录,用于Virtools SDK的头文件,链接库的寻找,也决定程序编译后的输出位置
+* `[sqlite_header]`:SQlite头文件路径
+* `[sqlite_lib]`:SQlite链接库的路径,用于找到下一项
+* `[sqlite attach ref]`:SQlite链接库,通常来说是`sqlite3.lib`
+* `[bml path]`:BML的路径,只有在以Virtools 2.1为目标编译时才有用
+
+以下是一些指令示例:
+
+```
+python3 .\mk_materializer_cfg.py plugin 50 "E:\Virtools\Virtools Dev 5.0" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py standalone 50 "E:\Virtools\Virtools Dev 5.0" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py plugin 40 "E:\Virtools\Virtools Dev 4.0" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py standalone 40 "E:\Virtools\Virtools Dev 4.0" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py plugin 35 "E:\Virtools\Virtools Dev 3.5" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py standalone 35 "E:\Virtools\Virtools Dev 3.5" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py standalone 25 "E:\Virtools\Virtools Dev 2.5" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+python3 .\mk_materializer_cfg.py standalone 21 "E:\Virtools\Virtools Dev 2.1" "D:\CppLib\SQLite\sqlite-amalgamation-3310100" "D:\CppLib\SQLite\sqlite-dll-win32-x86-3310100" sqlite3.lib "D:\BallanceModLoader"
+```
+
+### 编译
+
+使用`Visual Studio`打开`SuperScriptMaterializer.sln`,选择`SuperScriptMaterializer`工程。然后选择编译模式(Debug或Release),然后编译即可,基本上只要配置无误,编译会很快完成
+
+## SuperScriptViewer
+
+### 需求
+
+* Node.js
+* gulp
+* gulp插件:待补充
+
+### 编译
+
+`SuperScriptViewer`本身分为2个部分:由Python配合Flask所写的后端,以及前端。后端无需编译,而前端需要通过**gulp**进行操作,以减少文档本身的大小,进而减小传输开销。
+
+编译的方法很简单,在`Viewer`目录下执行`gulp xxxx`即可让gulp自动完成相关操作。
+
diff --git a/Documents/DEPLOY_ZH.md b/Documents/DEPLOY_ZH.md
index e69de29..710aa53 100644
--- a/Documents/DEPLOY_ZH.md
+++ b/Documents/DEPLOY_ZH.md
@@ -0,0 +1,27 @@
+# 部署
+
+本文档将指导您部署属于您的`SuperScriptMaterializer`。它可以让您摆脱Virtools的限制,在所有平台上都可以浏览到Virtools的脚本。您需要先了解README中标准的操作方式,然后,我们会根据部署的一些特殊性,对标准步骤进行修改。
+
+## 导出脚本
+
+首先我们需要使用`SuperScriptMaterializer`将我们需要查看的脚本导出。众所周知,Virtools各个版本之间的兼容性很差,为一个版本的所作的文档可能在另一个版本中就无法打开,或者是丢失相关的Building Block,因此,首先您需要根据您所需要查看的Virtools文件的对应版本来选取合适版本的插件,这样可以获得更好的导出效果,因为一旦文档中出现一些Building Block丢失之类的错误,那么Virtools会让一些本可读的字段变成完全不可读的Binary格式。这也是我们的`Materializer`提供如此多版本选项的原因,为的是让每一份可能的文档都可以被正确地加载。
+
+此外,如果您遇到了NMS文件,那么您可能需要使用Virtools创作环境并配合插件模式的`Materializer`来导出,通过新建一个随意物件然后让脚本加载在其上,进而导出。您可能无法在NMS文件上使用独立模式的`Materializer`,因为它没有办法识别NMS文件。
+
+当然,您如果遇到了很多文件的情况,您可以将需要的文件放在一起,然后编写一个Shell脚本,然后使用独立模式的`Materializer`来进行批量导出(如果可以的话)。这是一个针对Ballance游戏所有文件的脚本导出的Shell脚本和其生成器的示例,可供您参考。
+
+// todo: 贴上链接
+
+如果您有来自不同Virtools版本,您需要分别用对应的导出器进行导出,然后将他们整理归类以供下一级的输入。无需担心不同版本的Virtools导出会导致错误,`Decorator`会正确处理它们。
+
+## 分析脚本
+
+您需要准备好`SuperScriptDecorator`,和一份`import.txt`。正如标准操作方式中所言,您需要把需要综合的所有的导出数据库及各个文件的名字写入`import.txt`。我的操作是在上一步生成批处理的时候一并生成`import.txt`,因为它们之间联系很紧密。当然,您完全手写`import.txt`也是可以的。在完成之后,与标准操作方式内所述一致,直接运行即可。分析脚本的时间与您输入的脚本的数量和脚本的复杂度相关。
+
+## 发布脚本
+
+分析脚本完成后,我们就该将数据输入到`SuperScriptViewer`中了。与普通运行方式不同,我们需要以非调试模式启动Flask部署后端,并同时完成前端部署。您可以参阅[Flask部署文档](https://flask.palletsprojects.com/en/2.0.x/deploying/)来根据您的情况来进行选择。
+
+我所作的Ballance脚本展示网页使用Gunicorn,部署指令是`gunicorn ServerCore:app`,其中唯一需要注意的是`ServerCore:app`这个程序入口点,在您选择不同于我的部署方式时,这个入口点将不会改变。与此同时我使用Nginx做了反向代理,具体配置可参考这里
+
+// todo: 贴上链接
diff --git a/README_ZH.md b/README_ZH.md
index 175b3d6..0e4f056 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -12,24 +12,15 @@
超级Virtools脚本物化器(机翻(确信))
-本项目分为4个部分:
+本项目分为3个部分:
* `SuperScriptMaterializer`:一个C++工程,将生成一个Virtools界面插件或独立播放器用于导出初步数据。
* `SuperScriptDecorator`:一个Python工程,将解析导出的数据,并将其组合成易于浏览的格式。
-* `SuperScriptViewer`:一个Python工程,使用Flask提供一个本地Web界面进行脚本以供快速查看,通常是用于本地快速查看解析后脚本的数据。
-* `SuperScriptEnterprise`:一个PHP工程,相对于`SuperScriptViewer`更适合部署于服务器上进行数据的展示和浏览。
+* `SuperScriptViewer`:一个Python工程,使用Flask提供一个本地Web界面进行脚本以供快速查看。
-
+整个工程所作的事情就是,将Virtools文档中的所有脚本导出成一个SQLite数据库文件(`Materializer`所做的任务),然后经过Python进行排布处理(`Decorator`所做的任务),最后提供一个本地Web前端查看脚本(`Viewer`所做的任务)。整个的查看流程比较复杂,涉及到多个软件的操作。希望您能继续阅读下面比较概要操作说明,以获得良好的使用体验。
-四个部分组成的工作流程如上图所示。整个工程所作的事情就是,将Virtools文档中的所有脚本导出成一个SQLite数据库文件,然后经过Python进行排布处理,最后提供一个本地Web前端查看脚本。这同样适用于`Script Hidden`的Virtools脚本,也适用于其中含有不可展开的`Behavior Graph`的脚本。
-
-物化器不能完全恢复脚本的原有排布,无论原有排布是否存在,物化器都将重新自动生成脚本中的各个元素的位置。某些结构的关系可能会改变(例如Export parameter),亦或者是与Virtools中的呈现不同,但是逻辑思路将不会改变。同时物化器不能将已经生成的结构回写成Virtools可接受的格式,因此物化器只能提供无视脚本隐藏的分析功能。
+物化器同样适用于`Script Hidden`的Virtools脚本,也适用于其中含有不可展开的`Behavior Graph`的脚本。物化器不能完全恢复脚本的原有排布,无论原有排布是否存在,物化器都将重新自动生成脚本中的各个元素的位置。某些结构的关系可能会改变(例如Export parameter),亦或者是与Virtools中的呈现不同,但是逻辑思路将不会改变。同时物化器不能将已经生成的结构回写成Virtools可接受的格式,因此物化器只能提供无视脚本隐藏的分析功能。
**注意事项**
@@ -43,17 +34,21 @@ SuperScriptMaterializer分为两种类型,一种是*插件*模式,在Virtool
|已知的Virtools版本|插件模式|独立模式|
|:---|:---|:---|
|Virtools 2.1|× (0)|√ (1)|
-|Virtools 2.5|× (2)|√|
+|Virtools 2.5|× (2)|√ (4)|
|Virtools 3.0|× (3)|× (3)|
-|Virtools 3.5|√ (4)|√ (4)|
-|Virtools 4.0|√ (4)|√ (4)|
+|Virtools 3.5|√|√|
+|Virtools 4.0|√|√ (4)|
|Virtools 5.0|√|√|
0. 没有可用的Virtools Dev 2.1,因此没有插件模式
0. 使用Ballance Mod Loader提供的逆向Virtools SDK进行编译
0. Virtools SDK不支持在界面上添加菜单
0. 缺少Virtools SDK,无法编译
-0. 正在编写中
+0. 有不影响输出的错误
+
+### 运行环境
+
+* 至少一个可以使用的Virtools环境
### 使用
@@ -77,29 +72,56 @@ SuperScriptMaterializer分为两种类型,一种是*插件*模式,在Virtool
## SuperScriptDecorator
+上一步导出的数据库文件并不能直接被使用,需要通过`SuperScriptDecorator`辅助生成各个Building Graph的位置以及各种连线,之后才能进入下一步查看。同时,为了支持一次性在一个工程内浏览所有的脚本内容,`Decorator`还负责将多个上游导出的数据库合并成一个数据库,以供`Viewer`进行查看。
+
+### 运行环境
+
+* Python 3.x
### 使用
-将上一步得到的`export.db`和`env.db`与`SuperScriptDecorator.py`放在一起。然后在此目录中运行`python3 ./SuperScriptDecorator.py`,等待Python交互界面提示可以打开本地的网页即可。
+将上一步得到的`export.db`和`env.db`与`SuperScriptDecorator.py`放在一起。然后新建一个文件名为`import.txt`(使用UTF-8编码),在里面输入如下内容(三个部分之间的空白是`Tab`而不是空格):
+
+```
+example.cmo export.db env.db
+```
+
+然后在此目录中运行`python3 ./SuperScriptDecorator.py`,等待Python交互界面提示完成操作即可。
`SuperScriptDecorator.py`具有一些命令行开关:
-- `-i`:指定输入的`export.db`
-- `-o`:指定输出的`decorated.db`,如果已经存在将不考虑输入,直接使用输出数据库呈现
-- `-e`:指定输入的`env.db`,环境数据库
+- `-i`:指定输入的`import.txt`
+- `-o`:指定输出的`decorated.db`,如果已经存在将覆盖
- `-c`:指定数据库编码,可用的编码表可以在[这里](https://docs.python.org/3/library/codecs.html#standard-encodings)查看
-- `-f`:无参数,用于强制重新生成输出数据库,无论输出数据库是否存在
- `-d`:无参数,启用调试模式,直接抛出异常,而不是捕获后在控制台输出,方便调试
+### import.txt
+
+`import.txt`是一个提供输入文件的集和的文本文件。由于`Decorator`还负责将多个上游导出的数据库合并成一个数据库,这些多个由上游导出的数据库需要由`import.txt`来指示。`import.txt`的基本格式就是:
+
+* 每一行代表一组输入
+* 每一行共有3个输入,从左至右分别为:文档的名字(会被显示在脚本层次图中),`export.db`,和`env.db`
+* 每一行3个部分中间由`Tab`分割
+* 空行会被忽略
+
### 提示
-以上选项在基本使用中应该不会用到,因此按上述规则直接放置好文件直接运行即可。
+以上某些选项在基本使用中应该不会用到,因此按最开始所述的方式直接放置好文件直接运行即可。
如果Python交互界面提示数据库`TEXT`类型解码失败,或者解析的字符出现乱码,那么可能您需要手动使用`-c`开关指定数据库文本解码方式。因为Virtools使用多字节编码,依赖于当前操作系统的代码页,`SuperScriptDecorator`做了特殊获取以保证大多数计算机可以直接运行,但仍然不能排除一些特殊情况。需要注意的是,指定的编码不是你计算机当前的代码页,而是制作这个Virtools文档的作者的计算机的代码页。
## SuperScriptViewer
-一份指导你如何使用Viewer的文档已内置在Viewer中,可以从Help页面进行查看
+`SuperScriptViewer`旨在提供一个网页前端查看已经生成好的数据文件。至于`Viewer`的使用,一份指导你如何使用`Viewer`的文档已内置在`Viewer`中,可以从Help页面进行查看。
+
+### 运行环境
+
+* 装有Flask的Python 3.x
+* 常见浏览器(Safari除外)
+
+### 使用
+
+如果您只是为了简单查看一下导出的文件,我们建议以调试模式运行`Viewer`,即将上一步得到的`decorated.db`和`SuperScriptViewer.py`放在一起,然后运行`python3 ./SuperScriptDecorator.py`,即可以运行调试模式的`Viewer`。如果您是要将生成的结果部署到服务器,我们更建议您使用生产模式进行部署,详情请参见[部署](./Documents/DEPLOY_ZH.md)。
## 问题反馈
@@ -109,10 +131,6 @@ SuperScriptMaterializer分为两种类型,一种是*插件*模式,在Virtool
* `SuperScriptMaterializer`独立模式输出了`[ERROR]`等类似内容
* Python交互界面弹出错误
-## 常见场景
-
-// todo
-
## 部署
参见[部署](./Documents/DEPLOY_ZH.md)
@@ -121,19 +139,12 @@ SuperScriptMaterializer分为两种类型,一种是*插件*模式,在Virtool
参见[编译](./Documents/COMPILE_ZH.md)
-
-
## 开发计划
在之后的版本中,以下功能将逐步加入:
* 当前页面搜索和全局搜索
* Shortcut追踪
-* 在Viewer中移动Block和BB
## 特别感谢
diff --git a/SuperScriptDecorator/CustomConfig.py b/SuperScriptDecorator/CustomConfig.py
new file mode 100644
index 0000000..4692903
--- /dev/null
+++ b/SuperScriptDecorator/CustomConfig.py
@@ -0,0 +1,8 @@
+import locale
+
+# encoding list
+# https://docs.python.org/3/library/codecs.html#standard-encodings
+database_encoding = locale.getpreferredencoding()
+export_db = "import.txt"
+decorated_db = "decorate.db"
+debug_mode = False
diff --git a/SuperScriptViewer/DecoratorConstValue.py b/SuperScriptDecorator/DecoratorConstValue.py
similarity index 100%
rename from SuperScriptViewer/DecoratorConstValue.py
rename to SuperScriptDecorator/DecoratorConstValue.py
diff --git a/SuperScriptViewer/DecoratorCore.py b/SuperScriptDecorator/DecoratorCore.py
similarity index 100%
rename from SuperScriptViewer/DecoratorCore.py
rename to SuperScriptDecorator/DecoratorCore.py
diff --git a/SuperScriptViewer/Progressbar.py b/SuperScriptDecorator/Progressbar.py
similarity index 100%
rename from SuperScriptViewer/Progressbar.py
rename to SuperScriptDecorator/Progressbar.py
diff --git a/SuperScriptDecorator/SuperScriptDecorator.py b/SuperScriptDecorator/SuperScriptDecorator.py
new file mode 100644
index 0000000..279c3b6
--- /dev/null
+++ b/SuperScriptDecorator/SuperScriptDecorator.py
@@ -0,0 +1,53 @@
+import CustomConfig
+import DecoratorCore
+import os
+import sys
+import getopt
+import logging
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "hi:o:e:c:fd")
+except getopt.GetoptError:
+ print('Wrong arguments!')
+ print('python SuperScriptViewer.py -i -o -c -d')
+ sys.exit(1)
+for opt, arg in opts:
+ if opt == '-h':
+ print('python SuperScriptViewer.py -i -o -c -d')
+ sys.exit(0)
+ elif opt == '-i':
+ CustomConfig.export_db = arg
+ elif opt == '-o':
+ CustomConfig.decorated_db = arg
+ elif opt == '-c':
+ CustomConfig.database_encoding = arg
+ elif opt == '-d':
+ CustomConfig.debug_mode = True
+
+print('Super Script Decorator')
+print('Homepage: https://github.com/yyc12345/SuperScriptMaterializer')
+print('Report bug: https://github.com/yyc12345/SuperScriptMaterializer/issues')
+print('')
+
+# process input and output
+if not os.path.isfile(CustomConfig.export_db):
+ print('No import.txt. Fail to generate. Exit app.')
+ sys.exit(1)
+
+# real db generator func
+def dc_wrapper():
+ pass
+
+# generate db
+if CustomConfig.debug_mode:
+ DecoratorCore.run()
+else:
+ try:
+ DecoratorCore.run()
+ except Exception, ex:
+ print("!!! An error occurs. Please report follwoing error output and reproduce file to developer. !!!")
+ logging.exception(ex)
+ sys.exit(1)
+
+print('Decorated database generating done.')
+
diff --git a/SuperScriptDecorator/SuperScriptDecorator.pyproj b/SuperScriptDecorator/SuperScriptDecorator.pyproj
new file mode 100644
index 0000000..f42fa3a
--- /dev/null
+++ b/SuperScriptDecorator/SuperScriptDecorator.pyproj
@@ -0,0 +1,50 @@
+
+
+ Debug
+ 2.0
+ 6d751bf5-87d6-4123-94b3-34721938cf04
+ .
+ SuperScriptDecorator.py
+
+
+ .
+ .
+ SuperScriptDecorator
+ SuperScriptDecorator
+ Standard Python launcher
+ -f -d
+ False
+
+
+ true
+ false
+
+
+ true
+ false
+
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SuperScriptMaterializer.sln b/SuperScriptMaterializer.sln
index 3ce2cf3..2e32779 100644
--- a/SuperScriptMaterializer.sln
+++ b/SuperScriptMaterializer.sln
@@ -3,9 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29418.71
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "SuperScriptViewer", "SuperScriptViewer\SuperScriptViewer.pyproj", "{6D751BF5-87D6-4123-94B3-34721938CF04}"
+Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "SuperScriptDecorator", "SuperScriptDecorator\SuperScriptDecorator.pyproj", "{6D751BF5-87D6-4123-94B3-34721938CF04}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SuperScriptMaterializer", "SuperScriptMaterializer\SuperScriptMaterializer.vcxproj", "{431163D3-86F1-4F6F-921C-062C6A4C70D9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SuperScriptMaterializer", "SuperScriptMaterializer\SuperScriptMaterializer.vcxproj", "{4D941003-020F-47FD-9FA2-FFC989E306B8}"
+EndProject
+Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "SuperScriptViewer", "SuperScriptViewer\SuperScriptViewer.pyproj", "{0E4B5021-27EA-4F79-B87D-E123AFB3D788}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -23,14 +25,20 @@ Global
{6D751BF5-87D6-4123-94B3-34721938CF04}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D751BF5-87D6-4123-94B3-34721938CF04}.Release|x64.ActiveCfg = Release|Any CPU
{6D751BF5-87D6-4123-94B3-34721938CF04}.Release|x86.ActiveCfg = Release|Any CPU
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Debug|x64.ActiveCfg = Debug|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Debug|x86.ActiveCfg = Debug|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Debug|x86.Build.0 = Debug|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Release|Any CPU.ActiveCfg = Release|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Release|x64.ActiveCfg = Release|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Release|x86.ActiveCfg = Release|Win32
- {431163D3-86F1-4F6F-921C-062C6A4C70D9}.Release|x86.Build.0 = Release|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|x64.ActiveCfg = Debug|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|x86.ActiveCfg = Debug|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|x86.Build.0 = Debug|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|Any CPU.ActiveCfg = Release|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x64.ActiveCfg = Release|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.ActiveCfg = Release|Win32
+ {4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.Build.0 = Release|Win32
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Release|x64.ActiveCfg = Release|Any CPU
+ {0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/SuperScriptViewer/SuperScriptViewer.py b/SuperScriptViewer/SuperScriptViewer.py
index 96a30c1..e263c17 100644
--- a/SuperScriptViewer/SuperScriptViewer.py
+++ b/SuperScriptViewer/SuperScriptViewer.py
@@ -1,65 +1,10 @@
-import CustomConfig
-import DecoratorCore
import ServerCore
import os
import sys
import getopt
import logging
-try:
- opts, args = getopt.getopt(sys.argv[1:], "hi:o:e:c:fd")
-except getopt.GetoptError:
- print('Wrong arguments!')
- print('python SuperScriptViewer.py -i -o -e -c -f -d')
- sys.exit(1)
-for opt, arg in opts:
- if opt == '-h':
- print('python SuperScriptViewer.py -i -o -e -c -f -d')
- sys.exit(0)
- elif opt == '-i':
- CustomConfig.export_db = arg
- elif opt == '-o':
- CustomConfig.decorated_db = arg
- elif opt == '-e':
- CustomConfig.env_db = arg
- elif opt == '-c':
- CustomConfig.database_encoding = arg
- elif opt == '-f':
- CustomConfig.force_regenerate = True
- elif opt == '-d':
- CustomConfig.debug_mode = True
-
-print('Super Script View')
-print('Homepage: https://github.com/yyc12345/SuperScriptMaterializer')
-print('Report bug: https://github.com/yyc12345/SuperScriptMaterializer/issues')
-print('')
-# process -f
-if (CustomConfig.force_regenerate):
- if os.path.isfile(CustomConfig.decorated_db):
- os.remove(CustomConfig.decorated_db)
-
-if not os.path.isfile(CustomConfig.env_db):
- print('No environment database. Fail to generate. Exit app.')
- sys.exit(1)
-
-if not os.path.isfile(CustomConfig.decorated_db):
- print('No decorated database, generating it.')
- if not os.path.isfile(CustomConfig.export_db):
- print('No export.db. Fail to generate. Exit app.')
- sys.exit(1)
-
- # generate db
- if CustomConfig.debug_mode:
- DecoratorCore.run()
- else:
- try:
- DecoratorCore.run()
- except Exception as ex:
- print("!!! An error occurs. Please report follwoing error output and reproduce file to developer. !!!")
- logging.exception(ex)
- sys.exit(1)
-
- print('Decorated database generating done.')
+# todo: load db and cfg
# todo: start flask
ServerCore.run()
diff --git a/SuperScriptViewer/SuperScriptViewer.pyproj b/SuperScriptViewer/SuperScriptViewer.pyproj
index 3953a33..ab09565 100644
--- a/SuperScriptViewer/SuperScriptViewer.pyproj
+++ b/SuperScriptViewer/SuperScriptViewer.pyproj
@@ -2,7 +2,7 @@
Debug
2.0
- 6d751bf5-87d6-4123-94b3-34721938cf04
+ 0e4b5021-27ea-4f79-b87d-e123afb3d788
.
SuperScriptViewer.py
@@ -11,9 +11,6 @@
.
SuperScriptViewer
SuperScriptViewer
- Standard Python launcher
- -f -d
- False
true
@@ -24,24 +21,9 @@
false
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
+
+
+