Skip to content

Commit

Permalink
feat: 新增文章
Browse files Browse the repository at this point in the history
  • Loading branch information
Lstmxx committed Oct 18, 2024
1 parent b72ef0d commit ae451b6
Show file tree
Hide file tree
Showing 4 changed files with 161 additions and 0 deletions.
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 端要好玩很多,主要是可以操作的范围多了很多,使得一些想法和实现变得可能。
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 浏览器
---
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
107 changes: 107 additions & 0 deletions source/about/index.md
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。可以在以下地方找到我:

- 微信: &nbsp; [LsmTxx](https://raw.githubusercontent.com/Lstmxx/picx-images-hosting/master/20240805/WechatIMG145.1seybke27q.webp)
- email: &nbsp; <[email protected]> &nbsp; <[email protected]>
- 博客会在&nbsp;[掘金](https://juejin.cn/user/1574156383825229)&nbsp;&nbsp;[个人主页](https://lstmxx.github.io/)&nbsp;同步更新
- [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。

0 comments on commit ae451b6

Please sign in to comment.