123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # -*- 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()
|