获取公告增加获取公告详情

This commit is contained in:
ngfchl
2023-01-16 17:39:11 +08:00
parent 7d54814978
commit 9443bd2e87
6 changed files with 492 additions and 272 deletions

270
pt.json

File diff suppressed because it is too large Load Diff

View File

@@ -2233,11 +2233,16 @@ class PtSpider:
})
else:
notice_res = self.send_request(my_site, url=site.url)
notice_res = self.send_request(my_site, url=site.url)
# notice_res = self.send_request(my_site, url=site.url)
logger.info(f'公告信息:{notice_res}')
notice_list = self.parse(notice_res, site.notice_title)
notice_list = ["".join(notice) for notice in
np.array(notice_list).reshape(len(notice_list) // 2, 2)]
content_list = self.parse(
notice_res, site.notice_content
)
notice_list = [f'{title} \n {etree.tostring(content)}' for title, content in
zip(notice_list, content_list)]
logger.info(f'公告信息列表:{notice_list}')
notice = ' \n\n### '.join(notice_list[:notice_count])
message_list += f'## 公告 \n### {notice}'

View File

@@ -158,6 +158,8 @@ class SiteAdmin(admin.ModelAdmin): # instead of ModelAdmin
'mailbox_rule',
'notice_rule',
'message_title',
'notice_title',
'notice_content',
'full_site_free',
'time_join_rule',
'latest_active_rule',

View File

@@ -0,0 +1,29 @@
# Generated by Django 4.1.2 on 2023-01-16 17:28
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('pt_site', '0032_alter_mysite_expires'),
]
operations = [
migrations.AddField(
model_name='site',
name='notice_content',
field=models.CharField(default='//td[@class="text"]/div/a/following-sibling::div/font/font', help_text='获取公告内容', max_length=128, verbose_name='公告内容'),
),
migrations.AlterField(
model_name='mysite',
name='expires',
field=models.DateTimeField(default=datetime.datetime(2023, 1, 16, 17, 43, 42, 327379), help_text='COOKIE有效期', verbose_name='COOKIE有效期'),
),
migrations.AlterField(
model_name='site',
name='full_site_free',
field=models.CharField(default='//td/b/a/font[contains(text(),"全站") and contains(text(),"Free")]/text()', help_text='站免信息', max_length=128, verbose_name='站免规则'),
),
]

View File

@@ -247,9 +247,13 @@ class Site(BaseEntity):
default='//td[@class="text"]/div/a//text()',
help_text='获取公告标题',
max_length=128)
notice_content = models.CharField(verbose_name='公告内容',
default='//td[@class="text"]/div/a/following-sibling::div/font/font',
help_text='获取公告内容',
max_length=128)
full_site_free = models.CharField(verbose_name='站免规则',
default='//td/b/a/font[contains(text(),"全站") and contains(text(),"Free")]/text()',
help_text='获取新公告',
help_text='站免信息',
max_length=128)
# HASH RULE
hash_rule = models.CharField(verbose_name='种子HASH',

File diff suppressed because it is too large Load Diff