add model
This commit is contained in:
2
.github/workflows/GitHub520.yml
vendored
2
.github/workflows/GitHub520.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.7]
|
python-version: [3.9]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|||||||
42
fetch_ips.py
42
fetch_ips.py
@@ -8,6 +8,7 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
|
import argparse
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from datetime import datetime, timezone, timedelta
|
from datetime import datetime, timezone, timedelta
|
||||||
@@ -87,12 +88,12 @@ def write_json_file(hosts_list: list) -> None:
|
|||||||
def get_best_ip(ip_list: list) -> str:
|
def get_best_ip(ip_list: list) -> str:
|
||||||
ping_timeout = 2
|
ping_timeout = 2
|
||||||
best_ip = ''
|
best_ip = ''
|
||||||
min_ms = ping_timeout * 1000
|
min_ms = ping_timeout * 500
|
||||||
ip_set = set(ip_list)
|
ip_set = set(ip_list)
|
||||||
for ip in ip_set:
|
for ip in ip_set:
|
||||||
ping_result = ping(ip, timeout=ping_timeout)
|
ping_result = ping(ip, timeout=ping_timeout)
|
||||||
print(ping_result.rtt_avg_ms)
|
print(ping_result.rtt_avg_ms)
|
||||||
if ping_result.rtt_avg_ms == ping_timeout * 1000:
|
if ping_result.rtt_avg_ms == ping_timeout * 500:
|
||||||
# 超时认为 IP 失效
|
# 超时认为 IP 失效
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
@@ -135,25 +136,27 @@ def get_ip(session: Any, github_url: str) -> Optional[str]:
|
|||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
def main(verbose=False) -> None:
|
def main(verbose=False, model='server') -> None:
|
||||||
if verbose:
|
if verbose:
|
||||||
print('Start script.')
|
print('Start script.')
|
||||||
session = HTMLSession()
|
session = HTMLSession()
|
||||||
content = ""
|
content = ""
|
||||||
content_list = get_json(session)
|
if model == 'server':
|
||||||
for item in content_list:
|
content_list = []
|
||||||
content += item[0].ljust(30) + item[1] + "\n"
|
for index, github_url in enumerate(GITHUB_URLS):
|
||||||
# content_list = []
|
try:
|
||||||
# for index, github_url in enumerate(GITHUB_URLS):
|
ip = get_ip(session, github_url)
|
||||||
# try:
|
|
||||||
# ip = get_ip(session, github_url)
|
|
||||||
|
|
||||||
# content += ip.ljust(30) + github_url + "\n"
|
content += ip.ljust(30) + github_url + "\n"
|
||||||
# content_list.append((ip, github_url,))
|
content_list.append((ip, github_url,))
|
||||||
# except Exception:
|
except Exception:
|
||||||
# continue
|
continue
|
||||||
# if verbose:
|
if verbose:
|
||||||
# print(f'process url: {index + 1}/{len(GITHUB_URLS)}')
|
print(f'process url: {index + 1}/{len(GITHUB_URLS)}')
|
||||||
|
else:
|
||||||
|
content_list = get_json(session)
|
||||||
|
for item in content_list:
|
||||||
|
content += item[0].ljust(30) + item[1] + "\n"
|
||||||
|
|
||||||
if not content:
|
if not content:
|
||||||
return
|
return
|
||||||
@@ -170,4 +173,9 @@ def main(verbose=False) -> None:
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main(True)
|
parser = argparse.ArgumentParser(description="Run fetch ips script")
|
||||||
|
# 2. 定义参数
|
||||||
|
parser.add_argument('model', metavar='model', type=str, nargs='?')
|
||||||
|
# 3. 解析命令行
|
||||||
|
args = parser.parse_args()
|
||||||
|
main(True, args.model)
|
||||||
|
|||||||
Reference in New Issue
Block a user