[build skip] use dsm with secret
[build skip] add delete task and try upload [build skip] key error fix [build skip] key error? not use secret Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py [build skip] try use better 一些奇怪东西 update with md5_check Update page.yml Update page.yml try build fix: last md5 detect use local one add more mdbook extention reformat and add more add cmd run i18n not 18n try use local build mdbook Update page.yml try with openai Update page.yml Update page.yml Update page.yml Update page.yml Update page.yml Update page.yml Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py Update dsm.py try new one use custom TEMP use new path 逝逝 page toc later add back debug print try to add back pagetoc try to use pagetoc-0.1.7 [build skip] just upload the theme folder~ [build skip] get plant UML [build skip] add log out for dsm.py [build skip] clean up useless "f"
This commit is contained in:
parent
57d113fc94
commit
fd5963bc0a
119
.github/workflows/dsm.py
vendored
119
.github/workflows/dsm.py
vendored
@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -------------------------------
|
||||
# Difficult Rocket
|
||||
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
|
||||
@ -5,27 +6,111 @@
|
||||
# -------------------------------
|
||||
|
||||
import os
|
||||
import time
|
||||
from pprint import pprint
|
||||
from synology_api import filestation
|
||||
|
||||
# 输出 文档构建目录 的内容
|
||||
docs_build = 'docs/book/html'
|
||||
|
||||
for root, dirs, files in os.walk(docs_build):
|
||||
print(root, dirs, files)
|
||||
class DSM:
|
||||
def __init__(self, docs_path: str, dsm_path: str):
|
||||
self.docs_path = docs_path
|
||||
self.dsm_path = dsm_path
|
||||
self.token = os.environ['DSM_TOKEN']
|
||||
self.fl = filestation.FileStation(ip_address='hws.shenjack.top',
|
||||
port=5000,
|
||||
username='github',
|
||||
password=self.token,
|
||||
secure=False,
|
||||
cert_verify=False,
|
||||
dsm_version=7,
|
||||
debug=True,
|
||||
interactive_output=False)
|
||||
|
||||
# 获取 token
|
||||
token = os.environ['DSM_TOKEN']
|
||||
username = os.environ['DSM_USERNAME']
|
||||
def list_files(self):
|
||||
# 输出 文档构建目录 的内容
|
||||
print(f'==========输出 {self.docs_path} 的内容==========')
|
||||
for root, dirs, files in os.walk(self.docs_path):
|
||||
print(root, dirs)
|
||||
print('==========就这些==========')
|
||||
|
||||
fl = filestation.FileStation(ip_address='hws.shenjack.top',
|
||||
port=5000,
|
||||
username=username,
|
||||
password=token,
|
||||
secure=False,
|
||||
cert_verify=False,
|
||||
dsm_version=7,
|
||||
debug=True)
|
||||
def clear_dsm(self):
|
||||
# 清空 DSM 的 /web/dr 目录
|
||||
delete_task = self.fl.start_delete_task(self.dsm_path, recursive=True)
|
||||
delete_task_id = delete_task['taskid']
|
||||
time.sleep(1) # 等待 1 秒 保证任务已经完成
|
||||
pprint(self.fl.get_delete_status(delete_task_id)['data']['finished'])
|
||||
|
||||
print(fl.get_info())
|
||||
def check_md5(self, local_md5: str) -> bool:
|
||||
"""
|
||||
检查本地构建的文档和 DSM 上的文档的 md5 是否一致
|
||||
:param local_md5:
|
||||
:return: True: 一致 False: 不一致
|
||||
"""
|
||||
# 打开提供的md5文件
|
||||
try:
|
||||
with open(local_md5, 'r', encoding='utf-8') as f:
|
||||
md5 = f.read()
|
||||
except FileNotFoundError:
|
||||
print(f'文件 {local_md5} 不存在')
|
||||
return False
|
||||
# 检测是否存在 dsm 上的 md5.txt
|
||||
dsm_files = self.fl.get_file_list(folder_path='/web/dr')
|
||||
if dsm_files.get('error'):
|
||||
print(dsm_files['error'])
|
||||
return False
|
||||
dsm_files = dsm_files['data']['files']
|
||||
if '/web/dr/md5.txt' not in [file['path'] for file in dsm_files]:
|
||||
print('dsm md5.txt 不存在')
|
||||
return False
|
||||
# 下载 dsm 上的 md5.txt
|
||||
try:
|
||||
self.fl.get_file(path='/web/dr/md5.txt', mode='download', dest_path='./docs/book')
|
||||
with open('./docs/book/md5.txt', 'r', encoding='utf-8') as f:
|
||||
md5_last = f.read()
|
||||
if md5 == md5_last:
|
||||
return True
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return False
|
||||
|
||||
print(fl.get_file_list('/web'))
|
||||
def upload_docs(self, local_md5: str):
|
||||
# 上传本地构建的文档到 DSM
|
||||
print(f'==========上传 {self.docs_path} 到 {self.dsm_path}==========')
|
||||
# 使用 os.walk 递归遍历文件夹 依次按照对应路径上传
|
||||
# 上传的时候 目标路径为本地路径的相对路径
|
||||
for root, dirs, files in os.walk(self.docs_path):
|
||||
for file in files:
|
||||
file_path = os.path.join(root, file)
|
||||
dest_path = f'{self.dsm_path}{root[len(self.docs_path):]}'
|
||||
dest_path = dest_path.replace('\\', '/')
|
||||
# 输出 文件路径 和 目标路径
|
||||
print(f'{file_path} -> {dest_path}', end=' ')
|
||||
pprint(self.fl.upload_file(dest_path=dest_path,
|
||||
file_path=file_path,
|
||||
overwrite=True))
|
||||
# self.fl.upload_file(dest_path=dest_path,
|
||||
# file_path=file_path,
|
||||
# overwrite=True)
|
||||
# 上传本地的 md5 文件
|
||||
print(f'{local_md5} -> {self.dsm_path}', end=' ')
|
||||
pprint(self.fl.upload_file(dest_path=self.dsm_path,
|
||||
file_path=local_md5,
|
||||
overwrite=True))
|
||||
print('==========上传完成==========')
|
||||
|
||||
|
||||
def main():
|
||||
docs_path = 'docs/book/html'
|
||||
dsm_path = '/web/dr'
|
||||
dsm = DSM(docs_path, dsm_path)
|
||||
dsm.list_files()
|
||||
if dsm.check_md5('docs/md5.txt'):
|
||||
print('md5 一致,不需要上传')
|
||||
return 0
|
||||
dsm.clear_dsm()
|
||||
dsm.upload_docs('docs/md5.txt')
|
||||
dsm.fl.session.logout('FileStation')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
52
.github/workflows/page.yml
vendored
52
.github/workflows/page.yml
vendored
@ -37,15 +37,54 @@ jobs:
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v2
|
||||
|
||||
- name: install mdbook
|
||||
- name: 安装 mdbook
|
||||
uses: extractions/setup-mdbook@v1
|
||||
|
||||
- name: setup python 3.11
|
||||
# - name: 安装 mdbook 扩展
|
||||
# shell: pwsh
|
||||
# run: |
|
||||
# # mdbook mdbook-i18n mdbook-footnote mdbook-pagetoc mdbook-cmdrun
|
||||
# Write-Host "GITHUB_PATH is: $env:GITHUB_PATH"
|
||||
# $mdbookPath = "$env:GITHUB_PATH\mdbook.exe"
|
||||
# Write-Host "mdbook path is: $mdbookPath"
|
||||
# Invoke-WebRequest -Uri "http://shenjack.top:81/mdbook/mdbook-i18n.exe" -OutFile $env:GITHUB_PATH\mdbook-i18n.exe
|
||||
# Invoke-WebRequest -Uri "http://shenjack.top:81/mdbook/mdbook-cmdrun.exe" -OutFile $env:GITHUB_PATH\mdbook-cmdrun.exe
|
||||
# Invoke-WebRequest -Uri "http://shenjack.top:81/mdbook/mdbook-pagetoc.exe" -OutFile $env:GITHUB_PATH\mdbook-pagetoc.exe
|
||||
# Invoke-WebRequest -Uri "http://shenjack.top:81/mdbook/mdbook-footnote.exe" -OutFile $env:GITHUB_PATH\mdbook-footnote.exe
|
||||
|
||||
- name: Install mdBook
|
||||
shell: pwsh
|
||||
run: |
|
||||
# 设置变量
|
||||
$urls = @(
|
||||
'https://github.com/shenjackyuanjie/Minecraft_Science_Tree/releases/download/0.0.2/mdbook-i18n',
|
||||
'https://github.com/shenjackyuanjie/Minecraft_Science_Tree/releases/download/0.0.2/mdbook-cmdrun',
|
||||
'https://github.com/shenjackyuanjie/Minecraft_Science_Tree/releases/download/0.0.3/mdbook-pagetoc',
|
||||
'https://github.com/shenjackyuanjie/Minecraft_Science_Tree/releases/download/0.0.2/mdbook-footnote',
|
||||
'https://github.com/plantuml/plantuml/releases/download/v1.2023.4/plantuml-1.2023.4.jar'
|
||||
)
|
||||
$temp = 'mdbook'
|
||||
# 创建目录
|
||||
if (!(Test-Path -Path $temp -PathType Container)) {
|
||||
New-Item -Path $temp -ItemType Directory -Force
|
||||
}
|
||||
# 下载文件
|
||||
foreach ($url in $urls) {
|
||||
Invoke-WebRequest -Uri $url -OutFile "$temp/$($url.Split('/')[-1])"
|
||||
}
|
||||
# Invoke-WebRequest -Uri $url1 -OutFile 'mdbook/mdbook-i18n'
|
||||
# Invoke-WebRequest -Uri $url2 -OutFile 'mdbook/mdbook-cmdrun'
|
||||
# Invoke-WebRequest -Uri $url3 -OutFile 'mdbook/mdbook-pagetoc'
|
||||
# Invoke-WebRequest -Uri $url4 -OutFile 'mdbook/mdbook-footnote'
|
||||
# 将目录路径添加到 $PATH 中
|
||||
echo "$temp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||
|
||||
- name: 安装 python 3.11
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.11
|
||||
|
||||
- name: install dsm api
|
||||
- name: 安装 dsm api
|
||||
shell: pwsh
|
||||
run: |
|
||||
pip install synology-api>=0.5.1
|
||||
@ -54,8 +93,8 @@ jobs:
|
||||
shell: pwsh
|
||||
run: |
|
||||
mdbook build ./docs/
|
||||
cd docs
|
||||
Copy-Item book/README-en.html book/html/README-en.html
|
||||
Copy-Item docs/book/README-en.html docs/book/html/README-en.html
|
||||
Get-ChildItem -Recurse -Path .\docs\book\* | ?{$_.PsIsContainer -eq $false} | Get-FileHash -Algorithm MD5 >> .\docs\md5.txt
|
||||
|
||||
- name: 上传到 github pages
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
@ -70,7 +109,6 @@ jobs:
|
||||
- name: 上传到 DSM
|
||||
env:
|
||||
DSM_TOKEN: ${{ secrets.DSM_TOKEN }}
|
||||
DSM_USERNAME: ${{ secrets.DSM_USERNAME }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
python .github/workflows/dsm.py
|
||||
python .github/workflows/dsm.py -X utf8
|
||||
|
11
DR-start.py
11
DR-start.py
@ -6,20 +6,19 @@
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import cProfile
|
||||
import traceback
|
||||
|
||||
hi = """Difficult Rocket is writen by shenjackyuanjie
|
||||
email: 3695888@qq.com or shyj3695888@163.com
|
||||
QQ: 3695888"""
|
||||
|
||||
errors = {
|
||||
'TestError': '游戏正在调试中,某处引发了一个 TestError,不是bug造成的原因',
|
||||
'TestError': '游戏正在调试中,某处引发了一个 TestError,不是bug造成的原因',
|
||||
'AssertionError': '游戏的某处检查未通过,情报告issue',
|
||||
'error.unknown': '游戏报错了,现在输出报错信息,请报告issue',
|
||||
'error.happen': '游戏出现了一个报错!正在处理'
|
||||
'error.unknown': '游戏报错了,现在输出报错信息,请报告issue',
|
||||
'error.happen': '游戏出现了一个报错!正在处理'
|
||||
}
|
||||
|
||||
|
||||
def print_path() -> None:
|
||||
print(f'{__file__=}')
|
||||
print(f'{sys.path=}')
|
||||
@ -46,5 +45,3 @@ if __name__ == '__main__':
|
||||
start_time_perf_ns = time.perf_counter_ns()
|
||||
print_path()
|
||||
modify_path()
|
||||
|
||||
|
||||
|
@ -127,7 +127,8 @@ class SR1ShipRender(BaseScreen):
|
||||
self.xml_doc = cache_doc
|
||||
self.xml_root = self.xml_doc.getroot()
|
||||
return True
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return False
|
||||
|
||||
def load_textures(self):
|
||||
|
6
docs/.gitignore
vendored
6
docs/.gitignore
vendored
@ -1,3 +1,5 @@
|
||||
./book
|
||||
md5.txt
|
||||
index.html
|
||||
|
||||
index.html
|
||||
book
|
||||
#theme
|
||||
|
@ -11,43 +11,45 @@ create-missing = false
|
||||
use-default-preprocessors = true # use the default preprocessors
|
||||
extra-watch-dirs = [] # directories to watch for triggering builds
|
||||
|
||||
# 默认 404 文件
|
||||
[output.html]
|
||||
input-404 = "404.md"
|
||||
additional-css = ["theme/pagetoc.css"]
|
||||
additional-js = ["theme/pagetoc.js"]
|
||||
|
||||
# Required: Your repository URL used in the link.
|
||||
# Git 相关配置
|
||||
git-repository-url = "https://github.com/shenjackyuanjie/Difficult-Rocket"
|
||||
|
||||
# Your git branch. Defaults to `main`
|
||||
git-branch = "main"
|
||||
|
||||
# The text to use in the footer.
|
||||
# The link text is marked by `[]`
|
||||
# 右上角的 "在 Github 内打开" 按钮
|
||||
open-on-text = "Found a bug? [Edit this page on GitHub.]"
|
||||
|
||||
[output.linkcheck]
|
||||
# Should we check links on the internet? Enabling this option adds a
|
||||
# non-negligible performance impact
|
||||
follow-web-links = false
|
||||
warning-policy = "ignore"
|
||||
exclude = [ "requirement-dev.txt" ]
|
||||
|
||||
# Are we allowed to link to files outside of the book's root directory? This
|
||||
# may help prevent linking to sensitive files (e.g. "../../../../etc/shadow")
|
||||
traverse-parent-directories = true
|
||||
|
||||
# 最大搜索数量
|
||||
[output.html.search]
|
||||
limit-results = 15
|
||||
|
||||
# 允许打印
|
||||
[output.html.print]
|
||||
enable = true # include support for printable output
|
||||
page-break = true # insert page-break after each chapter
|
||||
|
||||
# [output.pdf]
|
||||
|
||||
# [output.copy-resources]
|
||||
# optional = true
|
||||
# command = 'python output.py'
|
||||
|
||||
[rust]
|
||||
edition = "2021" # the default edition for code blocks
|
||||
|
||||
### 扩展部分
|
||||
|
||||
# 检查文档内链接
|
||||
[output.linkcheck]
|
||||
follow-web-links = false
|
||||
warning-policy = "ignore"
|
||||
exclude = [ "requirement-dev.txt" ]
|
||||
traverse-parent-directories = true
|
||||
|
||||
# 支持脚注 ( {{footnote: Or is it?}} )
|
||||
[preprocessor.footnote]
|
||||
|
||||
# 添加右侧目录
|
||||
[preprocessor.pagetoc]
|
||||
|
||||
# 从本地运行一些东西拿到 markdown 里来
|
||||
[preprocessor.cmdrun]
|
||||
|
5
docs/make_book_with_md5.ps1
Normal file
5
docs/make_book_with_md5.ps1
Normal file
@ -0,0 +1,5 @@
|
||||
mdbook build .
|
||||
Copy-Item book/README-en.html book/html/README-en.html
|
||||
rm md5.txt
|
||||
rm index.html
|
||||
Get-ChildItem -Recurse -Path book\* | ?{$_.PsIsContainer -eq $false} | Get-FileHash -Algorithm MD5 >> .\md5.txt
|
@ -5,7 +5,7 @@
|
||||
- Thanks `Github copilot` for translate (lazy yes!)
|
||||
- Means the update logs will lodge in Chinese and translated by `copilot`
|
||||
- 可惜啊,github copilot 收费了
|
||||
- 欸嘿,我现在有 Github 学生包啦
|
||||
- 欸嘿,我现在有 Github 学生包{{footnote: 甚至用的我的课表}}啦
|
||||
- Nice, I have Github student pack now
|
||||
|
||||
## Readme First
|
||||
@ -24,7 +24,26 @@
|
||||
|
||||
## 20230302 DR `0.7.1.5` + Build `1.2.1.0` + DR_rs `0.2.5.6`
|
||||
|
||||
WORKING ON
|
||||
### 文档
|
||||
|
||||
- 现在可以访问 dr.shenjack.top
|
||||
- 或者 hws.shenjack.top:81/dr
|
||||
- 或者 shenjack.top:81/dr
|
||||
- 来访问 DR 的文档页面
|
||||
- Now you can visit dr.shenjack.top
|
||||
- Or hws.shenjack.top:81/dr
|
||||
- Or shenjack.top:81/dr
|
||||
- To visit the DR document page
|
||||
|
||||
### Workflow
|
||||
|
||||
- 新增了 `dsm.py`
|
||||
- 用于将文档部署到服务器
|
||||
- 同时保证不会丢下一大堆连接不管
|
||||
- Add `dsm.py`
|
||||
- Used to deploy documents to the server
|
||||
- At the same time, ensure that there will be no connection left
|
||||
|
||||
|
||||
### DR_rs V 0.2.5.6
|
||||
|
||||
@ -223,7 +242,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- 将 `SR1PartData` 的字段 `type_` 重命名为 `p_type`
|
||||
- 现在鼠标滚动更顺滑了
|
||||
|
||||
|
||||
### `DR_Rs`
|
||||
|
||||
- 移动了 `SR1PartData` 的位置
|
||||
@ -367,21 +385,16 @@ long_version: 一个用于标记内部协议的整数
|
||||
- 更新了 `command/` 里的一大堆东西
|
||||
- 退钱!开摆!
|
||||
|
||||
|
||||
|
||||
## 202202xx V 0.6.2
|
||||
|
||||
### Add
|
||||
|
||||
[然后就很快被替换成MCDR的了]: <> (- 添加模块 `semver` 和协议 (`LICENSE.txt`))
|
||||
[Add soon been replace by MCDR]: <> ( - Add modules `semver` Add LICENSE (`LICENSE.txt`))
|
||||
- 添加了 `libs.MCDR` 文件夹 (`new_thread`没有包含在内)
|
||||
- Add `libs.MCDR` folder (`new_thread` not included)
|
||||
- 添加对 mod 的支持(还在写啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊)
|
||||
- 计划写个设计文档
|
||||
- Plan to write a design document
|
||||
|
||||
|
||||
## ~~202111 202112xx 20220119~~ 20220207 V 0.6.1
|
||||
|
||||
~~争取12月内发一个release~~
|
||||
@ -405,7 +418,7 @@ long_version: 一个用于标记内部协议的整数
|
||||
- move `api/translate` to root directory
|
||||
- 现在命令会慢慢消失,而不是立即消失
|
||||
- Now the command will disappear slowly, not immediately
|
||||
- 重写了一遍` client.load_fonts()`
|
||||
- 重写了一遍`client.load_fonts()`
|
||||
- rewrite `client.load_fonts()`
|
||||
- 重写了 `tools.load_file()` 的错误处理和 `.config` 文件的解析方式
|
||||
- 现在 `.config` 文件解析后会直接返回一个 `ConfigParser` 对象
|
||||
@ -453,10 +466,9 @@ long_version: 一个用于标记内部协议的整数
|
||||
- 增加内置模块 `toml` 和对应的 `LICENSE.txt`
|
||||
- Added built-in module `toml` and corresponding `LICENSE.txt`
|
||||
|
||||
|
||||
## 20211025 V 0.6.0
|
||||
|
||||
#### Command Line Update!
|
||||
#### Command Line Update
|
||||
|
||||
### Change
|
||||
|
||||
@ -518,14 +530,13 @@ long_version: 一个用于标记内部协议的整数
|
||||
- `/default`
|
||||
- switch window size to default size
|
||||
|
||||
|
||||
## 20210928 V 0.5.2
|
||||
|
||||
### Change
|
||||
|
||||
- now bin folder use the name `Difficult_Rocket`
|
||||
- now test files no longer have `_test_` prefix
|
||||
- now will always use local `pyglet`
|
||||
- now will always use local `pyglet`
|
||||
- may change later
|
||||
- fitting `pypy3.10` (well······ not success (because OpenGL, blame it))
|
||||
- now `crash-report` have more information
|
||||
@ -568,7 +579,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- `tr[xxx]` can also use but won't solve error when item not found
|
||||
- so best use `tr.lang(xx, xx)`
|
||||
|
||||
|
||||
## 20210902 V 0.5.1
|
||||
|
||||
### Change
|
||||
@ -585,7 +595,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- `bin/api/Exp.py` some Exception
|
||||
- `bin/api/translate` to create a `translate` class that can reload language
|
||||
|
||||
|
||||
## 20210823 V 0.5.0
|
||||
|
||||
### Change
|
||||
@ -605,7 +614,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
|
||||
- `name_hanlder` in `configs.py`
|
||||
|
||||
|
||||
## 20210811 V 0.4.6
|
||||
|
||||
### DEBUG
|
||||
@ -628,11 +636,10 @@ long_version: 一个用于标记内部协议的整数
|
||||
### Delete
|
||||
|
||||
- all game window render has been deleted
|
||||
- will be rewritten in 0.5.0
|
||||
- will be rewritten in 0.5.0
|
||||
- delete some useless code
|
||||
- delete some useless file
|
||||
|
||||
|
||||
## 20210723 V 0.4.5
|
||||
|
||||
### DEBUG
|
||||
@ -650,7 +657,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- Pre-installed `pyglet` upgrade from `1.5.16` -> `1.5.18`
|
||||
- Pre-installed `json5` upgrade from `0.9.5` -> `0.9.6`
|
||||
|
||||
|
||||
## 20210708 V 0.4.4
|
||||
|
||||
### PS
|
||||
@ -673,7 +679,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- `test_logging_conf.py`
|
||||
- `test_speed_of_sprite.py`
|
||||
|
||||
|
||||
## 2021/06/26 V 0.4.3
|
||||
|
||||
### DEBUG
|
||||
@ -690,7 +695,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
- add performance_test folder
|
||||
- add some performances test
|
||||
|
||||
|
||||
## 2021/05/24 V 0.4.2
|
||||
|
||||
### DEBUG
|
||||
@ -707,7 +711,6 @@ long_version: 一个用于标记内部协议的整数
|
||||
|
||||
- debug name_format
|
||||
|
||||
|
||||
## 2021/04/17 V 0.4.1
|
||||
|
||||
PS:
|
||||
@ -729,7 +732,6 @@ PS:
|
||||
- plan to change config file format to .config (plan to)
|
||||
- reformat all files (including libs)
|
||||
|
||||
|
||||
## 2021/04/09 V 0.2.3/4
|
||||
|
||||
### Add
|
||||
@ -747,14 +749,13 @@ PS:
|
||||
- `{date}` can be successful use in `tools.name_handler()` (if you define the format of date)
|
||||
- log file's filename incorrect (should be `xxxx-xx-xx xx-xx-xx DR.log` but be `{date} DR.log`)
|
||||
|
||||
|
||||
## 2021/03/27 V 0.2.2/1
|
||||
|
||||
### Add
|
||||
|
||||
- add local libs
|
||||
- `pyglet 1.5.15`
|
||||
- `json5 0.9.5`
|
||||
- `pyglet 1.5.15`
|
||||
- `json5 0.9.5`
|
||||
|
||||
PS: now I'm not sure witch lib will be import first
|
||||
|
||||
|
317
docs/theme/index.hbs
vendored
Normal file
317
docs/theme/index.hbs
vendored
Normal file
@ -0,0 +1,317 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="{{ language }}" class="sidebar-visible no-js {{ default_theme }}">
|
||||
<head>
|
||||
<!-- Book generated using mdBook -->
|
||||
<meta charset="UTF-8">
|
||||
<title>{{ title }}</title>
|
||||
{{#if is_print }}
|
||||
<meta name="robots" content="noindex" />
|
||||
{{/if}}
|
||||
{{#if base_url}}
|
||||
<base href="{{ base_url }}">
|
||||
{{/if}}
|
||||
|
||||
|
||||
<!-- Custom HTML head -->
|
||||
{{> head}}
|
||||
|
||||
<meta name="description" content="{{ description }}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="theme-color" content="#ffffff" />
|
||||
|
||||
{{#if favicon_svg}}
|
||||
<link rel="icon" href="{{ path_to_root }}favicon.svg">
|
||||
{{/if}}
|
||||
{{#if favicon_png}}
|
||||
<link rel="shortcut icon" href="{{ path_to_root }}favicon.png">
|
||||
{{/if}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
|
||||
{{#if print_enable}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}css/print.css" media="print">
|
||||
{{/if}}
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css">
|
||||
{{#if copy_fonts}}
|
||||
<link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css">
|
||||
{{/if}}
|
||||
|
||||
<!-- Highlight.js Stylesheets -->
|
||||
<link rel="stylesheet" href="{{ path_to_root }}highlight.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}tomorrow-night.css">
|
||||
<link rel="stylesheet" href="{{ path_to_root }}ayu-highlight.css">
|
||||
|
||||
<!-- Custom theme stylesheets -->
|
||||
{{#each additional_css}}
|
||||
<link rel="stylesheet" href="{{ ../path_to_root }}{{ this }}">
|
||||
{{/each}}
|
||||
|
||||
{{#if mathjax_support}}
|
||||
<!-- MathJax -->
|
||||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
{{/if}}
|
||||
</head>
|
||||
<body>
|
||||
<div id="body-container">
|
||||
<!-- Provide site root to javascript -->
|
||||
<script>
|
||||
var path_to_root = "{{ path_to_root }}";
|
||||
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
|
||||
</script>
|
||||
|
||||
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
||||
<script>
|
||||
try {
|
||||
var theme = localStorage.getItem('mdbook-theme');
|
||||
var sidebar = localStorage.getItem('mdbook-sidebar');
|
||||
|
||||
if (theme.startsWith('"') && theme.endsWith('"')) {
|
||||
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
||||
}
|
||||
|
||||
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
||||
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
||||
}
|
||||
} catch (e) { }
|
||||
</script>
|
||||
|
||||
<!-- Set the theme before any content is loaded, prevents flash -->
|
||||
<script>
|
||||
var theme;
|
||||
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
||||
if (theme === null || theme === undefined) { theme = default_theme; }
|
||||
var html = document.querySelector('html');
|
||||
html.classList.remove('no-js')
|
||||
html.classList.remove('{{ default_theme }}')
|
||||
html.classList.add(theme);
|
||||
html.classList.add('js');
|
||||
</script>
|
||||
|
||||
<!-- Hide / unhide sidebar before it is displayed -->
|
||||
<script>
|
||||
var html = document.querySelector('html');
|
||||
var sidebar = null;
|
||||
if (document.body.clientWidth >= 1080) {
|
||||
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
||||
sidebar = sidebar || 'visible';
|
||||
} else {
|
||||
sidebar = 'hidden';
|
||||
}
|
||||
html.classList.remove('sidebar-visible');
|
||||
html.classList.add("sidebar-" + sidebar);
|
||||
</script>
|
||||
|
||||
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
||||
<div class="sidebar-scrollbox">
|
||||
{{#toc}}{{/toc}}
|
||||
</div>
|
||||
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper" class="page-wrapper">
|
||||
|
||||
<div class="page">
|
||||
{{> header}}
|
||||
<div id="menu-bar-hover-placeholder"></div>
|
||||
<div id="menu-bar" class="menu-bar sticky bordered">
|
||||
<div class="left-buttons">
|
||||
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
||||
<i class="fa fa-bars"></i>
|
||||
</button>
|
||||
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
||||
<i class="fa fa-paint-brush"></i>
|
||||
</button>
|
||||
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
||||
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
||||
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
||||
</ul>
|
||||
{{#if search_enabled}}
|
||||
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<h1 class="menu-title">{{ book_title }}</h1>
|
||||
|
||||
<div class="right-buttons">
|
||||
{{#if print_enable}}
|
||||
<a href="{{ path_to_root }}print.html" title="Print this book" aria-label="Print this book">
|
||||
<i id="print-button" class="fa fa-print"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if git_repository_url}}
|
||||
<a href="{{git_repository_url}}" title="Git repository" aria-label="Git repository">
|
||||
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if git_repository_edit_url}}
|
||||
<a href="{{git_repository_edit_url}}" title="Suggest an edit" aria-label="Suggest an edit">
|
||||
<i id="git-edit-button" class="fa fa-edit"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if search_enabled}}
|
||||
<div id="search-wrapper" class="hidden">
|
||||
<form id="searchbar-outer" class="searchbar-outer">
|
||||
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
||||
</form>
|
||||
<div id="searchresults-outer" class="searchresults-outer hidden">
|
||||
<div id="searchresults-header" class="searchresults-header"></div>
|
||||
<ul id="searchresults">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
||||
<script>
|
||||
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
||||
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
||||
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
||||
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="content" class="content">
|
||||
<main><div class="sidetoc"><nav class="pagetoc"></nav></div>
|
||||
{{{ content }}}
|
||||
</main>
|
||||
|
||||
<nav class="nav-wrapper" aria-label="Page navigation">
|
||||
<!-- Mobile navigation buttons -->
|
||||
{{#previous}}
|
||||
<a rel="prev" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
{{/previous}}
|
||||
|
||||
{{#next}}
|
||||
<a rel="next" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
{{/next}}
|
||||
|
||||
<div style="clear: both"></div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
||||
{{#previous}}
|
||||
<a rel="prev" href="{{ path_to_root }}{{link}}" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
</a>
|
||||
{{/previous}}
|
||||
|
||||
{{#next}}
|
||||
<a rel="next" href="{{ path_to_root }}{{link}}" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
{{/next}}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
|
||||
{{#if live_reload_endpoint}}
|
||||
<!-- Livereload script (if served using the cli tool) -->
|
||||
<script>
|
||||
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
|
||||
const wsAddress = wsProtocol + "//" + location.host + "/" + "{{{live_reload_endpoint}}}";
|
||||
const socket = new WebSocket(wsAddress);
|
||||
socket.onmessage = function (event) {
|
||||
if (event.data === "reload") {
|
||||
socket.close();
|
||||
location.reload();
|
||||
}
|
||||
};
|
||||
|
||||
window.onbeforeunload = function() {
|
||||
socket.close();
|
||||
}
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if google_analytics}}
|
||||
<!-- Google Analytics Tag -->
|
||||
<script>
|
||||
var localAddrs = ["localhost", "127.0.0.1", ""];
|
||||
|
||||
// make sure we don't activate google analytics if the developer is
|
||||
// inspecting the book locally...
|
||||
if (localAddrs.indexOf(document.location.hostname) === -1) {
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{google_analytics}}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
}
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_line_numbers}}
|
||||
<script>
|
||||
window.playground_line_numbers = true;
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_copyable}}
|
||||
<script>
|
||||
window.playground_copyable = true;
|
||||
</script>
|
||||
{{/if}}
|
||||
|
||||
{{#if playground_js}}
|
||||
<script src="{{ path_to_root }}ace.js"></script>
|
||||
<script src="{{ path_to_root }}editor.js"></script>
|
||||
<script src="{{ path_to_root }}mode-rust.js"></script>
|
||||
<script src="{{ path_to_root }}theme-dawn.js"></script>
|
||||
<script src="{{ path_to_root }}theme-tomorrow_night.js"></script>
|
||||
{{/if}}
|
||||
|
||||
{{#if search_js}}
|
||||
<script src="{{ path_to_root }}elasticlunr.min.js"></script>
|
||||
<script src="{{ path_to_root }}mark.min.js"></script>
|
||||
<script src="{{ path_to_root }}searcher.js"></script>
|
||||
{{/if}}
|
||||
|
||||
<script src="{{ path_to_root }}clipboard.min.js"></script>
|
||||
<script src="{{ path_to_root }}highlight.js"></script>
|
||||
<script src="{{ path_to_root }}book.js"></script>
|
||||
|
||||
<!-- Custom JS scripts -->
|
||||
{{#each additional_js}}
|
||||
<script src="{{ ../path_to_root }}{{this}}"></script>
|
||||
{{/each}}
|
||||
|
||||
{{#if is_print}}
|
||||
{{#if mathjax_support}}
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
MathJax.Hub.Register.StartupHook('End', function() {
|
||||
window.setTimeout(window.print, 100);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{{else}}
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
window.setTimeout(window.print, 100);
|
||||
});
|
||||
</script>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
57
docs/theme/pagetoc.css
vendored
Normal file
57
docs/theme/pagetoc.css
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
@media only screen and (max-width:1439px) {
|
||||
.sidetoc {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width:1440px) {
|
||||
main {
|
||||
position: relative;
|
||||
}
|
||||
.sidetoc {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
left: calc(100% + (var(--content-max-width))/4 - 140px);
|
||||
position: absolute;
|
||||
}
|
||||
.pagetoc {
|
||||
position: fixed;
|
||||
width: 200px;
|
||||
height: calc(100vh - var(--menu-bar-height) - 0.67em * 4);
|
||||
overflow: auto;
|
||||
}
|
||||
.pagetoc a {
|
||||
border-left: 1px solid var(--sidebar-bg);
|
||||
color: var(--fg) !important;
|
||||
display: block;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
padding-left: 10px;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
}
|
||||
.pagetoc a:hover,
|
||||
.pagetoc a.active {
|
||||
background: var(--sidebar-bg);
|
||||
color: var(--sidebar-fg) !important;
|
||||
}
|
||||
.pagetoc .active {
|
||||
background: var(--sidebar-bg);
|
||||
color: var(--sidebar-fg);
|
||||
}
|
||||
.pagetoc .pagetoc-H2 {
|
||||
padding-left: 20px;
|
||||
}
|
||||
.pagetoc .pagetoc-H3 {
|
||||
padding-left: 40px;
|
||||
}
|
||||
.pagetoc .pagetoc-H4 {
|
||||
padding-left: 60px;
|
||||
}
|
||||
.pagetoc .pagetoc-H5 {
|
||||
display: none;
|
||||
}
|
||||
.pagetoc .pagetoc-H6 {
|
||||
display: none;
|
||||
}
|
||||
}
|
49
docs/theme/pagetoc.js
vendored
Normal file
49
docs/theme/pagetoc.js
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
// Un-active everything when you click it
|
||||
Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el) {
|
||||
el.addEventHandler("click", function() {
|
||||
Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el) {
|
||||
el.classList.remove("active");
|
||||
});
|
||||
el.classList.add("active");
|
||||
});
|
||||
});
|
||||
|
||||
var updateFunction = function() {
|
||||
|
||||
var id;
|
||||
var elements = document.getElementsByClassName("header");
|
||||
Array.prototype.forEach.call(elements, function(el) {
|
||||
if (window.pageYOffset >= el.offsetTop) {
|
||||
id = el;
|
||||
}
|
||||
});
|
||||
|
||||
Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el) {
|
||||
el.classList.remove("active");
|
||||
});
|
||||
if (!id) return;
|
||||
Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el) {
|
||||
if (id.href.localeCompare(el.href) == 0) {
|
||||
el.classList.add("active");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Populate sidebar on load
|
||||
window.addEventListener('load', function() {
|
||||
var pagetoc = document.getElementsByClassName("pagetoc")[0];
|
||||
var elements = document.getElementsByClassName("header");
|
||||
Array.prototype.forEach.call(elements, function (el) {
|
||||
var link = document.createElement("a");
|
||||
link.appendChild(document.createTextNode(el.text));
|
||||
link.href = el.href;
|
||||
link.classList.add("pagetoc-" + el.parentElement.tagName);
|
||||
pagetoc.appendChild(link);
|
||||
});
|
||||
updateFunction.call();
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Handle active elements on scroll
|
||||
window.addEventListener("scroll", updateFunction);
|
29
libs/Difficult_Rocket_rs/src/Cargo.lock
generated
29
libs/Difficult_Rocket_rs/src/Cargo.lock
generated
@ -119,7 +119,6 @@ name = "difficult_rocket_rs"
|
||||
version = "0.2.5"
|
||||
dependencies = [
|
||||
"pyo3",
|
||||
"quick-xml",
|
||||
"rapier2d-f64",
|
||||
"serde",
|
||||
"serde-xml-rs",
|
||||
@ -146,9 +145,9 @@ checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.139"
|
||||
version = "0.2.140"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
|
||||
checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
|
||||
|
||||
[[package]]
|
||||
name = "libm"
|
||||
@ -184,12 +183,6 @@ dependencies = [
|
||||
"rawpointer",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.8.0"
|
||||
@ -408,16 +401,6 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quick-xml"
|
||||
version = "0.27.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.23"
|
||||
@ -492,9 +475,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.153"
|
||||
version = "1.0.154"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3a382c72b4ba118526e187430bb4963cd6d55051ebf13d9b25574d379cc98d20"
|
||||
checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
@ -513,9 +496,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.153"
|
||||
version = "1.0.154"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ef476a5790f0f6decbc66726b6e5d63680ed518283e64c7df415989d880954f"
|
||||
checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -17,12 +17,12 @@ opt-level = 3
|
||||
[profile.release]
|
||||
codegen-units = 1
|
||||
|
||||
[dependencies.quick-xml]
|
||||
version = "0.27.1"
|
||||
features = ["serialize"]
|
||||
#[dependencies.quick-xml]
|
||||
#version = "0.27.1"
|
||||
#features = ["serialize"]
|
||||
|
||||
[dependencies.serde]
|
||||
version = "1.0.152"
|
||||
version = "1.0.154"
|
||||
features = ["derive"]
|
||||
|
||||
[dependencies.xml-rs]
|
||||
|
@ -176,6 +176,7 @@ pub mod camera {
|
||||
|
||||
pub mod screen {
|
||||
use pyo3::prelude::*;
|
||||
use crate::types::sr1::SR1PartData;
|
||||
|
||||
#[pyclass]
|
||||
#[pyo3(name = "PartFrame_rs")]
|
||||
@ -183,7 +184,7 @@ pub mod screen {
|
||||
pub box_size: i32,
|
||||
pub width: i64,
|
||||
pub height: i64,
|
||||
// pub frame_box: Vec<Vec<>>
|
||||
pub frame_box: Vec<Vec<SR1PartData>>
|
||||
}
|
||||
|
||||
#[pymethods]
|
||||
|
Loading…
Reference in New Issue
Block a user