Merge pull request from Guovin/dev

Release: v1.0.9
This commit is contained in:
Govin 2024-04-25 15:42:48 +08:00 committed by GitHub
commit d52b8a4c2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 24 additions and 13 deletions

@ -1,5 +1,11 @@
# 更新日志Changelog
## v1.0.9
### 2024/4/25
- 改进接口获取方法增强处理多种失效场景Improve the method of obtaining the interface, enhance the handling of various failure scenarios
## v1.0.8
### 2024/4/24

23
main.py

@ -63,9 +63,7 @@ class UpdateSource:
async def visitPage(self, channelItems):
total_channels = sum(len(channelObj) for _, channelObj in channelItems.items())
pbar = tqdm(total=total_channels)
pageObj = await useAccessibleUrl()
pageUrl = pageObj["url"]
pageName = pageObj["name"]
pageUrl = await useAccessibleUrl()
for cate, channelObj in channelItems.items():
channelUrls = {}
channelObjKeys = channelObj.keys()
@ -73,6 +71,14 @@ class UpdateSource:
pbar.set_description(
f"Processing {name}, {total_channels - pbar.n} channels remaining"
)
self.driver.get(pageUrl)
search_box = self.driver.find_element(By.XPATH, '//input[@type="text"]')
search_box.clear()
search_box.send_keys(name)
submit_button = self.driver.find_element(
By.XPATH, '//input[@type="submit"]'
)
submit_button.click()
isFavorite = name in config.favorite_list
pageNum = (
config.favorite_page_num if isFavorite else config.default_page_num
@ -81,13 +87,12 @@ class UpdateSource:
if pageUrl:
for page in range(1, pageNum + 1):
try:
page_url = f"{pageUrl}?page={page}&{pageName}={name}"
self.driver.get(page_url)
WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, "div.result")
if page > 1:
page_link = self.driver.find_element(
By.XPATH,
f'//a[contains(@href, "={page}") and contains(@href, "{name}")]',
)
)
page_link.click()
soup = BeautifulSoup(self.driver.page_source, "html.parser")
results = (
soup.find_all("div", class_="result") if soup else []

@ -268,8 +268,8 @@ async def useAccessibleUrl():
speed1 = await getSpeed(baseUrl1, 30)
speed2 = await getSpeed(baseUrl2, 30)
if speed1 == float("inf") and speed2 == float("inf"):
return {"url": None, "name": None}
return None
if speed1 < speed2:
return {"url": baseUrl1, "name": "s"}
return baseUrl1
else:
return {"url": baseUrl2, "name": "tv"}
return baseUrl2

@ -1,3 +1,3 @@
{
"version": "1.0.8"
"version": "1.0.9"
}