优化配置文件的编码方式
@ -1,6 +1,7 @@
|
|||||||
from json import dump
|
from json import dump
|
||||||
from json import load
|
from json import load
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from platform import system
|
||||||
|
|
||||||
__all__ = ['Settings']
|
__all__ = ['Settings']
|
||||||
|
|
||||||
@ -16,6 +17,7 @@ class Settings:
|
|||||||
"chunk": 1024 * 1024,
|
"chunk": 1024 * 1024,
|
||||||
"max_retry": 5,
|
"max_retry": 5,
|
||||||
}
|
}
|
||||||
|
encode = "UTF-8-SIG" if system() == "Windows" else "UTF-8"
|
||||||
|
|
||||||
def __init__(self, root: Path):
|
def __init__(self, root: Path):
|
||||||
self.file = root.joinpath("./settings.json")
|
self.file = root.joinpath("./settings.json")
|
||||||
@ -24,14 +26,14 @@ class Settings:
|
|||||||
return self.read() if self.file.is_file() else self.create()
|
return self.read() if self.file.is_file() else self.create()
|
||||||
|
|
||||||
def read(self) -> dict:
|
def read(self) -> dict:
|
||||||
with self.file.open("r", encoding="utf-8") as f:
|
with self.file.open("r", encoding=self.encode) as f:
|
||||||
return load(f)
|
return load(f)
|
||||||
|
|
||||||
def create(self) -> dict:
|
def create(self) -> dict:
|
||||||
with self.file.open("w", encoding="utf-8") as f:
|
with self.file.open("w", encoding=self.encode) as f:
|
||||||
dump(self.default, f, indent=4)
|
dump(self.default, f, indent=4)
|
||||||
return self.default
|
return self.default
|
||||||
|
|
||||||
def update(self, data: dict):
|
def update(self, data: dict):
|
||||||
with self.file.open("w", encoding="utf-8") as f:
|
with self.file.open("w", encoding=self.encode) as f:
|
||||||
dump(data, f, indent=4, ensure_ascii=False)
|
dump(data, f, indent=4, ensure_ascii=False)
|
||||||
|
|||||||
@ -14,7 +14,7 @@ from textual.widgets import Footer
|
|||||||
from textual.widgets import Header
|
from textual.widgets import Header
|
||||||
from textual.widgets import Input
|
from textual.widgets import Input
|
||||||
from textual.widgets import Label
|
from textual.widgets import Label
|
||||||
from textual.widgets import ProgressBar
|
# from textual.widgets import ProgressBar
|
||||||
from textual.widgets import RichLog
|
from textual.widgets import RichLog
|
||||||
|
|
||||||
from .Downloader import Download
|
from .Downloader import Download
|
||||||
@ -209,7 +209,7 @@ class XHSDownloader(App):
|
|||||||
return
|
return
|
||||||
self.url = self.query_one(Input)
|
self.url = self.query_one(Input)
|
||||||
self.log_ = self.query_one(RichLog)
|
self.log_ = self.query_one(RichLog)
|
||||||
self.bar = self.query_one(ProgressBar)
|
# self.bar = self.query_one(ProgressBar)
|
||||||
|
|
||||||
async def action_check_update(self):
|
async def action_check_update(self):
|
||||||
self.__init_objects()
|
self.__init_objects()
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 14 KiB |