mirror of
https://github.com/ngfchl/ptools
synced 2023-07-10 13:41:22 +08:00
点击已签到按钮可查看签到历史
This commit is contained in:
@@ -27,6 +27,7 @@ urlpatterns = [
|
||||
path(r'sign_in_api', views.sign_in_api, name='sign_in_api'),
|
||||
path(r'update_site_api', views.update_site_api, name='update_site_api'),
|
||||
path(r'edit_site_api', views.edit_site_api, name='edit_site_api'),
|
||||
path(r'show_sign_api', views.show_sign_api, name='show_sign_api'),
|
||||
path(r'site_sort_api', views.site_sort_api, name='site_sort_api'),
|
||||
path(r'get_log_list', views.get_log_list, name='get_log_list'),
|
||||
path(r'show_log_list', views.show_log_list, name='show_log_list'),
|
||||
|
||||
@@ -768,7 +768,6 @@ def site_data_api(request):
|
||||
# } for diff in diff_list]
|
||||
|
||||
return JsonResponse(data=CommonResponse.success(
|
||||
# msg='全站数据展示功能还未完成,敬请期待!'
|
||||
data={
|
||||
'date_list': date_list,
|
||||
'diff': diff_list
|
||||
@@ -826,6 +825,7 @@ def sign_in_api(request):
|
||||
).to_dict(), safe=False)
|
||||
my_site = MySite.objects.filter(id=my_site_id).first()
|
||||
sign_state = pt_spider.sign_in(my_site)
|
||||
logger.info(sign_state)
|
||||
# if sign_state.code == StatusCodeEnum.OK.code:
|
||||
# return JsonResponse(data=CommonResponse.success(
|
||||
# msg=sign_state.msg
|
||||
@@ -895,6 +895,39 @@ def edit_site_api(request):
|
||||
).to_dict(), safe=False)
|
||||
|
||||
|
||||
def show_sign_api(request):
|
||||
try:
|
||||
my_site_id = request.GET.get('id')
|
||||
logger.info(f'ID值:{my_site_id}')
|
||||
my_site = MySite.objects.filter(id=my_site_id).first()
|
||||
sign_in_list = my_site.signin_set.all().order_by('-pk')
|
||||
sign_in_list = [
|
||||
{'created_at': sign_in.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'sign_in_info': sign_in.sign_in_info}
|
||||
for sign_in in sign_in_list]
|
||||
site = {
|
||||
'id': my_site.id,
|
||||
'name': my_site.site.name,
|
||||
'icon': my_site.site.logo,
|
||||
'url': my_site.site.url,
|
||||
# 'class': my_site.my_level,
|
||||
# 'seeding': my_site.seed,
|
||||
# 'leeching': my_site.leech,
|
||||
'last_active': datetime.strftime(my_site.updated_at, '%Y年%m月%d日%H:%M:%S'),
|
||||
}
|
||||
return JsonResponse(data=CommonResponse.success(
|
||||
data={
|
||||
'site': site,
|
||||
'sign_in_list': sign_in_list
|
||||
}
|
||||
).to_dict(), safe=False)
|
||||
except Exception as e:
|
||||
logger.error(f'签到历史数据获取失败:{e}')
|
||||
logger.error(traceback.format_exc(limit=3))
|
||||
return JsonResponse(data=CommonResponse.error(
|
||||
msg=f'签到历史数据获取失败:{e}'
|
||||
).to_dict(), safe=False)
|
||||
|
||||
|
||||
def get_log_list(request):
|
||||
path = os.path.join(BASE_DIR, 'db')
|
||||
logger.info(path)
|
||||
|
||||
@@ -811,7 +811,7 @@ class PtSpider:
|
||||
logger.info(resp.text)
|
||||
return CommonResponse.success(
|
||||
status=StatusCodeEnum.OK,
|
||||
msg=resp.text.encode('utf8')
|
||||
msg=resp.content.decode('utf8')
|
||||
)
|
||||
except Exception as e:
|
||||
# 打印异常详细信息
|
||||
|
||||
@@ -245,8 +245,8 @@
|
||||
</el-button>
|
||||
<el-tooltip class="item" effect="dark" v-if="site.sign_in_state" content="已签到"
|
||||
placement="top">
|
||||
<el-button type="success" icon="el-icon-success" plain size="mini">
|
||||
{# <span style="font-size: 5px;">已签到</span>#}
|
||||
<el-button type="success" icon="el-icon-success" plain size="mini"
|
||||
@click="showSignIn(site.id)">
|
||||
</el-button>
|
||||
</el-tooltip>
|
||||
|
||||
@@ -347,7 +347,6 @@
|
||||
</div>
|
||||
|
||||
<charts ref="charts" style="height: 700px;margin-top: 5px;" :option="option"></charts>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -358,11 +357,45 @@
|
||||
append-to-body
|
||||
style="background-color: rgba(227, 229, 229, 0.6);">
|
||||
<div slot="title" style="text-align: center;line-height: 35px;">
|
||||
<h3><span v-text="site.name"></span>--历史数据</h3>
|
||||
|
||||
|
||||
<h3><span v-text="site.name"></span></h3>
|
||||
</div>
|
||||
<div style="width: 95%;text-align: center;margin: 10px auto;">
|
||||
<div v-if="showSignList" style="width: 90%;margin: auto;">
|
||||
<el-timeline>
|
||||
<el-timeline-item
|
||||
v-for="(signIn, index) in signInList"
|
||||
:key="index"
|
||||
{# :icon="activity.icon" #}
|
||||
{# :type="activity.type" #}
|
||||
color="#0bbd87"
|
||||
{# :size="activity.size" #}
|
||||
placement="top"
|
||||
:timestamp="signIn.created_at">
|
||||
<el-card shadow="hover">
|
||||
<p v-html="signIn.sign_in_info">
|
||||
</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
<div v-if="showSignList" style="width: 90%;margin: auto;">
|
||||
<el-timeline>
|
||||
<el-timeline-item
|
||||
v-for="(signIn, index) in signInList"
|
||||
:key="index"
|
||||
{# :icon="activity.icon" #}
|
||||
{# :type="activity.type" #}
|
||||
color="#0bbd87"
|
||||
{# :size="activity.size" #}
|
||||
placement="top"
|
||||
:timestamp="signIn.created_at">
|
||||
<el-card shadow="hover">
|
||||
<p v-html="signIn.sign_in_info">
|
||||
</p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
<div v-else="showSignList" style="width: 95%;text-align: center;margin: 10px auto;">
|
||||
<div style="margin-bottom: 5px;">
|
||||
<el-radio-group v-model="dataLength" size="mini"
|
||||
{# @change="showAllIncrementHistory">#}
|
||||
@@ -402,6 +435,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
</el-drawer>
|
||||
</div>
|
||||
|
||||
@@ -432,6 +466,8 @@
|
||||
showAllHistory: false,
|
||||
incrementData: {},
|
||||
dataLength: -7,
|
||||
showSignList: false,
|
||||
signInList: [],
|
||||
}
|
||||
},
|
||||
beforeMount() {
|
||||
@@ -523,6 +559,35 @@
|
||||
});
|
||||
})
|
||||
},
|
||||
showSignIn(id) {
|
||||
axios.get(
|
||||
"{% url 'show_sign_api' %}" + `?id=${id}`
|
||||
).then(res => {
|
||||
console.log('获取数据成功', res.data.data)
|
||||
if (res.data.code === 0) {
|
||||
this.signInList = res.data.data.sign_in_list
|
||||
this.site = res.data.data.site
|
||||
this.showSiteChart = true
|
||||
this.showSignList = true
|
||||
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.data.msg
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: res.data.msg
|
||||
});
|
||||
}
|
||||
}).catch(res => {
|
||||
console.log('签到失败', res)
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '签到失败!' + res
|
||||
});
|
||||
})
|
||||
},
|
||||
updateSite(id) {
|
||||
axios.get(
|
||||
"{% url 'update_site_api' %}" + '?id=' + id
|
||||
@@ -592,6 +657,7 @@
|
||||
{#this.setPie()#}
|
||||
{#this.setCard()#}
|
||||
this.incrementData = res.data.data
|
||||
this.showSignList = false
|
||||
id == 0 ? this.showAllIncrementHistory() : this.setLine()
|
||||
} else {
|
||||
this.$message({
|
||||
|
||||
Reference in New Issue
Block a user