支持莫妮卡

This commit is contained in:
ngfchl
2022-12-25 18:54:58 +08:00
parent d33764b305
commit c219a84821
3 changed files with 177 additions and 5 deletions

79
pt.json
View File

@@ -6161,6 +6161,85 @@
"hash_rule": "//td/b[contains(text(),\"Hash\")]/following::text()[1]"
}
},
{
"model": "pt_site.site",
"pk": 92,
"fields": {
"created_at": "2022-12-25T17:54:44.854",
"updated_at": "2022-12-25T18:53:48.247",
"url": "https://monikadesign.uk/",
"name": "莫妮卡",
"logo": "https://monikadesign.uk/favicon.ico",
"tracker": "monikadesign.uk",
"sign_in_support": false,
"get_torrent_support": true,
"get_userinfo_support": true,
"search_support": false,
"page_default": "torrents?perPage=100&free[0]=100",
"page_sign_in": "attendance.php",
"page_control_panel": "usercp.php",
"page_detail": "details.php?id={}",
"page_download": "download.php?id={}",
"page_user": "users/{}",
"page_search": "torrents.php?search={}",
"page_leeching": "getusertorrentlistajax.php?userid={}&type=leeching",
"page_uploaded": "getusertorrentlistajax.php?userid={}&type=uploaded",
"page_seeding": "users/{}",
"page_completed": "getusertorrentlistajax.php?userid={}&type=completed",
"page_mybonus": "users/{}/bonus/earnings",
"page_viewfilelist": "viewfilelist.php?id={}",
"page_viewpeerlist": "viewpeerlist.php?id={}",
"sign_in_method": "get",
"sign_in_captcha": false,
"sign_in_params": "{}",
"sign_in_headers": "{}",
"hr": false,
"hr_rate": 2,
"hr_time": 10,
"sp_full": 100.0,
"limit_speed": 100,
"torrents_rule": "//table[@class=\"torrents\"]/tr",
"name_rule": ".//td[@class=\"embedded\"]/a/b/text()",
"title_rule": ".//a[contains(@href,\"detail\")]/parent::td/text()[last()]",
"detail_url_rule": ".//td[@class=\"embedded\"]/a[contains(@href,\"detail\")]/@href",
"category_rule": ".//td[@class=\"rowfollow nowrap\"][1]/a[1]/img/@title",
"poster_rule": ".//table/tr/td[1]/img/@src",
"magnet_url_rule": ".//td/a[contains(@href,\"download.php?id=\")]/@href",
"download_url_rule": ".//a[contains(@href,\"download.php?id=\") and contains(@href,\"passkey\")]/@href",
"size_rule": ".//td[5]/text()",
"hr_rule": ".//table/tr/td/img[@class=\"hitandrun\"]/@title",
"sale_rule": ".//img[contains(@class,\"free\")]/@alt",
"sale_expire_rule": ".//img[contains(@class,\"free\")]/following-sibling::font/span/@title",
"release_rule": ".//td[4]/span/@title",
"seeders_rule": ".//a[contains(@href,\"#seeders\")]/text()",
"leechers_rule": ".//a[contains(@href,\"#leechers\")]/text()",
"completers_rule": ".//a[contains(@href,\"viewsnatches\")]//text()",
"viewfilelist_rule": ".//td/text()",
"viewpeerlist_rule": ".//tr/td[9]/nobr/text()",
"peer_speed_rule": ".//tr/td[7]/nobr/text()",
"remark": "",
"invitation_rule": "//td[contains(text(),\"邀请\") and not(contains(text(),\"可以\"))]/following-sibling::td/span/text()",
"time_join_rule": "//div[@class=\"header gradient blue\"]//h4[2]/text()",
"latest_active_rule": "//td[contains(text(),\" 上次登录时间\")]/following-sibling::td/text()",
"uploaded_rule": "//li[@title=\"上传\"]/text()",
"downloaded_rule": "//li[@title=\"下载\"]/text()",
"ratio_rule": "//li[@title=\"分享率\"]/a/text()",
"my_sp_rule": "//li[@title=\"我的魔力\"]/a/text()",
"hour_sp_rule": "//dt[contains(text(),\"每小时获得魔力数量\")]/following-sibling::dd[1]/text()[1]",
"my_bonus_rule": "//font[@class=\"color_bonus\" and contains(text(),\"积分\")]/following-sibling::text()[1]",
"my_level_rule": "//div[@class=\"header gradient blue\"]//h4[1]/span/text()",
"my_passkey_rule": "//span[@class=\"text-monospace\"]/text()",
"my_uid_rule": "//div[@class=\"header gradient blue\"]//h2/text()[1]",
"my_hr_rule": "//strong[contains(text(),\"有效\")]/text()",
"leech_rule": "//li[@title=\"下载中\"]/a/text()",
"seed_rule": "//li[@title=\"做种中\"]/a/text()",
"record_count_rule": ".//td[3]/text()",
"seed_vol_rule": "//td[contains(text(),\"做种体积\")]/following-sibling::td[1]//text()[1]",
"mailbox_rule": "//a[@href=\"messages.php\"]/font[contains(text(),\"条\")]/text()[1]",
"notice_rule": "//a[@href=\"index.php\"]/font[contains(text(),\"条\")]/text()[1]",
"hash_rule": "//td/b[contains(text(),\"Hash\")]/following::text()[1]"
}
},
{
"model": "auto_pt.task",
"pk": 1,

View File

@@ -1736,6 +1736,12 @@ class PtSpider:
logger.info(f'白兔做种信息:{seed_vol_size}')
seed_vol_all = FileSizeConvert.parse_2_byte(seed_vol_size)
logger.info(f'白兔做种信息:{seed_vol_all}')
elif 'monikadesign.uk' in site.url:
logger.info(f'莫妮卡做种信息')
seed_vol_size = ''.join(seeding_html.xpath(site.seed_vol_rule)).replace('i', '')
logger.info(f'莫妮卡做种信息: {seed_vol_size}')
seed_vol_all = FileSizeConvert.parse_2_byte(seed_vol_size)
logger.info(f'莫妮卡做种信息: {seed_vol_all}')
else:
if len(seed_vol_list) > 0 and site.url not in [
'https://nextpt.net/'
@@ -1813,7 +1819,14 @@ class PtSpider:
time_join = re.findall(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', ''.join(
details_html.xpath(site.time_join_rule)
).strip())
my_site.time_join = ''.join(time_join)
if 'monikadesign.uk' in site.url:
time_str = ''.join(details_html.xpath(site.time_join_rule))
time_str = re.sub(u"[\u4e00-\u9fa5]", "", time_str).strip()
time_join = datetime.strptime(time_str, '%b %d %Y')
logger.info(f'注册时间:{time_join}')
my_site.time_join = time_join
else:
my_site.time_join = ''.join(time_join)
# 去除字符串中的中文
my_level_1 = ''.join(
details_html.xpath(site.my_level_rule)
@@ -1852,7 +1865,7 @@ class PtSpider:
# if '' in my_bonus:
# my_bonus = my_bonus.split('')[0]
hr = ''.join(details_html.xpath(site.my_hr_rule)).replace('H&R:', '').strip()
hr = ''.join(details_html.xpath(site.my_hr_rule)).replace('H&R:', '').replace('有效\n:', '').strip()
my_hr = hr if hr else '0'
logger.info(f'h&r: {hr} ,解析后:{my_hr}')
@@ -2000,10 +2013,14 @@ class PtSpider:
def get_hour_sp(self, my_site: MySite):
"""获取时魔"""
site = my_site.site
url = site.url + site.page_mybonus
if 'monikadesign.uk' in site.url:
url = url.format(my_site.user_id)
logger.info(f'魔力页面链接:{url}')
try:
if 'wintersakura' in site.url or 'hdchina' in site.url:
# 单独发送请求,解决冬樱签到问题
response = requests.get(url=site.url + site.page_mybonus, verify=False,
response = requests.get(url=url, verify=False,
cookies=cookie2dict(my_site.cookie),
headers={
'user-agent': my_site.user_agent
@@ -2011,7 +2028,7 @@ class PtSpider:
else:
response = self.send_request(
my_site=my_site,
url=site.url + site.page_mybonus,
url=url,
)
# print(response.text.encode('utf8'))
"""
@@ -2034,7 +2051,7 @@ class PtSpider:
)
"""
res = converter.convert(response.content)
# logger.info('时魔响应:{}'.format(response.text))
logger.info('时魔响应:{}'.format(response.text))
# logger.info('转为简体的时魔页面:', str(res))
# res_list = self.parse(res, site.hour_sp_rule)
res_list = etree.HTML(res).xpath(site.hour_sp_rule)

View File

@@ -5926,5 +5926,81 @@
"my_uid_rule": "//table[@id=\"info_block\"]//span/a[contains(@class,\"_Name\") and contains(@href,\"userdetails.php?id=\")]/@href",
"page_control_panel": "usercp.php",
"tracker": "tracker.sharkpt.net"
},
{
"id": 92,
"created_at": "2022-12-25 17:54:44.854475",
"updated_at": "2022-12-25 18:53:48.247179",
"name": "莫妮卡",
"url": "https://monikadesign.uk/",
"logo": "https://monikadesign.uk/favicon.ico",
"sign_in_support": 0,
"get_torrent_support": 1,
"get_userinfo_support": 1,
"search_support": 0,
"page_default": "torrents?perPage=100&free[0]=100",
"page_sign_in": "attendance.php",
"page_detail": "details.php?id={}",
"page_download": "download.php?id={}",
"page_user": "users/{}",
"page_search": "torrents.php?search={}",
"page_leeching": "getusertorrentlistajax.php?userid={}&type=leeching",
"page_uploaded": "getusertorrentlistajax.php?userid={}&type=uploaded",
"page_seeding": "users/{}",
"page_completed": "getusertorrentlistajax.php?userid={}&type=completed",
"page_mybonus": "users/{}/bonus/earnings",
"page_viewfilelist": "viewfilelist.php?id={}",
"page_viewpeerlist": "viewpeerlist.php?id={}",
"sign_in_method": "get",
"sign_in_captcha": 0,
"sign_in_params": "{}",
"sign_in_headers": "{}",
"hr": 0,
"hr_rate": 2,
"hr_time": 10,
"sp_full": 100,
"limit_speed": 100,
"torrents_rule": "//table[@class=\"torrents\"]/tr",
"name_rule": ".//td[@class=\"embedded\"]/a/b/text()",
"title_rule": ".//a[contains(@href,\"detail\")]/parent::td/text()[last()]",
"detail_url_rule": ".//td[@class=\"embedded\"]/a[contains(@href,\"detail\")]/@href",
"category_rule": ".//td[@class=\"rowfollow nowrap\"][1]/a[1]/img/@title",
"poster_rule": ".//table/tr/td[1]/img/@src",
"magnet_url_rule": ".//td/a[contains(@href,\"download.php?id=\")]/@href",
"download_url_rule": ".//a[contains(@href,\"download.php?id=\") and contains(@href,\"passkey\")]/@href",
"size_rule": ".//td[5]/text()",
"hr_rule": ".//table/tr/td/img[@class=\"hitandrun\"]/@title",
"sale_rule": ".//img[contains(@class,\"free\")]/@alt",
"sale_expire_rule": ".//img[contains(@class,\"free\")]/following-sibling::font/span/@title",
"release_rule": ".//td[4]/span/@title",
"seeders_rule": ".//a[contains(@href,\"#seeders\")]/text()",
"leechers_rule": ".//a[contains(@href,\"#leechers\")]/text()",
"completers_rule": ".//a[contains(@href,\"viewsnatches\")]//text()",
"viewfilelist_rule": ".//td/text()",
"viewpeerlist_rule": ".//tr/td[9]/nobr/text()",
"peer_speed_rule": ".//tr/td[7]/nobr/text()",
"remark": "",
"invitation_rule": "//td[contains(text(),\"邀请\") and not(contains(text(),\"可以\"))]/following-sibling::td/span/text()",
"time_join_rule": "//div[@class=\"header gradient blue\"]//h4[2]/text()",
"latest_active_rule": "//td[contains(text(),\" 上次登录时间\")]/following-sibling::td/text()",
"uploaded_rule": "//li[@title=\"上传\"]/text()",
"downloaded_rule": "//li[@title=\"下载\"]/text()",
"ratio_rule": "//li[@title=\"分享率\"]/a/text()",
"my_sp_rule": "//li[@title=\"我的魔力\"]/a/text()",
"hour_sp_rule": "//dt[contains(text(),\"每小时获得魔力数量\")]/following-sibling::dd[1]/text()[1]",
"my_bonus_rule": "//font[@class=\"color_bonus\" and contains(text(),\"积分\")]/following-sibling::text()[1]",
"my_level_rule": "//div[@class=\"header gradient blue\"]//h4[1]/span/text()",
"my_hr_rule": "//strong[contains(text(),\"有效\")]/text()",
"leech_rule": "//li[@title=\"下载中\"]/a/text()",
"seed_rule": "//li[@title=\"做种中\"]/a/text()",
"record_count_rule": ".//td[3]/text()",
"seed_vol_rule": "//td[contains(text(),\"做种体积\")]/following-sibling::td[1]//text()[1]",
"mailbox_rule": "//a[@href=\"messages.php\"]/font[contains(text(),\"条\")]/text()[1]",
"hash_rule": "//td/b[contains(text(),\"Hash\")]/following::text()[1]",
"notice_rule": "//a[@href=\"index.php\"]/font[contains(text(),\"条\")]/text()[1]",
"my_passkey_rule": "//span[@class=\"text-monospace\"]/text()",
"my_uid_rule": "//div[@class=\"header gradient blue\"]//h2/text()[1]",
"page_control_panel": "usercp.php",
"tracker": "monikadesign.uk"
}
]