# -*- coding: utf-8 -*- # @Author: wangkun # @Time: 2022/7/12 import os import shutil import ffmpeg import rsa from main.feishu_lib import Feishu class Demo: # 获取已下载视频宽高、时长等信息 @classmethod def get_video_info_from_local(cls, video_path): probe = ffmpeg.probe(video_path) # print('video_path: {}'.format(video_path)) # format1 = probe['format'] # bit_rate = int(format1['bit_rate']) / 1000 # duration = format['duration'] # size = int(format1['size']) / 1024 / 1024 video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None) if video_stream is None: print('No video stream found!') return width = int(video_stream['width']) height = int(video_stream['height']) # num_frames = int(video_stream['nb_frames']) # fps = int(video_stream['r_frame_rate'].split('/')[0]) / int(video_stream['r_frame_rate'].split('/')[1]) duration = float(video_stream['duration']) # print('width: {}'.format(width)) # print('height: {}'.format(height)) # print('num_frames: {}'.format(num_frames)) # print('bit_rate: {}k'.format(bit_rate)) # print('fps: {}'.format(fps)) # print('size: {}MB'.format(size)) # print('duration: {}'.format(duration)) return width, height, duration # 判断视频时长是否大于 60s @classmethod def check_duration(cls): # 获取视频时长 video_info = cls.get_video_info_from_local("../videos/11111/video.mp4") video_duration = video_info[2] if int(video_duration) < 60: shutil.rmtree("../videos/11111/") else: print(f"video_duration:{video_duration}") # 判断 title 长度 @classmethod def check_title_len(cls): title = "🌸这首《老公赚钱给老婆花》🌸被唱的太肉麻了🌸好听好看🌸这首《老公赚钱给老婆花》🌸被唱的太肉麻了🌸好听好看"[:30] # print(len(title)) # if len(title) > 30: # title = title[:30] print(title) print(len(title)) # 删除某个文件夹下所有文件 @classmethod def del_files(cls): # 要删除的目标文件夹目录 filepath = "./videos/" # 列出目标文件夹里边的文件列表 del_list = os.listdir(filepath) # 删除前,打印目标文件目录内容 print(f"del_list:{del_list}\n") for f in del_list: # 目标文件夹中,某一个文件/文件夹 file_path = os.path.join(filepath, f) print(f"file_path:{file_path}") # 目标文件目录中的文件夹 if os.path.isdir(file_path): shutil.rmtree(file_path) # 目标文件目录中的文件 elif os.path.isfile(file_path): os.remove(file_path) # 删除后,打印目标文件目录内容 print(f"videos文件夹:{os.listdir(filepath)}\n") # 非对称解密 @classmethod def decrypt(cls): secretkey = "x844y5J3fZyVyj8uJ77X8v8Tt" print(len(secretkey)) 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" wechat_pub, wechat_priv = rsa.newkeys(64) print(wechat_pub) print(len(str(wechat_pub))) cryto_info = rsa.encrypt(data, wechat_pub) talk_real = rsa.decrypt(cryto_info, wechat_priv) # talk_real = talk_real.decode("utf-8") print(talk_real) # 去重 @classmethod def distent(cls): if "10477" in [n for m in Feishu.get_values_batch("log_type", "music_album", "f5a76e") for n in m]: print("yes") else: print("no") # get_sheet @classmethod def get_sheet(cls): sheet = Feishu.get_values_batch("log", "music_album", "L7Y9vz") print(sheet[0][0]) if __name__ == "__main__": demo = Demo() # demo.check_duration() # demo.check_title_len() # demo.del_files() # demo.distent() # demo.decrypt() demo.get_sheet()