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

Merge remote-tracking branch 'upstream/master'

......@@ -2,13 +2,13 @@
name: Bug report / Bug 反馈
about: Create a report to help us improve
title: "[BUG] 标题"
labels: ''
labels: 'bug'
assignees: ''
---
首先通过 issues 的搜索功能,查找这个 bug 是否已经被反馈过。
请仔细描述这个 bug 是如何出现的,并附上 bug 出现时的截图。
请仔细描述这个 bug 是如何出现的,并附上 bug 出现时的截图。(如果网页问题,请附上浏览器控制台错误信息)
最好能同时附上控制台的报错信息、版本信息。
请删除上面的内容并开始描述问题。
......@@ -2,7 +2,7 @@
name: Feature request / 建议
about: Suggest an idea for this project
title: "[Feature request] 标题"
labels: ''
labels: 'enhancement'
assignees: ''
---
......
......@@ -2,7 +2,7 @@
name: Question / 使用问题
about: Question about the usage
title: "[Question] 标题"
labels: ''
labels: 'question'
assignees: ''
---
......
......@@ -7,6 +7,7 @@ src/client/*/
!src/client/ybplugins/
!src/client/yybplugins/
!src/client/public/
!src/client/packedfiles/
src/client/.*
src/client/*.json
!src/client/default_*
......@@ -15,7 +16,6 @@ src/client/*.db
src/client/*.db-*
src/client/*.ics
src/client/*.pid
src/client/*.spec
src/client/test.py
.env
cqhttp
......
{
"stable": {
"version": 3458,
"url": "http://img.yobot.xyz/yobot/yobot3458.zip"
"version": 3477,
"url": "http://img.yobot.xyz/yobot/yobot3477.zip"
}
}
\ No newline at end of file
......@@ -11,7 +11,8 @@ head:
href: /logo/logo.ico
themeConfig:
logo: /logo/logo.png
search: false
search: true
searchMaxSuggestions: 10
smoothScroll: true
repo: https://github.com/yuudi/yobot
docsDir: documents
......@@ -58,6 +59,8 @@ themeConfig:
link: /project/open-source/
- text: 更新日志
link: /project/changelog/
- text: 项目贡献者
link: /project/contributors/
- text: 待办事项
link: https://github.com/yuudi/yobot/projects/1
plugins:
......
......@@ -12,6 +12,7 @@ QQ群:
1044314369(满)
1067699252(满)
774394459
<!-- 1087420601 -->
[项目贡献者](./project/contributors.md)
[更新日志](./project/changelog.md)
......
......@@ -58,6 +58,7 @@
| (自动:新闻推送) | 推送最新的新闻 |
| 日程(今日/明日/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
- 竞技场查询支持pcrdfans
......@@ -9,11 +15,9 @@
## 3.6.0
- 公会战数据多存档
- 开放统计api与数据下载
- 开放统计
- 统计:出刀顺序表([#75](https://github.com/yuudi/yobot/pull/75)
- 统计:出刀统计图([#77](https://github.com/yuudi/yobot/pull/77)[#79](https://github.com/yuudi/yobot/pull/79)
- 自动更新时有反馈
- 允许删除公会
## 3.5
......
......@@ -17,6 +17,7 @@
[@winrey](https://github.com/winrey)
[@yyuueexxiinngg](https://github.com/yyuueexxiinngg)
[@AzurCrystal](https://github.com/AzurCrystal)
## Bug Report
......
......@@ -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
while $loop
do
loop=false
python3 main.py -g
{} -g
if [ -f .YOBOT_RESTART ]
then
loop=true
rm .YOBOT_RESTART
fi
done
""")
""".format(
'./yobot' if '_MEIPASS' in dir(sys) else 'python3 main.py'
)
)
print('请通过"sh yobotg.sh"启动')
sys.exit()
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 @@
{#- <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-dialog title="切换档案" :visible.sync="switchVisible">
<el-alert title="你可以切换存档编号,以记录不同期的公会战数据,这样能保留历史数据,也可以在统计里随时查看" type="info" close-text="知道了"></el-alert>
<ul>
<li v-for="item in data_slot_record_count">
[[ item.battle_id ]]号存档:[[ item.record_count ]]条记录
......
......@@ -37,7 +37,6 @@
<!--以后有用-->
<el-date-picker
v-model="range"
v-if="false"
type="daterange"
unlink-panels
range-separator="至"
......@@ -46,17 +45,17 @@
:picker-options="pickerOptions"
>
</el-date-picker>
<el-tabs v-model="selecting_tab">
<el-tabs v-model="selectingTab">
<el-tab-pane label="整体数据" name="total">
<div>
<p>
<a>共[[ members.length ]]人,[[ challenge_count(total_damage, true) ]]刀</a>
<el-checkbox style="margin-left: 20px;" v-model="contain_tail_and_continue"></el-checkbox>
<a>共[[ members.length ]]人,[[ challengeCount(totalDamage, true) ]]刀</a>
<el-checkbox style="margin-left: 20px;" v-model="containTailAndContinue"></el-checkbox>
<a>刀均伤害中计入尾刀和剩余刀</a>
<a style="margin-left: 20px">&nbsp;</a>
<a class="digit6">十万</a> <a class="digit7">百万</a> <a class="digit8">千万</a> <a class="digit9">亿</a>
</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="nickname" label="昵称" width="200" sortable ></el-table-column>
<el-table-column prop="count" width="120" sortable >
......@@ -65,24 +64,24 @@
<el-popover placement="top" effect="light" trigger="hover">刀数=正常刀+(补偿刀+尾刀)/2<i class="el-icon-question" slot="reference"></i></el-popover>
</template>
</el-table-column>
<el-table-column prop="count_tail" label="尾刀" width="120" sortable ></el-table-column>
<el-table-column prop="count_continue" label="补偿刀" width="120" sortable ></el-table-column>
<el-table-column prop="avg_dmg" width="270" sortable sort-by="avg_dmg" >
<el-table-column prop="countTail" label="尾刀" width="120" sortable ></el-table-column>
<el-table-column prop="countContinue" label="补偿刀" width="120" sortable ></el-table-column>
<el-table-column prop="avgDmg" width="270" sortable sort-by="avgDmg" >
<template slot="header" slot-scope="scope">
<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="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="containTailAndContinue" placement="top" effect="light" trigger="hover">当前刀均伤害已计入尾刀和补偿刀<i class="el-icon-question" slot="reference"></i></el-popover>
</template>
<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>
</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">
<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>
</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>
</div>
</el-tab-pane>
......@@ -90,30 +89,30 @@
<div>
<div style="display: flex; height: 450px">
<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 style="display: flex; height: 450px">
<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 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 style="display: flex; height: 450px">
<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 style="display: flex; height: 450px">
<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 style="display: flex; height: 450px">
<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>
......@@ -124,7 +123,7 @@
<div style="width: 50%;">
<p>
<a>选择玩家:</a>
<el-select v-model="selecting_qqid" placeholder="请选择">
<el-select v-model="selectingQQid" placeholder="请选择">
<el-option
v-for="member in members"
:key="member.qqid"
......@@ -132,26 +131,26 @@
:value="member.qqid">
</el-option>
</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>
</p>
<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="value" label=""></el-table-column>
</el-table>
</div>
</div>
<div v-show="selecting_tab != 'total'" style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="sum_dmg_chart"></div>
<div v-show="selectingTab != 'total'" style="width: 50%">
<div style="margin: 10px; padding: 20px; border: 1px solid #EBEEF5; height: 400px;" id="sumDmgChart"></div>
</div>
</div>
<div style="display: flex; height: 450px">
<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 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>
......@@ -159,10 +158,10 @@
</el-tabs>
<div style="display: flex; height: 400px">
<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 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>
......@@ -170,7 +169,7 @@
</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="{{ 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.
先完成此消息的编辑!
想要评论请 注册