提交 7717d958 编辑于 作者: AzurCrystal's avatar AzurCrystal
浏览文件

Merge remote-tracking branch 'upstream/master'

...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
name: Bug report / Bug 反馈 name: Bug report / Bug 反馈
about: Create a report to help us improve about: Create a report to help us improve
title: "[BUG] 标题" title: "[BUG] 标题"
labels: '' labels: 'bug'
assignees: '' assignees: ''
--- ---
首先通过 issues 的搜索功能,查找这个 bug 是否已经被反馈过。 首先通过 issues 的搜索功能,查找这个 bug 是否已经被反馈过。
请仔细描述这个 bug 是如何出现的,并附上 bug 出现时的截图。 请仔细描述这个 bug 是如何出现的,并附上 bug 出现时的截图。(如果网页问题,请附上浏览器控制台错误信息)
最好能同时附上控制台的报错信息、版本信息。 最好能同时附上控制台的报错信息、版本信息。
请删除上面的内容并开始描述问题。 请删除上面的内容并开始描述问题。
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
name: Feature request / 建议 name: Feature request / 建议
about: Suggest an idea for this project about: Suggest an idea for this project
title: "[Feature request] 标题" title: "[Feature request] 标题"
labels: '' labels: 'enhancement'
assignees: '' assignees: ''
--- ---
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
name: Question / 使用问题 name: Question / 使用问题
about: Question about the usage about: Question about the usage
title: "[Question] 标题" title: "[Question] 标题"
labels: '' labels: 'question'
assignees: '' assignees: ''
--- ---
首先查看文档中 FAQ,确认这个问题不在常见问题里。 首先查看文档中 FAQ,确认这个问题不在常见问题里。
请仔细描述使用场景、你进行的操作、你期望的表现与实际表现不一致的地方。 请仔细描述使用场景、你进行的操作、你期望的表现与实际表现不一致的地方。
请删除上面的内容并开始描述内容。 请删除上面的内容并开始描述内容。
...@@ -7,6 +7,7 @@ src/client/*/ ...@@ -7,6 +7,7 @@ src/client/*/
!src/client/ybplugins/ !src/client/ybplugins/
!src/client/yybplugins/ !src/client/yybplugins/
!src/client/public/ !src/client/public/
!src/client/packedfiles/
src/client/.* src/client/.*
src/client/*.json src/client/*.json
!src/client/default_* !src/client/default_*
...@@ -15,7 +16,6 @@ src/client/*.db ...@@ -15,7 +16,6 @@ src/client/*.db
src/client/*.db-* src/client/*.db-*
src/client/*.ics src/client/*.ics
src/client/*.pid src/client/*.pid
src/client/*.spec
src/client/test.py src/client/test.py
.env .env
cqhttp cqhttp
......
{ {
"stable": { "stable": {
"version": 3458, "version": 3477,
"url": "http://img.yobot.xyz/yobot/yobot3458.zip" "url": "http://img.yobot.xyz/yobot/yobot3477.zip"
} }
} }
\ No newline at end of file
...@@ -11,7 +11,8 @@ head: ...@@ -11,7 +11,8 @@ head:
href: /logo/logo.ico href: /logo/logo.ico
themeConfig: themeConfig:
logo: /logo/logo.png logo: /logo/logo.png
search: false search: true
searchMaxSuggestions: 10
smoothScroll: true smoothScroll: true
repo: https://github.com/yuudi/yobot repo: https://github.com/yuudi/yobot
docsDir: documents docsDir: documents
...@@ -58,6 +59,8 @@ themeConfig: ...@@ -58,6 +59,8 @@ themeConfig:
link: /project/open-source/ link: /project/open-source/
- text: 更新日志 - text: 更新日志
link: /project/changelog/ link: /project/changelog/
- text: 项目贡献者
link: /project/contributors/
- text: 待办事项 - text: 待办事项
link: https://github.com/yuudi/yobot/projects/1 link: https://github.com/yuudi/yobot/projects/1
plugins: plugins:
......
...@@ -12,6 +12,7 @@ QQ群: ...@@ -12,6 +12,7 @@ QQ群:
1044314369(满) 1044314369(满)
1067699252(满) 1067699252(满)
774394459 774394459
<!-- 1087420601 -->
[项目贡献者](./project/contributors.md) [项目贡献者](./project/contributors.md)
[更新日志](./project/changelog.md) [更新日志](./project/changelog.md)
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
| (自动:新闻推送) | 推送最新的新闻 | | (自动:新闻推送) | 推送最新的新闻 |
| 日程(今日/明日/x月x日)(可自动) | 查看活动日程 | | 日程(今日/明日/x月x日)(可自动) | 查看活动日程 |
| 日程表 | 查看一周日程 | | 日程表 | 查看一周日程 |
| 挖矿计算 +当前名次 | 计算剩余可获得的奖励钻石 |
## 娱乐类 ## 娱乐类
......
# 更新日志 # 更新日志
## 3.6.2
- 按日计算的统计图表([#99](https://github.com/yuudi/yobot/pull/99)
- 优化 Dockerfile([#97](https://github.com/yuudi/yobot/pull/97)
- 挖矿计算([#103](https://github.com/yuudi/yobot/pull/103)
## 3.6.1 ## 3.6.1
- 竞技场查询支持pcrdfans - 竞技场查询支持pcrdfans
...@@ -9,11 +15,9 @@ ...@@ -9,11 +15,9 @@
## 3.6.0 ## 3.6.0
- 公会战数据多存档 - 公会战数据多存档
- 开放统计api与数据下载 - 开放统计
- 统计:出刀顺序表([#75](https://github.com/yuudi/yobot/pull/75) - 统计:出刀顺序表([#75](https://github.com/yuudi/yobot/pull/75)
- 统计:出刀统计图([#77](https://github.com/yuudi/yobot/pull/77)[#79](https://github.com/yuudi/yobot/pull/79) - 统计:出刀统计图([#77](https://github.com/yuudi/yobot/pull/77)[#79](https://github.com/yuudi/yobot/pull/79)
- 自动更新时有反馈
- 允许删除公会
## 3.5 ## 3.5
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
[@winrey](https://github.com/winrey) [@winrey](https://github.com/winrey)
[@yyuueexxiinngg](https://github.com/yyuueexxiinngg) [@yyuueexxiinngg](https://github.com/yyuueexxiinngg)
[@AzurCrystal](https://github.com/AzurCrystal)
## Bug Report ## Bug Report
......
...@@ -2,7 +2,23 @@ ...@@ -2,7 +2,23 @@
## 运行环境 ## 运行环境
python最低要求为`python3.6` python最低要求为 `python3.6`
## 打包
安装 `pyinstaller`
```sh
pip install pyinstaller
```
打包程序
```sh
pyinstaller main.spec
```
`dist` 中找到目标文件
## 扩展 ## 扩展
......
...@@ -15,14 +15,17 @@ loop=true ...@@ -15,14 +15,17 @@ loop=true
while $loop while $loop
do do
loop=false loop=false
python3 main.py -g {} -g
if [ -f .YOBOT_RESTART ] if [ -f .YOBOT_RESTART ]
then then
loop=true loop=true
rm .YOBOT_RESTART rm .YOBOT_RESTART
fi fi
done done
""") """.format(
'./yobot' if '_MEIPASS' in dir(sys) else 'python3 main.py'
)
)
print('请通过"sh yobotg.sh"启动') print('请通过"sh yobotg.sh"启动')
sys.exit() sys.exit()
if os.path.exists('.YOBOT_RESTART'): if os.path.exists('.YOBOT_RESTART'):
......
# -*- mode: python ; coding: utf-8 -*-
import os
import site
sitepackages = site.getsitepackages()
def sitepackages_location(package_name):
for sp in sitepackages:
if os.path.exists(os.path.join(sp,package_name)):
return sp
raise RuntimeError(f"{package_name} not found")
block_cipher = None
a = Analysis(
['main.py'],
pathex=['.'],
binaries=[],
datas=[
("packedfiles", "packedfiles"),
("public", "public"),
(f"{sitepackages_location('opencc')}/opencc/config", "opencc/config"),
(f"{sitepackages_location('opencc')}/opencc/dictionary", "opencc/dictionary"),
],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='yobot',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
icon='./logo.ico',
)
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
{#- <el-button type="primary" @click="new_data_slot" icon="el-icon-document-add" size="mini">新建档案</el-button> -#} {#- <el-button type="primary" @click="new_data_slot" icon="el-icon-document-add" size="mini">新建档案</el-button> -#}
<el-button type="primary" @click="get_data_slot_record_count();switchVisible = true" icon="el-icon-receiving" size="mini">切换档案</el-button> <el-button type="primary" @click="get_data_slot_record_count();switchVisible = true" icon="el-icon-receiving" size="mini">切换档案</el-button>
<el-dialog title="切换档案" :visible.sync="switchVisible"> <el-dialog title="切换档案" :visible.sync="switchVisible">
<el-alert title="你可以切换存档编号,以记录不同期的公会战数据,这样能保留历史数据,也可以在统计里随时查看" type="info" close-text="知道了"></el-alert>
<ul> <ul>
<li v-for="item in data_slot_record_count"> <li v-for="item in data_slot_record_count">
[[ item.battle_id ]]号存档:[[ item.record_count ]]条记录 [[ item.battle_id ]]号存档:[[ item.record_count ]]条记录
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
<!--以后有用--> <!--以后有用-->
<el-date-picker <el-date-picker
v-model="range" v-model="range"
v-if="false"
type="daterange" type="daterange"
unlink-panels unlink-panels
range-separator="至" range-separator="至"
...@@ -46,17 +45,17 @@ ...@@ -46,17 +45,17 @@
:picker-options="pickerOptions" :picker-options="pickerOptions"
> >
</el-date-picker> </el-date-picker>
<el-tabs v-model="selecting_tab"> <el-tabs v-model="selectingTab">
<el-tab-pane label="整体数据" name="total"> <el-tab-pane label="整体数据" name="total">
<div> <div>
<p> <p>
<a>共[[ members.length ]]人,[[ challenge_count(total_damage, true) ]]刀</a> <a>共[[ members.length ]]人,[[ challengeCount(totalDamage, true) ]]刀</a>
<el-checkbox style="margin-left: 20px;" v-model="contain_tail_and_continue"></el-checkbox> <el-checkbox style="margin-left: 20px;" v-model="containTailAndContinue"></el-checkbox>
<a>刀均伤害中计入尾刀和剩余刀</a> <a>刀均伤害中计入尾刀和剩余刀</a>
<a style="margin-left: 20px">&nbsp;</a> <a style="margin-left: 20px">&nbsp;</a>
<a class="digit6">十万</a> <a class="digit7">百万</a> <a class="digit8">千万</a> <a class="digit9">亿</a> <a class="digit6">十万</a> <a class="digit7">百万</a> <a class="digit8">千万</a> <a class="digit9">亿</a>
</p> </p>
<el-table v-loading="is_loading" :data="global_table_data" style="width: 100%" stripe border :default-sort = "{prop: 'sum_dmg', order: 'descending'}"> <el-table v-loading="isLoading" :data="globalTableData" style="width: 100%" stripe border :default-sort = "{prop: 'sumDmg', order: 'descending'}">
<el-table-column prop="qqid" label="QQ号" width="125" sortable ></el-table-column> <el-table-column prop="qqid" label="QQ号" width="125" sortable ></el-table-column>
<el-table-column prop="nickname" label="昵称" width="200" sortable ></el-table-column> <el-table-column prop="nickname" label="昵称" width="200" sortable ></el-table-column>
<el-table-column prop="count" width="120" sortable > <el-table-column prop="count" width="120" sortable >
...@@ -65,24 +64,24 @@ ...@@ -65,24 +64,24 @@
<el-popover placement="top" effect="light" trigger="hover">刀数=正常刀+(补偿刀+尾刀)/2<i class="el-icon-question" slot="reference"></i></el-popover> <el-popover placement="top" effect="light" trigger="hover">刀数=正常刀+(补偿刀+尾刀)/2<i class="el-icon-question" slot="reference"></i></el-popover>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="count_tail" label="尾刀" width="120" sortable ></el-table-column> <el-table-column prop="countTail" label="尾刀" width="120" sortable ></el-table-column>
<el-table-column prop="count_continue" label="补偿刀" width="120" sortable ></el-table-column> <el-table-column prop="countContinue" label="补偿刀" width="120" sortable ></el-table-column>
<el-table-column prop="avg_dmg" width="270" sortable sort-by="avg_dmg" > <el-table-column prop="avgDmg" width="270" sortable sort-by="avgDmg" >
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<a>刀均伤害</a> <a>刀均伤害</a>
<el-popover v-if="!contain_tail_and_continue" placement="top" effect="light" trigger="hover">当前刀均伤害未计入尾刀和补偿刀<i class="el-icon-question" slot="reference"></i></el-popover> <el-popover v-if="!containTailAndContinue" placement="top" effect="light" trigger="hover">当前刀均伤害未计入尾刀和补偿刀<i class="el-icon-question" slot="reference"></i></el-popover>
<el-popover v-if="contain_tail_and_continue" placement="top" effect="light" trigger="hover">当前刀均伤害已计入尾刀和补偿刀<i class="el-icon-question" slot="reference"></i></el-popover> <el-popover v-if="containTailAndContinue" placement="top" effect="light" trigger="hover">当前刀均伤害已计入尾刀和补偿刀<i class="el-icon-question" slot="reference"></i></el-popover>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<a :class='"digit" + scope.row.avg_dmg.toString().length'>[[scope.row.avg_dmg]]</a> <a :class='"digit" + scope.row.avgDmg.toString().length'>[[scope.row.avgDmg]]</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="sum_dmg" label="总伤害" width="270" sortable sort-by="sum_dmg" > <el-table-column prop="sumDmg" label="总伤害" width="270" sortable sort-by="sumDmg" >
<template slot-scope="scope"> <template slot-scope="scope">
<a :class='"digit" + scope.row.sum_dmg.toString().length'>[[scope.row.sum_dmg]]</a> <a :class='"digit" + scope.row.sumDmg.toString().length'>[[scope.row.sumDmg]]</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="sum_dmg_rate" label="总伤害占比" min-width="150" sortable ></el-table-column> <el-table-column prop="sumDmgRate" label="总伤害占比" min-width="150" sortable ></el-table-column>
</el-table> </el-table>
</div> </div>
</el-tab-pane> </el-tab-pane>
...@@ -90,30 +89,30 @@ ...@@ -90,30 +89,30 @@
<div> <div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 100%"> <div style="width: 100%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="miss_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="missChart"></div>
</div> </div>
</div> </div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="last_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="lastChart"></div>
</div> </div>
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="total_time_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="totalTimeChart"></div>
</div> </div>
</div> </div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 100%"> <div style="width: 100%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="boss_blood_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="bossBloodChart"></div>
</div> </div>
</div> </div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 100%"> <div style="width: 100%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="boss_hit_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="bossHitChart"></div>
</div> </div>
</div> </div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 100%"> <div style="width: 100%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="total_damage_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="totalDamageChart"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -124,7 +123,7 @@ ...@@ -124,7 +123,7 @@
<div style="width: 50%;"> <div style="width: 50%;">
<p> <p>
<a>选择玩家:</a> <a>选择玩家:</a>
<el-select v-model="selecting_qqid" placeholder="请选择"> <el-select v-model="selectingQQid" placeholder="请选择">
<el-option <el-option
v-for="member in members" v-for="member in members"
:key="member.qqid" :key="member.qqid"
...@@ -132,26 +131,26 @@ ...@@ -132,26 +131,26 @@
:value="member.qqid"> :value="member.qqid">
</el-option> </el-option>
</el-select> </el-select>
<el-checkbox style="margin-left: 20px;" v-model="contain_tail_and_continue"></el-checkbox> <el-checkbox style="margin-left: 20px;" v-model="containTailAndContinue"></el-checkbox>
<a>刀均伤害中计入尾刀和剩余刀</a> <a>刀均伤害中计入尾刀和剩余刀</a>
</p> </p>
<div style="width: 80%;"> <div style="width: 80%;">
<el-table :data="player_data.damage" :show-header="false"> <el-table :data="playerData.damage" :show-header="false">
<el-table-column prop="label" label=""></el-table-column> <el-table-column prop="label" label=""></el-table-column>
<el-table-column prop="value" label=""></el-table-column> <el-table-column prop="value" label=""></el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<div v-show="selecting_tab != 'total'" style="width: 50%"> <div v-show="selectingTab != 'total'" style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="sum_dmg_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="sumDmgChart"></div>
</div> </div>
</div> </div>
<div style="display: flex; height: 450px"> <div style="display: flex; height: 450px">
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="personal_progress_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="personalProgressChart"></div>
</div> </div>
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="personal_time_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="personalTimeChart"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -159,10 +158,10 @@ ...@@ -159,10 +158,10 @@
</el-tabs> </el-tabs>
<div style="display: flex; height: 400px"> <div style="display: flex; height: 400px">
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 100%;" id="boss_dmg_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 100%;" id="bossDmgChart"></div>
</div> </div>
<div style="width: 50%"> <div style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 100%;" id="challenge_chart"></div> <div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 100%;" id="challengeChart"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -170,7 +169,7 @@ ...@@ -170,7 +169,7 @@
</body> </body>
<script>var csrf_token = "{{ session['csrf_token'] }}"; var qqid = "{{ session['yobot_user'] }}"</script> <script>var csrfToken = "{{ session['csrf_token'] }}"; var qqid = "{{ session['yobot_user'] }}"</script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.7.0/echarts.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.7.0/echarts.min.js"></script>
<script src="{{ url_for('yobot_static', filename='clan/statistics/statistics2.js') }}"></script> <script src="{{ url_for('yobot_static', filename='clan/statistics/statistics2.js') }}"></script>
......
支持 Markdown
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册