def list_subdomain(request): ''' 列出包含A记录的所有子域名 :return: ''' d_obj = Domain() dm_obj = dmonitor.DMonitor() domain_list = d_obj.list() id_list = [d.get("id") for d in domain_list] d2r_names = {} # st = time.time() li = [] for did in id_list: t = MyThread(dm_obj.list_subdomain, args=(None, did)) li.append(t) t.start() for t in li: t.join() # 一定要join,不然主线程比子线程跑的快,会拿不到结果 status, data = t.get_result() if status: d_name = data.get("domain", {}).get("name", "") d_id = data.get("domain", {}).get("id", "") r_name = data.get("subdomain", []) if r_name: d2r_names[d_name] = dict(id=d_id, rnames=r_name) # et = time.time() # print et - st # st = time.time() # for did in id_list: # status,data = dm_obj.list_subdomain(domain_id=did) # if status: # d_name = data.get("domain",{}).get("name","") # d_id = data.get("domain",{}).get("id","") # r_name = data.get("subdomain",[]) # if r_name: # d2r_names[d_name] = dict(id=d_id,rnames=r_name) # et = time.time() # print et - st # print d2r_names return HttpResponse(json.dumps(d2r_names))
def dnspod(request): ''' 获取dnspod域名列表 :return: ''' d_obj = Domain() group_id = request.GET.get("group_id", "") groups = d_obj.group_list().get('groups', []) domain_list = d_obj.list(group_id=group_id) result = {} status = request.GET.get("status", "") message = request.GET.get("message", "") if status.isdigit(): result = {"code": int(status), "message": message} return render(request, "dnspod.html", { "domain_list": domain_list, "result": result, "groups": groups, "group_id": group_id }, using='jinja2')