Compare commits

...

11 Commits

Author SHA1 Message Date
ikun
8bc6095dcf 1.2.1 2024-09-16 13:45:37 +08:00
ikun
b1b0fe9517 feat: 进度条 2024-09-16 13:45:21 +08:00
ikun
5964b5fb4e Update README.md 2024-09-16 10:13:22 +08:00
ikun
aa27e11cd7 Merge branch 'main' of https://github.com/ikunshare/Onekey 2024-09-15 22:22:47 +08:00
ikun
ecc454de61 chore: 代码优化 2024-09-15 22:22:33 +08:00
ikun
1cdb19b3df Update README.md 2024-09-15 19:17:11 +08:00
ikun
53b76aea64 chore: 忘了点东西 2024-09-15 19:14:03 +08:00
ikun
7e3e06ac00 fix: 手滑把依赖删了 2024-09-15 18:50:09 +08:00
ikun
cfe9c5c8d6 Update build.yml 2024-09-15 18:32:25 +08:00
ikun
b8f0b5caf4 Update build.yml 2024-09-15 18:23:49 +08:00
ikun
c866f19967 Update build.yml 2024-09-15 18:10:50 +08:00
9 changed files with 59 additions and 27 deletions

View File

@@ -7,14 +7,18 @@ on:
jobs:
build:
runs-on: ubuntu-latest
runs-on: windows-2019
steps:
- name: Check out git repository
uses: actions/checkout@v4
# Push tag to GitHub if package.json version's tag is not tagged
- name: Get package version
run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV
shell: powershell
run: |
$version = (Get-Content package.json | ConvertFrom-Json).version
echo "PACKAGE_VERSION=$version" >> $env:GITHUB_ENV
- name: Set up Python 3.11
uses: actions/setup-python@v3
@@ -41,6 +45,7 @@ jobs:
file-version: ${{ env.PACKAGE_VERSION }}
product-version: ${{ env.PACKAGE_VERSION }}
file-description: 一个Steam仓库清单下载器
copyright: Copyright © 2024 ikun0014
output-file: Onekey---v${{ env.PACKAGE_VERSION }}.exe
assume-yes-for-downloads: true
output-dir: build
@@ -61,6 +66,6 @@ jobs:
draft: false
tag_name: v${{ env.PACKAGE_VERSION }}
files: |
Onekey---v${{ env.PACKAGE_VERSION }}.exe
build/Onekey---v${{ env.PACKAGE_VERSION }}.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -17,24 +17,26 @@
先去Release下最新发布然后去steamtools官网下steamtools日志会有点石介意别用
## 开发
本程序使用Python编程语言开发
要求环境:
1.Python 3.10及以上
2.Windows 10及以上
3.使用Git进行版本管理
本程序使用Python编程语言开发
要求环境:
1.Python 3.10及以上
2.Windows 10及以上
3.使用Git进行版本管理
1.克隆项目到本地
```
git clone https://github.com/ikunshare/Onekey
```
2.安装依赖
```
pip install -r requirements.txt
3.Success
```
## 项目协议
本项目基于 ACSL V2.0 许可证发行,以下协议是对于 ACSL V2.0 原协议的补充,如有冲突,以以下协议为准。
本项目基于 GPL-3.0 许可证发行,以下协议是对于 GPL-3.0 原协议的补充,如有冲突,以以下协议为准。
词语约定:“使用者”指签署本协议的使用者;“版权数据”指包括但不限于图像、音频、名字等在内的他人拥有所属版权的数据。

View File

@@ -7,16 +7,23 @@ import aiofiles
from .stack_error import stack_error
from .log import log
async def gen_config_file():
qa1 = "温馨提示Github_Personal_Token可在Github设置的最底下开发者选项找到详情看教程"
tutorial = "https://ikunshare.com/Onekey_tutorial"
default_config ={
"Github_Personal_Token": "",
"Custom_Steam_Path": "",
"QA1": "温馨提示Github_Personal_Token可在Github设置的最底下开发者选项找到详情看教程",
"教程": "https://lyvx-my.sharepoint.com/:w:/g/personal/ikun_ikunshare_com/EWqIqyCElLNLo_CKfLbqix0BWU_O03HLzEHQKHdJYrUz-Q?e=79MZjw"
"QA1": qa1,
"教程": tutorial
}
async with aiofiles.open("./config.json", mode="w", encoding="utf-8") as f:
await f.write(json.dumps(default_config, indent=2, ensure_ascii=False,
escape_forward_slashes=False))
async with aiofiles.open("./config.json",
mode="w",
encoding="utf-8") as f:
await f.write(json.dumps(default_config,
indent=2,
ensure_ascii=False,
escape_forward_slashes=False))
await f.close()
log.info(' 🖱️ 程序可能为第一次启动,请填写配置文件后重新启动程序')
@@ -28,7 +35,9 @@ async def load_config():
sys.exit()
else:
try:
async with aiofiles.open("./config.json", mode="r", encoding="utf-8") as f:
async with aiofiles.open("./config.json",
mode="r",
encoding="utf-8") as f:
config = json.loads(await f.read())
return config
except Exception as e:
@@ -37,4 +46,4 @@ async def load_config():
os.system('pause')
config = asyncio.run(load_config())
config = asyncio.run(load_config())

View File

@@ -6,6 +6,7 @@ from .log import log
lock = asyncio.Lock()
async def depotkey_merge(config_path, depots_config):
if not config_path.exists():
async with lock:

View File

@@ -8,8 +8,8 @@ def init():
print('\033[1;32;40m | |_| | | | \\ | | |___ | | \\ \\ | |___ / /' + '\033[0m')
print('\033[1;32;40m \\_____/ |_| \\_| |_____| |_| \\_\\ |_____| /_/' + '\033[0m')
log.info('作者ikun0014')
log.info('本项目基于wxy1343/ManifestAutoUpdate进行修改采用ACSL许可证')
log.info('版本1.1.9')
log.info('本项目基于wxy1343/ManifestAutoUpdate进行修改采用GPL-3.0许可证')
log.info('版本1.2.1')
log.info('项目仓库https://github.com/ikunshare/Onekey')
log.info('官网ikunshare.com')
log.warning('本项目完全开源免费如果你在淘宝QQ群内通过购买方式获得赶紧回去骂商家死全家\n交流群组:\n点击链接加入群聊【𝗶𝗸𝘂𝗻分享】:https://qm.qq.com/q/d7sWovfAGI\nhttps://t.me/ikunshare_group')
log.warning('本项目完全开源免费如果你在淘宝QQ群内通过购买方式获得赶紧回去骂商家死全家\n交流群组:\nhttps://qm.qq.com/q/d7sWovfAGI\nhttps://t.me/ikunshare_group')

View File

@@ -1,6 +1,7 @@
import logging
import colorlog
def init_log():
logger = logging.getLogger('Onekey')
logger.setLevel(logging.DEBUG)
@@ -18,4 +19,5 @@ def init_log():
logger.addHandler(stream_handler)
return logger
log = init_log()
log = init_log()

View File

@@ -1,6 +1,9 @@
from aiohttp import ClientError
from tqdm.asyncio import tqdm_asyncio
from .log import log
async def get(sha, path, repo, session):
url_list = [
f'https://cdn.jsdmirror.com/gh/{repo}@{sha}/{path}',
@@ -14,12 +17,21 @@ async def get(sha, path, repo, session):
try:
async with session.get(url, ssl=False) as r:
if r.status == 200:
return await r.read()
total_size = int(r.headers.get('Content-Length', 0))
chunk_size = 1024
content = bytearray()
with tqdm_asyncio(total=total_size, unit='B', unit_scale=True, desc=f'下载 {path}') as pbar:
async for chunk in r.content.iter_chunked(chunk_size):
content.extend(chunk)
pbar.update(len(chunk))
return content
else:
log.error(f' 🔄 获取失败: {path} - 状态码: {r.status}')
except ClientError:
log.error(f' 🔄 获取失败: {path} - 连接错误')
retry -= 1
log.warning(f' 🔄 重试剩余次数: {retry} - {path}')
log.error(f' 🔄 超过最大重试次数: {path}')
raise Exception(f' 🔄 无法下载: {path}')
log.warning(f' 🔄 重试剩余次数: {retry} - {path}')
log.error(f' 🔄 超过最大重试次数: {path}')
raise Exception(f' 🔄 无法下载: {path}')

View File

@@ -1,6 +1,6 @@
{
"name": "onekey",
"version": "1.2.0",
"version": "1.2.1",
"description": "一个Steam仓库清单下载器",
"main": "index.js",
"scripts": {

View File

@@ -5,3 +5,4 @@ vdf
nuitka
requests
imageio
aiohttp