| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 
 | """
 @author: pakro
 @software: pycharm
 @file: aria2_update_trackers.py
 @time: 2019/9/4 0004 14:19
 @desc: 为当前路径下的aria2配置文件更新trackers
 """
 import os
 import sys
 import time
 import getopt
 import requests
 
 
 def usage():
 print("-h help\n-p or --path custom path\n-f or --file_name config file name\n-t or --tracker_url tracker url")
 
 
 def download_tracker(
 trackers_best_url="https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt"):
 try:
 trackers_best = "bt-tracker=" + requests.get(trackers_best_url).text.replace("\n\n", ",")[:-1]
 return trackers_best
 except Exception as e:
 print("网络错误! ", e)
 sys.exit(0)
 
 
 def read_local_file(config_file_name="aria2.conf", trackers_url=None):
 if not os.path.exists(config_file_name):
 return False
 try:
 with open(config_file_name, "r", encoding="UTF-8") as f:
 data = list([])
 for line in f.readlines():
 if "bt-tracker=" not in line:
 data.append(line)
 
 try:
 with open(config_file_name, "w", encoding="UTF-8") as f:
 for each in data:
 f.write(each)
 if trackers_url:
 f.write(download_tracker(trackers_url))
 else:
 f.write(download_tracker())
 except Exception as e:
 print("读取都没问题, 写入居然出了问题, 请重新试试. 错误信息: ", e)
 return False
 
 print("success!")
 time.sleep(2)
 except Exception as e:
 print("似乎读取文件出了问题? 看看是否有其他程序正在占用这个文件. 错误信息: ", e)
 return False
 
 
 def main(argv):
 config_file_name = None
 trackers_url = None
 path = None
 try:
 opts, args = getopt.getopt(argv, "hf:t:p:", ["file_name=", "tracker_url=", "path="])
 except getopt.GetoptError:
 print("不知道出了什么问题")
 sys.exit(2)
 
 for opt, arg in opts:
 if opt in "-h":
 usage()
 sys.exit(0)
 if opt in ("-f", "--file_name"):
 config_file_name = arg
 if opt in ("-t", "--tracker_url"):
 trackers_url = arg
 if opt in ("-p", "--path"):
 path = arg
 
 try:
 if path:
 print("输入了自定义路径: ", path)
 if path[:-1] != "/" or path[:-1] != "\\":
 config_file_name = path + "/" + config_file_name
 else:
 config_file_name = path + config_file_name
 if config_file_name and trackers_url:
 read_local_file(config_file_name, trackers_url)
 elif config_file_name:
 read_local_file(config_file_name)
 elif trackers_url:
 read_local_file(trackers_url=trackers_url)
 else:
 read_local_file()
 except SystemExit:
 print("网络都没有, 怎么运行?")
 time.sleep(2)
 
 
 if __name__ == '__main__':
 main(sys.argv[1:])
 
 
 |