From 110bd15ac4bcfe9417d66a8bdde113e5eed89dfb Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Tue, 14 Feb 2023 11:05:30 +0800 Subject: [PATCH] 2023-02-14 11:05:30 --- EpubCrawler/util.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/EpubCrawler/util.py b/EpubCrawler/util.py index a78fe20..588eb91 100644 --- a/EpubCrawler/util.py +++ b/EpubCrawler/util.py @@ -3,6 +3,7 @@ import requests from imgyaso import pngquant_bts, \ adathres_bts, grid_bts, noise_bts, trunc_bts +import re import os import shutil import tempfile @@ -114,4 +115,29 @@ def save_img(hash, opti, img): dir = path.join(bundle_dir, cache_dir) safe_mkdir(dir) fname = path.join(dir, f'{hash}-{opti}.png') - open(fname, 'wb').write(img) \ No newline at end of file + open(fname, 'wb').write(img) + +def size_str_to_int(s): + factor_map = { + '' : 1, + 'k': 1 << 10, + 'm': 1 << 20, + 'g': 1 << 30, + 't': 1 << 40, + 'p': 1 << 50, + 'e': 1 << 60, + 'z': 1 << 60, + 'y': 1 << 70, + 'b': 1 << 80, + 'n': 1 << 90, + 'd': 1 << 100, + 'c': 1 << 110, + 'x': 1 << 120, + } + suf = ''.join(factor_map.keys()) + m = re.search(r'^(\d+(?:\.\d+)?)([' + suf + r']?)$', s.lower()) + if not m: return -1 + base = float(m.group(1)) + + factor = factor_map[m.group(2)] + return int(base * factor) \ No newline at end of file -- GitLab