设为首页收藏本站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 410|回复: 0

[windows] league_skin自动更新软件

[复制链接]

302

主题

0

回帖

1004

积分
UID
16292

金牌会员

积分
1004
蓝币
702
威望
0
贡献
0
发表于 2024-6-7 16:54:12 | 显示全部楼层 |阅读模式
用python编写的一个league_skin自动更新脚本,通过检测当前目录是否存在文件以及相应的网络版本号对比检查更新,若存在更新则进行下载解压并覆盖原有文件。
纯文本代码如下:
import requests
from lxml import etree
import os
import time
import zipfile
import shutil  #删除模块

#v1.1

def download(url, filename):
    start = time.time() #下载开始时间
    try:
        response = requests.get(url, stream=True)  # 来获取服务器的原始套接字响应
        size = 0  # 初始化已下载大小
        chunk_size = 1024  # 每次下载的数据大小
        content_size = int(response.headers['content-length'])  # 下载文件总大小
        if response.status_code == 200:     #判断是否响应成功
            print('Start download,[File size]:{size:.2f} MB'.format(size = content_size / chunk_size /1024))   #开始下载,显示下载文件大小
            with open(filename, 'wb') as f:     #显示进度条
                for data in response.iter_content(chunk_size=chunk_size):   #边下载边存储
                    f.write(data)
                    size += len(data)
                    print('\r'+'[下载进度]:%s%.2f%%' % ('>'*int(size*50/ content_size), float(size / content_size * 100)) ,end=' ')
        end = time.time()   #下载结束时间
        print('Download completed!,times: %.2f秒' % (end - start))  #输出下载用时时间
    except:
        print('可能存在网络问题,下载失败,请重试')
        os.system('pause')
        exit()


def del_dir():     #删除原有文件夹
    path = os.getcwd()
    files = os.listdir(path)
    try:
        for file in files:
            if 'MODSKIN' in file:
                path = path + '\\' + file
                print(path)
                shutil.rmtree(path)
                print('成功删除'+ path)

    except:
        print('删除旧文件夹失败或未找到')


def unzip_file(filename, dir):
    if(zipfile.is_zipfile(filename)):
        fz = zipfile.ZipFile(filename, 'r')     #读取zip文件
        for file in fz.namelist():  #返回压缩包内所有文件名的列表。
            fz.extract(file, dir)    #将zip文档内的指定文件解压到当前目录
        print('解压成功')
    else:
        print('解压失败')


def start():
    url = 'http://leagueskin.net/p/download-mod-skin-2020-chn'
    try:
        result = requests.get(url).content
    except:
        print('无法连接网络')
        exit()
    soup = etree.HTML(result)
    down_url = soup.xpath('//a[@id="link_download3"]/@href')  # 内容提取
    down_url = down_url[0]
    filename = str(down_url).split('/')
    filename = filename[3]
    dir_name = filename.replace('.zip', '')
    if not os.path.exists(dir_name):
        print("开始处理,请等待")
        del_dir()
        download(down_url, filename)
        dir = os.path.join(os.getcwd(), dir_name)
        unzip_file(filename, dir)
        try:
            print('尝试删除压缩包')
            file_path = os.path.join(os.getcwd(), filename)
            print(file_path)
            os.remove(file_path)
            print('删除成功')
        except:
            print('删除失败')
    else:
        print("没有更新的版本")
    os.system('pause')


if __name__ == '__main__':
    start()

下载地址:
游客,如果您要查看本帖隐藏内容请回复


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|网站地图| 蓝泡科技-专注于为网民或企业降低娱乐和办公的成本需求
禁止任何人以任何形式在本论坛发表与国家各项法律规定相抵触的言论 , 本站内容均为网友发表 , 并不代表本站意见 , 如有发现立即封禁处理!
本站所有帖子内容,免费软件资源不经许可不得擅自用于商业用途给开发者带来利益损害,拒绝侵犯开发者权益!
如本站(蓝泡科技)有不妥的地方 , 或出现有损您版权的内容 , 和举报其他用户违规行问题为请联系本站 , 本站收到后二十四小时内处理该问题.
防范远离网络犯罪 , 诈骗等违法不良网站。 本站联系QQ:3178438543,联系邮箱:lanpaozi@126.com
Powered by Discuz! X3.4(蓝泡科技)豫ICP备19013316号-2