-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
161 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
title: 基于webtorrent和electron的磁力链下载器 | ||
date: 2024-10-18 10:56:48 | ||
tags: | ||
categories: electron webtorrent | ||
--- | ||
|
||
**bt-downloader**是一个基于**webtorrent**和**electron**的磁力链下载器。 | ||
|
||
项目地址:<https://github.com/Lstmxx/bt-downloader> | ||
|
||
![bt-downloader](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/985191f134e147cb973f7983d7aca489~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgTHN0bXh4:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMTU3NDE1NjM4MzgyNTIyOSJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1729825025&x-orig-sign=8r4OYl0iN7opYc4gzzrJw2Df6XU%3D) | ||
|
||
## 技术栈 | ||
|
||
- 框架:electron + vite + Vue3 + Typescript | ||
- 前端持久化 pinia | ||
- 磁力链下载:webtorrent | ||
- UI:TailwindCSS PrimeVue | ||
- 数据库: better-sqlite3 | ||
- ORM: Typeorm | ||
- 配置保存:electron-store | ||
|
||
对于想上手 electron 的朋友,可以看看 | ||
|
||
### webtorrent | ||
|
||
webtorrent 是一个基于 WebRTC 的磁力链下载客户端。对比 Aria2 的优势在于 webtorrent 使用 js 写的,同时也有对应的 types 包,所以对于 electron 开发会比较友好。 | ||
|
||
### better-sqlite3 | ||
|
||
对于桌面端应用的数据库选择,一般是选择 sqlite3。而 better-sqlite3 要比 sqlite3 性能好一些,所以选择了 better-sqlite3 | ||
|
||
![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/d395897663ef402598dea133a9e13af3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgTHN0bXh4:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMTU3NDE1NjM4MzgyNTIyOSJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1729825025&x-orig-sign=6%2FoPZNbUv2%2F9KnvRqAh7bayFxvA%3D) | ||
|
||
ORM 方面则选择了 Typeorm。 | ||
|
||
### electron-store | ||
|
||
对于一些比较简单的数据,例如系统配置等数据,可以直接用来保存,非常快捷方便。 | ||
|
||
### UI | ||
|
||
ui 方面 taliwindcss 是必选的,这个习惯之后真的太香了。而 PrimeVue 则是因为还没用过所作出的选择,不必太过在意。 | ||
|
||
## 结语 | ||
|
||
经过这次开发,大概是掌握和熟悉了 electron 的开发了,有一说一开发桌面应用的好玩程度比 web 端要好玩很多,主要是可以操作的范围多了很多,使得一些想法和实现变得可能。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
title: 如何绕开浏览器批量下载的限制 | ||
date: 2024-10-18 10:53:09 | ||
tags: | ||
categories: typescript 浏览器 | ||
--- |
Binary file added
BIN
+147 KB
source/_posts/2024-10-18-如何绕开浏览器批量下载的限制/Pasted image 20241017174747.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
--- | ||
title: 关于我 | ||
date: 2024-08-02 16:43:01 | ||
layout: | ||
--- | ||
|
||
## Hi there 👋 | ||
|
||
### 关于我 | ||
|
||
大家好,这里是 Lstmxx,一个全干工程师,可以叫我小 L。可以在以下地方找到我: | ||
|
||
- 微信: [LsmTxx](https://raw.githubusercontent.com/Lstmxx/picx-images-hosting/master/20240805/WechatIMG145.1seybke27q.webp) | ||
- email: <[email protected]> <[email protected]> | ||
- 博客会在 [掘金](https://juejin.cn/user/1574156383825229) 和 [个人主页](https://lstmxx.github.io/) 同步更新 | ||
- [github](https://github.com/Lstmxx) | ||
|
||
### 技术栈 | ||
|
||
**语言** | ||
|
||
[![language](https://skillicons.dev/icons?i=js,ts,python)](https://skillicons.dev) | ||
|
||
**前端** | ||
|
||
[![frontend](https://skillicons.dev/icons?i=html,css)](https://skillicons.dev) | ||
|
||
[![frontend](https://skillicons.dev/icons?i=vue,react,electron,nextjs,antdesign)](https://skillicons.dev) | ||
|
||
[![frontend](https://skillicons.dev/icons?i=tailwind,scss,less)](https://skillicons.dev) | ||
|
||
[![frontend](https://skillicons.dev/icons?i=pnpm,npm,vite,webpack)](https://skillicons.dev) | ||
|
||
**后端** | ||
|
||
[![backend](https://skillicons.dev/icons?i=nodejs,nestjs,mysql,redis)](https://skillicons.dev) | ||
|
||
**通用** | ||
|
||
[![noraml](https://skillicons.dev/icons?i=git,jenkins,gitlab,docker,nginx)](https://skillicons.dev) | ||
|
||
**工具** | ||
|
||
[![noraml](https://skillicons.dev/icons?i=vscode,postman,notion)](https://skillicons.dev) | ||
|
||
### 其他 | ||
|
||
![Lstmxx's GitHub stats](https://github-readme-stats.vercel.app/api?username=Lstmxx&count_private=true) | ||
|
||
![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=Lstmxx&layout=compact&hide=jupyter%20notebook) | ||
|
||
### 工作经历 | ||
|
||
**广州致景信息科技有限公司—高级前端工程师(2021 - 至今)** | ||
|
||
- 先后负责 APS 系统、PIMS 系统和 AI 相关业务等的需求沟通和前端开发工作 | ||
- 负责 BG 前端团队基建如组件库、公共库的开发和维护,提高工作效率 | ||
- 参与编写、审核公司新版前端规范,减少 CR 时间 | ||
|
||
**康爱多数字健康科技有限公司—前端工程师(2020 - 2021)** | ||
|
||
- 负责数字化营销平台的前端开发工作 | ||
- 设计 IM 系统前端架构 | ||
- 负责制定团队前端规范 | ||
|
||
**小贝区块链科技有限公司—前端工程师 (2019 - 2020)** | ||
|
||
- 负责公司前端项目的开发和技术选型 | ||
|
||
### 项目经历 | ||
|
||
**Fashion Mind (2024-01 - 至今)** | ||
|
||
Fashion Mind 是一个基于大模型打造智能设计系统。 | ||
|
||
技术栈:Vue3 + TypeScript + Element UI + Tailwindcss | ||
|
||
- 为了解决服务端叠图时间过长的问题和减少图片传输占用时间,利用 opencvjs 在 web 端实现了 mask 区的识别,并通过 opencvjs 和 canvas 将印花图以正片叠底的方式生成展示图片,将原来需要 10s+的时间,减少到了 5s 以下,减轻了服务端压力的同时,优化了用户交互。 | ||
- 为了使用户处理图片更加便捷,利用 fabricjs 实现了截图、矩形选区、索套功能,使用户能够自定义原图区域和 mask 区域。 | ||
- 为了解决算法识别出来的动态标签问题,拉通了后端和另一个项目的负责人,制定了标签存储的 json 数据结构;为了统一性,封装了通用解析函数到公共包中供其他项目使用。 | ||
|
||
**Fashion Admin (2024-01 - 至今)** | ||
|
||
Fashion Admin 是一个 Fashion Mind 的后台管理系统。 | ||
|
||
技术栈:Vue3 + TypeScript + Element UI + Tailwindcss | ||
|
||
- 完成数据报表、配置等前端开发工作。 | ||
- 为了解决标签依赖算法组的树形标签数据库带来的不稳定性,将数据树形可视化展示出来用于勾选同步。同时为了避免标签一次性的大量渲染导致的卡顿,使用虚拟列表来重新编写树形组件,将每次渲染稳定在了 16.7ms 左右。 | ||
|
||
**toy-monorepo (2022-01 - 至今)** | ||
|
||
toy-monorepo 是 BG 内部的公共库,用于抽离业务通用组件、通用 hooks 和配置。 | ||
|
||
技术栈:pnpm + Vue3 + TypeScript + Element UI + Tailwindcss | ||
|
||
- 为了提升分页数据报表的开发效率,将 elementui 中的 table 进行二次开发封装,统一了项目中的 table 对于时间、数字的格式化;同时为了解决 template 中 ElTableColumn 对 row 类型支持不友好的问题,增加了 columns 传参来支持 tsx 的形式来编写 column。组件在项目中使用率达到了 100%。 | ||
- 为了统一项目组内项目的编码风格减少 cr 时间,收集和整理所有项目的 eslint,并将其抽离出来变成公共包, | ||
|
||
**APS 系统 (2022-01 - 2023-10)** | ||
|
||
APS 是一个排厂系统,用于简化和数字化工厂对面料进行排产和加工流程。 | ||
|
||
技术栈:Vue3 + TypeScript + Element UI | ||
|
||
- 为了可视化排厂派厂流程从而减少流程来提高效率,利用原生 drag drop mouse 事件来实现了甘特图组件; 基于可视区域的大小计算出范围内可视任务,减少了不必要的渲染。 | ||
- 为了提高开发效率和提升打包速度,将项目打包和构建从 wepback 迁移到了 vite,使得 jenkins 中构建所需时间从原本的 5 分钟缩减到了 2 分半钟左右;将迁移过程整理成了文档并在团队内部进行分享,帮助其他项目迁移至 vite。 |