dingding.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import re
  2. from pdlearn.pdlearn import mydriver
  3. import sys
  4. def get_dd():
  5. while True:
  6. dname = input('请输入正确的学习强国帐号(钉钉手机号):')
  7. ret = re.match(r"^1[3-9]\d{9}$", dname)
  8. if ret:
  9. pwd = input("请输入学习强国密码:")
  10. break
  11. return dname, pwd
  12. def dd_login_status(uname, has_dd=False):
  13. while True:
  14. if has_dd:
  15. dname, pwd = load_dingding("./user/{}/dingding".format(uname))
  16. print("读取用户信息成功")
  17. else:
  18. dname, pwd = get_dd()
  19. driver_login = mydriver.Mydriver(noimg=False)
  20. login_status = driver_login.dd_login(dname, pwd)
  21. if login_status:
  22. save_dingding("./user/{}/dingding".format(uname), dname, pwd)
  23. cookies = driver_login.get_cookies()
  24. break
  25. return cookies
  26. def save_dingding(user_path, dname, pwd):
  27. with open(user_path, "w", encoding="utf8") as fp:
  28. fp.write(dname + "," + pwd)
  29. def load_dingding(user_path):
  30. with open(user_path, "r", encoding="utf8") as fp:
  31. try:
  32. dname, pwd = fp.read().split(",")
  33. return dname, pwd
  34. except:
  35. print("钉钉记录文件损坏,错误代码3程序退出")
  36. sys.exit(3)