def add_domain(request): ''' 添加dnspod域名 :return: ''' d_obj = Domain() result = {} # if request.method == "GET": # group_list = d_obj.group_list() # # 获取所有group_id # ids = [{"group_id":g.get("group_id",""),"group_name":g.get("group_name","")} # for g in group_list.get('groups',[])] # # print ids # return jsonify(ids) if request.method == "POST": domain = request.POST.get("domain", "") group_id = request.POST.get("group_id", "") ismark = request.POST.get("ismark", "") status, data = d_obj.create(domain, group_id, ismark) if status: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", ""))) # return HttpResponseRedirect(reverse("dnspod", # kwargs={"status":result.get("code", ""), # "message":result.get("message", "")})) else: return HttpResponse( json.dumps(dict(code=1, message="please use get/post method!")))
def domain_changegroup(request): ''' 设置域名分组 :return: ''' d_obj = Domain() result = {} domain_id = request.POST.get("domain_id", "") group_id = request.POST.get("group_id", "") status, data = d_obj.change_group(domain_id=domain_id, group_id=group_id) return HttpResponse(json.dumps(status))
def domain_delgroup(request): ''' 删除域名分组 :return: ''' d_obj = Domain() group_id = request.GET.get("group_id", "") status, data = d_obj.group_remove(group_id) if status: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", "")))
def domain_addgroup(request): ''' 添加域名分组 :return: ''' d_obj = Domain() group_name = request.POST.get("group_name", "") status, data = d_obj.group_create(group_name) if status: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", "")))
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 domain_log(request): ''' 获取域名操作日志:默认100条 :return: ''' d_obj = Domain() if request.method == "GET": domain_id = request.GET.get("domain_id", "") status, data = d_obj.log(domain_id=domain_id) if status: log = '\n'.join(data.get("log", [])) return HttpResponse(json.dumps(log)) else: return HttpResponse(json.dumps(data)) else: return HttpResponse( json.dumps(dict(code=1, message="please use get method!")))
def domain_lock(request): d_obj = Domain() if request.method == "POST": domain_id = request.POST.get("domain_id", "") days = request.POST.get("days", "") status, data = d_obj.lock(days=days, domain_id=domain_id) if status: result = { "code": 0, "message": '域名锁定成功,通过解锁码%s解锁,请妥善保管' % data['lock']['lock_code'] } else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", ""))) else: return HttpResponse( json.dumps(dict(code=1, message="please use post method!")))
def del_domain(request): ''' 删除dnspod域名 :return: ''' d_obj = Domain() result = {} if request.method == "GET": domain_id = request.GET.get("domain_id", "") status, data = d_obj.remove(domain_id=domain_id) if status: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", ""))) else: return HttpResponse( json.dumps(dict(code=1, message="please use get method!")))
def domain_remark(request): ''' 修改域名备注 :return: ''' d_obj = Domain() if request.method == "POST": domain_id = request.POST.get("domain_id", "") remark = request.POST.get("remark", "") status, data = d_obj.remark(remark=remark, domain_id=domain_id) if status: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", ""))) else: return HttpResponse( json.dumps(dict(code=1, message="please use post method!")))
def domain_searchenginepush(request): ''' 是否开启搜索引擎推送 :return: ''' d_obj = Domain() if request.method == "GET": domain_id = request.GET.get("domain_id", "") status = request.GET.get("status", "") status_val, data = d_obj.searchenginepush(domain_id=domain_id, status=status) if status_val: result = {"code": 0, "message": data['status']['message']} else: result = {"code": 1, "message": data} return HttpResponseRedirect('/dnspod/?status={0}&message={1}'.format( result.get("code", ""), result.get("message", ""))) else: return HttpResponse( json.dumps(dict(code=1, message="please use get method!")))
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')