demo.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2022/7/12
  4. import os
  5. import shutil
  6. import ffmpeg
  7. import rsa
  8. from main.feishu_lib import Feishu
  9. class Demo:
  10. # 获取已下载视频宽高、时长等信息
  11. @classmethod
  12. def get_video_info_from_local(cls, video_path):
  13. probe = ffmpeg.probe(video_path)
  14. # print('video_path: {}'.format(video_path))
  15. # format1 = probe['format']
  16. # bit_rate = int(format1['bit_rate']) / 1000
  17. # duration = format['duration']
  18. # size = int(format1['size']) / 1024 / 1024
  19. video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
  20. if video_stream is None:
  21. print('No video stream found!')
  22. return
  23. width = int(video_stream['width'])
  24. height = int(video_stream['height'])
  25. # num_frames = int(video_stream['nb_frames'])
  26. # fps = int(video_stream['r_frame_rate'].split('/')[0]) / int(video_stream['r_frame_rate'].split('/')[1])
  27. duration = float(video_stream['duration'])
  28. # print('width: {}'.format(width))
  29. # print('height: {}'.format(height))
  30. # print('num_frames: {}'.format(num_frames))
  31. # print('bit_rate: {}k'.format(bit_rate))
  32. # print('fps: {}'.format(fps))
  33. # print('size: {}MB'.format(size))
  34. # print('duration: {}'.format(duration))
  35. return width, height, duration
  36. # 判断视频时长是否大于 60s
  37. @classmethod
  38. def check_duration(cls):
  39. # 获取视频时长
  40. video_info = cls.get_video_info_from_local("../videos/11111/video.mp4")
  41. video_duration = video_info[2]
  42. if int(video_duration) < 60:
  43. shutil.rmtree("../videos/11111/")
  44. else:
  45. print(f"video_duration:{video_duration}")
  46. # 判断 title 长度
  47. @classmethod
  48. def check_title_len(cls):
  49. title = "🌸这首《老公赚钱给老婆花》🌸被唱的太肉麻了🌸好听好看🌸这首《老公赚钱给老婆花》🌸被唱的太肉麻了🌸好听好看"[:30]
  50. # print(len(title))
  51. # if len(title) > 30:
  52. # title = title[:30]
  53. print(title)
  54. print(len(title))
  55. # 删除某个文件夹下所有文件
  56. @classmethod
  57. def del_files(cls):
  58. # 要删除的目标文件夹目录
  59. filepath = "./videos/"
  60. # 列出目标文件夹里边的文件列表
  61. del_list = os.listdir(filepath)
  62. # 删除前,打印目标文件目录内容
  63. print(f"del_list:{del_list}\n")
  64. for f in del_list:
  65. # 目标文件夹中,某一个文件/文件夹
  66. file_path = os.path.join(filepath, f)
  67. print(f"file_path:{file_path}")
  68. # 目标文件目录中的文件夹
  69. if os.path.isdir(file_path):
  70. shutil.rmtree(file_path)
  71. # 目标文件目录中的文件
  72. elif os.path.isfile(file_path):
  73. os.remove(file_path)
  74. # 删除后,打印目标文件目录内容
  75. print(f"videos文件夹:{os.listdir(filepath)}\n")
  76. # 非对称解密
  77. @classmethod
  78. def decrypt(cls):
  79. secretkey = "x844y5J3fZyVyj8uJ77X8v8Tt"
  80. print(len(secretkey))
  81. data = "AH8rb6Z1aEOgJZxXEpcrjTNfD23dn3zEtYiDD8AMFpaGENgE2P5Nu+yBP5+M9NrbUE9YrbPqbxOTzCBk6HmGWNaJKGNB+dQ5f70X6DdUWe+xzBAwbCwZ5n0yIHWmFGwKGJQOslz41LoEeK+U6JLGued+EhV2v8F5syfQcgH8NPUq+Xg0Ijjsl+ZVGf7rWs5TZujp01pdJy8bRZnZTGrCQa8E8PNX8DA+FBYAbLchU0NN1lZQ8jJE1ypVeIszf0g1fj\/KtuT7\/m1tJghHzk6amTyHspmsfcTyVeEIo9qqnDhY3AEZgyj6vYPvUuU7+sRddq3J7Gx71FtZ11DZNXnjtgonaivnedH9unhQPZoJ1Qn2vnCtF817Uh\/lUW4oTcfm8Z5HYK\/xCFHuFe9Aoql9ba\/BcZE6TvkEsuAjF947FkyyRZiNHCu6Y1O9IHUdQxgVCr0W9sbQTK4\/iHfi2MD6Rse+3RkJdRpWs1x7fiLSpp5z5Mr1oKcSRid9bg+NNw2ESnVi8RbTLp\/F+E5icGO\/WYJtkw9pu7TfLYihCWONn52BBvtHYpIBG+Uk8+bfGy5zxNq6DiYtlmiU3BN+DGn6xTGm8jHauqci79lxzkJ21Soc90DKOBisYBPBL9OXwoRwIaL45dfDRzjnSmwepyjgnhILpPkBXDpFcKMRKf7hDZaoz7tQv6MCWdeXfl2KIufOBq\/cQlRWeD9J7Ak27Lnb\/a48Reg7UdCYUDUl\/Uock+j+s3sjtC99gNWkt7iaYmrSPvVI1oJc7luKrMTjx04PR8s+2pIh\/zAG8QyF2WL9SCVG1QFIQAVq8GOr7gStKa73vpQR9X1uHSY2wz+7worHKdVuEa2LcG\/deA7cIlLdByWiQEwD1xRHkpCWi+V3QrstHocU6piEi7sg7KErkt939C6W372oSrxw8vsyCJSxCUUbOTC09UmNfKyiB\/zfMs6NuC0vVQCaacFF7098TTRjXWT1MFjBcx79Y9B7QlR2x1NWTJtKmtVoyInsG8zwS9oDSxRYq+Mr1HWg+4ex9ycO0c3zB3k4oMGy9rTvgQ6U7Ok8PEfet5ELu3MC7MThJr3cJhj3akGd7Ziu3rKE03hatTIHmwaGbe84uatowFnNeDXNNvFdZZhOVDCvA3fEsMyidO0mT0ZiYp0jxDrvZ0uEznGg4qWsaiON\/tZvfipXX4oQFtl47vaaYEOTELut469A+lv6uxgvZHh+93On8exb3KwA5k3RPVAD79u4\/16+xwgbycJX8urcaKBqYxmg+yR3jqMB0nzTOSksoW8g4VyiUGD+BX7mWOCDpdM0o8o4HunS4s\/AdGPYYFxrlYfhmzYTPS\/fbHB\/oQ00mkQ9CWXpVjuJxHfT+vupAX3dwSf803IOWyGWuYL3GaKQegZywu5tC+pEsv8WdvAJP9udzctc2BYnDzRsJY291\/SBLr+P9Uu7TNwctqfGgI+DHl4Ij6+nzjEO8n2KhBGbsb62HOWpPxzQBcyJ7IPzN0cSletmO9mi31n1ChhvwI6Nh81LmhVOahpmh01CT7ha3gFlPWYvlm58YP3ZslG019ibJFq2FapJ44+XvJ6oaofHDeJKm5g10brzicJtZAXnIosWEeRi+c7\/tURkZe9JK7018HuPs6tWTT9\/5NAFvMpUV70PwwXBK9u+kqKlYeXJHsUpobolNXVcdHvkWVcqGthaldjQVrlR1phhhJgzEhisju4\/q5T5Q6u57ZfHN4nRYe3XmPthgvSRHF4jHdb0czg8f\/MJ5SPZpCjf6N0G9bW+78+70pK7lKjqmeWU0oyunRQFQTTloOyrIqgwrJ1+lHe\/5R5fU4mJWQCe8D3l6o2ZiWydYDkr\/XJ9dJ\/MppzEdmQ9hAg72446fNlfPQR\/sAG+AiI9RjDmtLlvqm6WBzL1begTxXn+roZ9NfFc3ueBBUFBwBrMp0FvcDZv\/JHx2n50H6PigH9GPqywbRWXwK4zippZln+UdZolm89EKm60mICgHZE1i3l3GGY3x8YFjoE1JvLQ5Hkcp3IseZB7nhE48LpUikqJbQ3Q+kZv4hftY3ZjRBnMMSl6acfKN0LCsudMOuZJqSdW0tb8ew5wH2ZSTV\/uOXVeQSWy\/HFDB\/jqPU\/WtRpuCixz+Y0BCnGxlhu9HPAYB4fUYL56lGQSPU4xY1iH6UbocAR4t\/70W06Ux\/P+9AjH897yFz4RCVsUz8Z6i9bcgxwk7MKrKdxlM6R+Ql4CTQXCUi0vVsB0krCN1m6nuqPD20Xw7N1c9DcgneKUOygmcyt4JFC2T31EOCE8b6NT3mZOYmOnGhhO4m5gdA0ce6Ds4HZBtlp1\/f0jy6KuiQ\/PR5yUs2p3bmLMUd\/92gJ\/DFmPLPPjaGgVKRGABXJodwtiW8VYiJcHEDzwH\/QZwigfeSfqdqdWnBrXRUh8cxsEw9ggbRSK1mYTnQ\/qMnRKCPi5jE59IVp0C1EJcuqIvbCg7Pfo8qRx\/nBN+GKaWu7id9wCCmE1iAybpvTv1Ex1tUiarg6YgrWZDZ+oXM\/KkqBQgIU7J2RtY73jwftxth2UMJp7Pf9eVTBKMz9pX9NJXtOmc7j\/TDhfBsaiTwWy2trG2fWxlH\/5SKRmDS3KuNgW\/eVq6ihU3SjwSmrBUwGZxhHuN9UqtPCvKZdcCk\/WVGwpMbv9JW2ymm+YvnrJCdkfP\/TW612W\/j7qfmeMkTTsfllJ5pUlW0VvK0WVG6Df0+503tHjz7A1BIxYoKCp11NYSGr6s1Dr4QQbzBWKMsofdRMSa8BWdzdhE13RWIgYr8blI\/4AgSLhwDOZSMGYzC1MfvtOcpCC1m\/KMNzvjD95uR02vzKeNTEnC9Ix4UKyYmj\/Pf0laXLbJUWQy0V4oKBPDWK1a\/Pxs9ujQLXniHXhcYVMq2jU\/0Qk2OuUyLWIgLHrs\/lf1fu6F2FJpiP2mBxXIgSxjxduvFcW3pN5XHbGMG8hRzaI9FX7EstuZBfsAR6lU+FW+1zyh2T1up8M8owTKryz8oO\/pl4wKmIAzSviAH\/RN1hv\/mqZfdR4pYFbl6Q0gwrm4tLPirmDDwxOzaoXHv3cnj7Dt\/TjejKJlVIUqZNiuK2\/K8IqZQyPtDr5NapsqRIxao6FNwn8GbPO9hNIm2Ey1AYCn8msjlIVO7cT2LKNB4sKnXg+E34019TFgCNLp8h7yETY5RewbJ2Lz56i1dwF9ffamThuPGxzj1vEswlURCaZDnl0CcUSL\/Ma7g3gVcPBoY+EBCAUnzSfBkkWV7Zs77GjEdqDWddw9U7Heotj3vGRC6E\/2eEYXkDND3zohPgPE8SbTrzCHK+Y64yIxTUhNKmNIq0RRRlxJ9akQxHD0Te9b3ez5U3w7m9VkqB75gv97RABd4Y\/8IpYs2yb\/bbHxuhwsCq8hkLlA9tyX5ui7NnGPDd6amI8\/4iMEgSIExdTcDBESFJngCXJ1qSf2IvfHFWmAKjKerIlXh1PUkKMwfg6Sk+6\/weNqvOLAX6\/YgHYtCUG71zDTEZ4XO6ydZgp53\/ma\/E4lBFD0UXkjoC0oa8Hd0r8yzkpuX7XgHJtOdxcfzatsjvZo+VFRMByC7KMdBa\/QTlxIr9zOSZtZ\/8sev8tGHJFO\/yB7YS9IvZQro+uUZSv4UclHoeXJwhTqJJPF5gZhfpNx8R5U8YEps9ZSEBW4OxdB0QVd5JXqFm1vuGapN5+TFIABKO7eEzm\/jBUXQ6yvDgjQNVNrMNG1bshzQswBgizXlEbJmICi1lgD\/jc\/6Zr2fUy+7YNnNgi4VkiGPu7ryan9myo1cfqSq3zKiqYU0phQ3jJVSWqfG6BU6H5\/5i0mI\/5fYD\/OJpZO5sRo3fPB9SmM0uOy3kRNBAjrMZEPNtWh8Kvo0KzCM+ESw7lFrcgMVqpUgN8V9GGCGU3efKXwDUTp6HDmbSKlBRGwJcVj3EXQUZ+lAfNo1M3gr5Krdn8tgkikvgkWlYe6+jwvVfKyDqvpo9nXWaanryczldZLA8CC\/mRuuJfIh985uTjzwzQZ6rxwxDq7r3O5Ma3w6f5PjErNu80JvQeMgs475uNYHpQ4VKk2Iu10bHzQj9Znk3a0WPA\/b59izN+x1xQr17WZTVe\/OZ6dYoJZyIolVFVCHXLvWe7ahlOVOD+AA76IXtFLFp5mZh+rOMtqbWB86pQk2v02ibdqrlJaT4J8dhDOJJZw02bjGLRGzk0Co5F+Y2Aa3nWT1NAQ9vEcpYPbcCJaFdxewULtWRFlAxVu2r3Lv3pU8Fm4ndajXrmbfJLyIipWZ5QN+y0guDOMlT0YgJFfING909ABcXtGVJG74FlqJq7BTEiGRijg\/wiOZ9UsMuSwrw0x5eWIIXd8CzT95iznaEv4vXN1gu4kZsJDQpPlgm+UZoxTZtFjb8XAqoKjWct1wquxSLJBfgDW1uCvqbb8tQswdKPNg+ZxKZbl0a1etzos\/tZl42OblcRWWhxtyGyBo6jAPX+BJcK9J8k"
  82. wechat_pub, wechat_priv = rsa.newkeys(64)
  83. print(wechat_pub)
  84. print(len(str(wechat_pub)))
  85. cryto_info = rsa.encrypt(data, wechat_pub)
  86. talk_real = rsa.decrypt(cryto_info, wechat_priv)
  87. # talk_real = talk_real.decode("utf-8")
  88. print(talk_real)
  89. # 去重
  90. @classmethod
  91. def distent(cls):
  92. if "10477" in [n for m in Feishu.get_values_batch("log_type", "music_album", "f5a76e") for n in m]:
  93. print("yes")
  94. else:
  95. print("no")
  96. # get_sheet
  97. @classmethod
  98. def get_sheet(cls):
  99. sheet = Feishu.get_values_batch("log", "music_album", "L7Y9vz")
  100. print(sheet[0][0])
  101. if __name__ == "__main__":
  102. demo = Demo()
  103. # demo.check_duration()
  104. # demo.check_title_len()
  105. # demo.del_files()
  106. # demo.distent()
  107. # demo.decrypt()
  108. demo.get_sheet()