Skip to content

Commit 2e3b934

Browse files
committed
refactor: ♻️ 重构 createSequence 为 range
1 parent 53711c3 commit 2e3b934

5 files changed

Lines changed: 18 additions & 27 deletions

File tree

src/components/Manga/actions/translation/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,10 @@ const createTranslateRange = (imgs: Accessor<number[]>) => {
152152

153153
// 翻译全部图片
154154
export const [isTranslatingAll, translateAll] = createTranslateRange(
155-
createRootMemo(() => range(store.imgList.length - 1)),
155+
createRootMemo(() => range(store.imgList.length)),
156156
);
157157

158158
// 翻译当前页以后的全部图片
159159
export const [isTranslatingToEnd, translateToEnd] = createTranslateRange(
160-
createRootMemo(() => range(activeImgIndex(), store.imgList.length - 1)),
160+
createRootMemo(() => range(activeImgIndex(), store.imgList.length)),
161161
);

src/components/Manga/components/ComicImgFlow.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { type Component, createMemo, onMount, Index } from 'solid-js';
22
import {
33
boolDataVal,
4-
createSequence,
54
createEffectOn,
65
type UseDrag,
76
useDrag,
7+
range,
88
} from 'helper';
99

1010
import { useStyleMemo, useStyle } from '../hooks/useStyle';
@@ -116,14 +116,12 @@ export const ComicImgFlow: Component = () => {
116116

117117
if (store.option.scrollMode.enabled) {
118118
if (store.option.scrollMode.abreastMode)
119-
return `"${createSequence(abreastArea().columns.length)
120-
.map((i) => `_${i}`)
121-
.join(' ')}"`;
119+
return `"${range(abreastArea().columns.length, (i) => `_${i}`).join(
120+
' ',
121+
)}"`;
122122
if (store.option.scrollMode.doubleMode)
123123
return store.pageList.map((page) => `"${pageToText(page)}"`).join('\n');
124-
return createSequence(store.imgList.length)
125-
.map((i) => `"_${i}"`)
126-
.join('\n');
124+
return range(store.imgList.length, (i) => `"_${i}"`).join('\n');
127125
}
128126

129127
return store.page.vertical

src/helper/other.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@ export function range<T = number>(
5252
) {
5353
switch (typeof b) {
5454
case 'undefined':
55-
return [...Array.from({ length: a + 1 }).keys()];
55+
return [...Array.from({ length: a }).keys()];
5656

5757
case 'number': {
5858
const list: Array<T | number> = [];
59-
for (let i = a; i <= b; i++) list.push(c ? c(i) : i);
59+
for (let i = a; i < b; i++) list.push(c ? c(i) : i);
6060
return list;
6161
}
6262

@@ -112,11 +112,6 @@ export const getMostItem = <T>(list: T[]) => {
112112
)[0];
113113
};
114114

115-
/** 创建顺序数组 */
116-
export const createSequence = (length: number) => [
117-
...Array.from({ length }).keys(),
118-
];
119-
120115
/** 判断字符串是否为 URL */
121116
export const isUrl = (text: string) => {
122117
// 等浏览器版本上来后可以直接使用 URL.canParse

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { getInitLang } from 'helper/languages';
22
import { otherSite } from 'userscript/otherSite';
33
import {
4-
createSequence,
54
isUrl,
65
log,
76
plimit,
@@ -67,7 +66,8 @@ try {
6766

6867
const loadImgFn: LoadImgFn = (setImg) =>
6968
plimit(
70-
createSequence(totalPageNum).map(
69+
range(
70+
totalPageNum,
7171
(i) => async () => setImg(i, await getImg(i + 1)),
7272
),
7373
);
@@ -301,7 +301,7 @@ try {
301301
)
302302
throw new Error('获取图片列表时出错');
303303

304-
return plimit<string>(createSequence(pageList.length).map(getImgUrl));
304+
return plimit<string>(range(pageList.length, getImgUrl));
305305
},
306306
SPA: {
307307
isMangaPage: () => window.location.href.includes('episode'),

src/site/ehentai/index.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import {
2222
requestIdleCallback,
2323
linstenKeydown,
2424
assign,
25-
createSequence,
2625
extractRange,
2726
useCache,
2827
sleep,
28+
range,
2929
} from 'helper';
3030

3131
import { escHandler, createEhContext } from './helper';
@@ -305,9 +305,7 @@ import { expandTagList } from './expandTagList';
305305
// 所以只能一次性获取所有页数上的图片页地址
306306
if (context.pageList.length !== totalPageNum) {
307307
const allPageList = await plimit(
308-
createSequence(totalPageNum).map(
309-
(pageNum) => () => getImgPageUrl(pageNum),
310-
),
308+
range(totalPageNum, (pageNum) => () => getImgPageUrl(pageNum)),
311309
);
312310
context.pageList.length = 0;
313311
context.fileNameList.length = 0;
@@ -342,17 +340,17 @@ import { expandTagList } from './expandTagList';
342340
e.stopPropagation();
343341

344342
// eslint-disable-next-line no-alert
345-
const range = prompt(
343+
const pageRange = prompt(
346344
t('other.page_range'),
347345
(await cache.get('pageRange', unsafeWindow.gid))?.range,
348346
);
349-
if (!range) return;
347+
if (!pageRange) return;
350348
await cache.set('pageRange', {
351349
id: unsafeWindow.gid ?? context.galleryId,
352-
range,
350+
range: pageRange,
353351
});
354352

355-
setLoadImgsText(range ?? `1-${context.imgNum}`);
353+
setLoadImgsText(pageRange ?? `1-${context.imgNum}`);
356354
// 删掉当前的图片列表以便触发重新加载
357355
setComicMap('', 'imgList', undefined);
358356
showComic();

0 commit comments

Comments
 (0)