gen.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import yaml
  2. from random import randint
  3. from os import remove
  4. from emoji import emojize
  5. # Constants
  6. codeFilePath = "./lang/codes/MyLifeCode"
  7. readmeFilePath = "../README.md" # To test
  8. lineCode = "<!-- codeHear -->"
  9. start = "<!-- START -->"
  10. reCode = "<h1>\n\n```LANG\nSTR\n```\n</h1>\n" + start
  11. # Open list.ymal file and generate code
  12. with open("lang/list.yaml", "r") as f:
  13. yamlFile = yaml.load(f, Loader=yaml.FullLoader)
  14. list = yamlFile.get("lang")
  15. # print type(list)
  16. print(type(list))
  17. # Test
  18. print(list)
  19. # Get current language from cache file
  20. currentLang = ""
  21. try:
  22. cf = open("./cache", "r")
  23. currentLang = cf.readline()
  24. currentLangIndex = int(str(cf.readline()))
  25. cf.close()
  26. except:
  27. currentLang = ""
  28. # Get random language
  29. while True:
  30. index = int(randint(0, len(list) - 1))
  31. lang = list[index]
  32. if lang.get('name') != currentLang:
  33. break
  34. # Open the cache file and write the new language
  35. cf = open("./cache", "w")
  36. # Write to cache file
  37. cf.write(lang.get('name'))
  38. cf.write("\n")
  39. cf.write(str(index))
  40. # close files
  41. cf.close()
  42. f.close()
  43. # Get code
  44. code = lang.get('print')
  45. code = emojize(code.replace("STR", "Hi there!"))
  46. reCode = reCode.replace("LANG", lang.get('name')).replace("STR", code)
  47. # Write code to README.md
  48. # Open readme file to read and write
  49. with open(readmeFilePath, "r", encoding="utf-8") as rf:
  50. readmeText = rf.read()
  51. rf.close()
  52. # Remove old code
  53. startIndex = readmeText.index(start) + len(start)
  54. readmeText = readmeText[startIndex:]
  55. #print(readmeText)
  56. # Write new code
  57. readmeText = reCode + readmeText
  58. # delete old readme file
  59. remove(readmeFilePath)
  60. # Write new readme file
  61. with open(readmeFilePath, "w", encoding="utf-8") as rf:
  62. rf.write(readmeText)
  63. rf.close()