| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/usr/bin/env python
- # -*- coding: UTF-8 -*-
- import os
- import os.path
- import click
- import tinify
- online_key_list = [
- "eCaBl5SWbQaAJbT2MX3xnFzvHfLZA93O",
- "pPgiVMQxqFEExdAGwQI6nFlLKqtYlruz",
- "1DkU3Rp61yTi683OOvsd3daw9kVEqZf0",
- "PUxtVdhYtodwO4jC7d6I4VdsEyDx37mw",
- "fp1VyXlzPWQgJyLN7JRWYvgLjtkqSYvH",
- "nXNH4VFVjvPJtkDytSynSCnY0G1FmYwh",
- "ZhjfRpjGvh7txM90WJyj9tkRfkwKGNcC",
- "F79DPN8vNhx2wc40cBg60qJ4h3SvXyV8",
- "y48xStsV3tjQ6mw6yYk5gXVBlSGKgMWs",
- "G0t57lLwWHkS5nK2RqPPsQCP7WZP6lGP",
- "dpls8PYG8SpZYZxfzybB4FGYK1FV1qZv",
- "sq5RzZVjHxVKRN0CHSBn659XPb67PyMl",
- "rcj2WmWcPZGMDbmwDXJ69XQKGhyr6mCw",# 可以继续添加 防止一个key不够
- "lC3jHypLlbSCrpCCL14qTNb960kTnbkf",# m@swz.com
- "pmYS1vP6nHhRYmZlGnmlCMlsBSrf1CVs",# 244591203@qq.com
- "NL7qKdJQ7LkY0N57xm8w9PF5QCc1Krq0",# mengmengde1@qq.com
- "THrhX541L3CGNZV0z3xw1n1qzd0tHkm8",# mengmengde1@qq.com
- "9kznMYZh85fHtyXsB6RRnyddX9qg7mQ4",# 18981831779@qq.com
- "F0skt4C4MlmpF1YzySx6VBcdjlDx1Ky3",# yy@9026.com
- "XbY1rqS40Mr84nZ8bBJtvS3Z98gCclFJ",# jy@9026.com
- "8m0H7g1rvD0YpxD6FTcGFjdFw774S4fB",# zp@9026.com
- "4V5zXlPv7kKZ0K19yDkhzMFs2pF3pHBw",# ds@9026.com
- "Rw0LGrg3Xz6fwHJJXLHZ72gVdsmhFf0j",# qy@9026.com
- "c3hpP9831BHhMXCjx1lq2gxvtxLzlYTc",# waimai@9026.com
- "h4jN0rrNSKMG1Yg3PNZLhJx1zpdMyB5D",# xh@9026.com
- "K02ZDM62xgNPh4pxxMrvwY19p1QL1kL2",# xs@9026.com
- "KjSlVcxRwq3LxCn68vfFlnKPlmH0yTV7",# wx@9026.com
- "YSnrC3DBGQqBDgS868BRs8dyzW6p9M1t",# qc@9026.com
- "dVPGhvcMp11w3r0dsFqt0JtpYSJXrPk4",# 277718133@qq.com
- "4V5zXlPv7kKZ0K19yDkhzMFs2pF3pHBw",# ds@9026.com
- "FJcJ49gwJn7DKGPJXG0WnWHqMFqjJz83",# he-zhiqiang@qq.com
- "FCgQC9jVYZs21P1hNcZnPZggkwxyzJjf",# fdcxcx@9026.com
- "cN6HKbFvdjQtyxtjF6zNr73lSvLwqBFv",# er@9026.com
- "8h4sNNs1hPwQ8F7cGSp9kBJsVzZdjCWM",# px@9026.com
- "3NtHDK8cKhj0PgzPMJbj8x77x6XSnfJH",# myxcx@9026.com
- "xb6Hx04YKGNJjM1ZQJsw7lZJxsTTyv0l",# as@9026.com
- "0wgMYx1sLT5G4QHxMz6K23hR9Sd2qjRG",# qwe@9026.com
- "qQ3T0MFgZtDWj0JwrzGf1nn9fwYRr37t",# qq@9026.com
- "LM9XdN4Z3yXxzFtGTmzTNs7YpKc66LZP",# zy@9026.com
- "mK92RRvkmXw5Y7QnkJfBp90s0Hm0HbS7",# cr@9026.com
- "jGqRKqjcVnpfcSdjrlc5xDDP037NcsdX",# 794700073@qq.com
- "vHbgWf5zvd6HVjLkRhXdj6JNCN0tZ7jW",# mengmengde3@qq.com
- "T2Km6t54jCS7n2W88qbsBp5J4J9dWX2v",# testqiang@foxmail.com
- "xb0DVcrSZPk8XKK1R9YzmpTGWq3ydnkq",# yl@9026.com
- "zZ8WrTVTFX2jFXL4CdnL12B83tbj1mcW",# cs@9026.com
- "cN8nwWjfcvr9GgK5W0xv56lH5yLhbSrC",# yd@9026.com
-
- ]
- online_key_list_iter = iter(online_key_list)
- online_key = next(online_key_list_iter)
- version = "1.0.1" # 版本
- # 压缩的核心
- def compress_core(inputFile, outputFile, img_width):
- global online_key
- compresskey = online_key
- tinify.key = compresskey
- print "file = %s" % inputFile
- try:
- source = tinify.from_file(inputFile)
- if img_width is not -1:
- resized = source.resize(method="scale", width=img_width)
- resized.to_file(outputFile)
- else:
- source.to_file(outputFile)
- except tinify.AccountError, e:
- online_key = next(online_key_list_iter)
- compress_core(inputFile, outputFile, img_width) # 递归方法 继续读取
- except tinify.ClientError, e:
- print(e)
- pass
- # 仅压缩指定文件
- def compress_file(inputFile, width):
- print "compress_file-------------------------------------"
- if not os.path.isfile(inputFile):
- print "这不是一个文件,请输入文件的正确路径!"
- return
- basename = os.path.basename(inputFile)
- fileName, fileSuffix = os.path.splitext(basename)
- if fileSuffix == '.png' or fileSuffix == '.jpg' or fileSuffix == '.jpeg':
- compress_core(inputFile, inputFile, width)
- else:
- print "不支持该文件类型!"
- @click.command()
- @click.option('-d', "--dir", type=str, default='/', help="压缩文件夹下所有文件")
- @click.option('-f', "--file", type=str, default=None, help="单个文件压缩")
- @click.option('-s', "--size", type=str, default='1024k', help="需要压缩的文件大小")
- @click.option('-w', "--width", type=int, default=-1, help="图片宽度,默认不变")
- def run(dir, file, width, size):
- if file is not None:
- compress_file(file, width) # 仅压缩一个文件
- pass
- elif dir is not None:
- find_path = "find " + dir + " -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -type f -size +" + size + " | sort -nr"
- # print(find_path)
- result = os.popen(find_path).read().split('\n')
- for item in result:
- # print(item)
- compress_file(item, width)
- pass
- pass
- else:
- print '请指定要压缩的文件或文件夹'
- print "结束!"
- if __name__ == "__main__":
- run()
|