From 9737fbec3267d94c5b4c5bd52782e23aa55f7ca0 Mon Sep 17 00:00:00 2001 From: eth3lbert Date: Sat, 8 Jul 2023 18:53:55 +0800 Subject: [PATCH 1/3] perf: speed up domain comparison --- AutoBuild/tw_165.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/AutoBuild/tw_165.py b/AutoBuild/tw_165.py index e4b38b4..2c4c5c6 100644 --- a/AutoBuild/tw_165.py +++ b/AutoBuild/tw_165.py @@ -34,10 +34,11 @@ def main(): 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) + current_domains = frozenset(read_) + for row in r_json[1:]: + domain = urlparse('http://'+row['WEBURL']).hostname + if domain not in current_domains: + added_list.append(domain) with open(filename, 'a+') as f: f.write('\n') From 16d814ed7efe332693f4201485d01ea279f91390 Mon Sep 17 00:00:00 2001 From: eth3lbert Date: Sat, 8 Jul 2023 19:03:37 +0800 Subject: [PATCH 2/3] refactor: only write files when not empty --- AutoBuild/tw_165.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/AutoBuild/tw_165.py b/AutoBuild/tw_165.py index 2c4c5c6..8c741d4 100644 --- a/AutoBuild/tw_165.py +++ b/AutoBuild/tw_165.py @@ -39,12 +39,13 @@ def main(): domain = urlparse('http://'+row['WEBURL']).hostname if domain not in current_domains: added_list.append(domain) - - with open(filename, 'a+') as f: - f.write('\n') - f.write( - '\n'.join(e for e in added_list) - ) + + if added_list: + 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 From ad76f2afd2788a71ed54210361a48a1b695dfb31 Mon Sep 17 00:00:00 2001 From: eth3lbert Date: Sat, 8 Jul 2023 19:04:54 +0800 Subject: [PATCH 3/3] refactor: raise when error --- AutoBuild/tw_165.py | 1 + 1 file changed, 1 insertion(+) diff --git a/AutoBuild/tw_165.py b/AutoBuild/tw_165.py index 8c741d4..4bf7f6b 100644 --- a/AutoBuild/tw_165.py +++ b/AutoBuild/tw_165.py @@ -23,6 +23,7 @@ def main(): r_json = r.json()['result']['records'] except (JSONDecodeError, KeyError): logger.critical('Parse JSON Err') + raise # check if file exists filename = 'TW165.txt'