From 54a95f77584e4fb02f0bab99b7d56f4504de7834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B8=A2=E4=BD=8E=E5=90=B8?= Date: Sat, 8 Jul 2023 06:25:04 +0000 Subject: [PATCH] AutoBuild 165 --- AutoBuild/tw_165.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AutoBuild/tw_165.py diff --git a/AutoBuild/tw_165.py b/AutoBuild/tw_165.py new file mode 100644 index 0000000..9267c57 --- /dev/null +++ b/AutoBuild/tw_165.py @@ -0,0 +1,45 @@ +import requests +from json.decoder import JSONDecodeError +import logging +import os +from typing import List +from urllib.parse import urlparse + +logger = logging.getLogger(__name__) + + +def main(): + url = 'https://tw165.futa.gg/api/v1/rest/datastore/A01010000C-002150-013' + r = requests.get(url) + if r.status_code != 200: + logger.critical('Fetch Data Err') + return + + try: + r_json = r.json()['result']['records'] + except (JSONDecodeError, KeyError): + logger.critical('Parse JSON Err') + + # check if file exists + filename = 'TW165.txt' + if not os.path.exists(filename): + with open(filename, 'w') as f: + pass + + added_list: List[str] = [] + + with open(filename, 'r') as f: + read_ = f.read().splitlines() + for row in r_json[1:]: + domain = urlparse('http://'+row['WEBURL']).hostname + if domain not in read_: + added_list.append(domain) + + with open(filename, 'a+') as f: + f.write('\n') + f.write( + '\n'.join(e for e in added_list) + ) + +if __name__ == '__main__': + main() \ No newline at end of file