linkpress 0.2.4 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md ADDED
@@ -0,0 +1,218 @@
1
+ <p align="center">
2
+ <img src="assets/FullLogo_Transparent.png" alt="LinkPress" width="400">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <strong>슬랙 링크를 나만의 기술 매거진으로!</strong>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="#빠른-시작">빠른 시작</a> · <a href="#기능">기능</a> · <a href="#명령어">명령어</a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="README.md">English</a>
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="https://www.npmjs.com/package/linkpress"><img src="https://img.shields.io/npm/v/linkpress.svg" alt="npm version"></a>
19
+ <img src="https://img.shields.io/github/license/mindori/linkpress" alt="license">
20
+ <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node version">
21
+ <img src="https://img.shields.io/badge/AI-Claude-blueviolet" alt="AI powered by Claude">
22
+ </p>
23
+
24
+ <p align="center">
25
+ <img src="assets/serve.gif" alt="LinkPress Demo" width="800">
26
+ </p>
27
+
28
+
29
+ ---
30
+
31
+ ## 왜 LinkPress인가요?
32
+
33
+ 매일 슬랙에 좋은 기술 아티클이 공유됩니다. 하지만 쌓이기만 하고, 묻히고, 결국 읽지 못합니다.
34
+
35
+ **LinkPress가 이 문제를 해결합니다.** 슬랙 채널에서 링크를 수집하고, AI로 요약하고, 실제로 읽고 싶은 멋진 매거진을 생성합니다.
36
+
37
+ - 🤖 **AI 요약** — 클릭하기 전에 핵심 파악 (Claude 지원)
38
+ - 📰 **매거진 스타일 UI** — 지루한 목록이 아닌, 큐레이션된 읽기 경험
39
+ - 🔒 **100% 로컬** — 데이터가 내 컴퓨터에만 저장
40
+ - ⚡ **5분 설치** — 설치하고, 슬랙 연결하면 끝
41
+
42
+
43
+ ## 요구 사항
44
+
45
+ - Node.js 18+
46
+ - AI API 키 (Anthropic)
47
+ - 슬랙 계정
48
+
49
+
50
+ ## 빠른 시작
51
+
52
+ ```bash
53
+ # 전역 설치
54
+ npm install -g linkpress
55
+
56
+ # 초기화 (AI 프로바이더 설정)
57
+ linkpress init
58
+
59
+ # 슬랙 워크스페이스 연결
60
+ linkpress source add slack
61
+
62
+ # 동기화, 생성, 실행!
63
+ linkpress sync
64
+ linkpress generate
65
+ linkpress serve
66
+ ```
67
+
68
+
69
+ ## Step 1: 슬랙 연결
70
+
71
+ 자동 토큰 추출로 슬랙 워크스페이스를 연결합니다. 로그인만 하면 나머지는 자동으로 처리됩니다.
72
+
73
+ > **🚀 Coming Soon:** LinkPress SaaS에서 **Slack OAuth**를 지원할 예정입니다 — 원클릭으로 워크스페이스 연결이 가능해집니다.
74
+
75
+ ```bash
76
+ linkpress source add slack
77
+ ```
78
+
79
+ <p align="center">
80
+ <img src="assets/add.gif" alt="Connect Slack" width="800">
81
+ </p>
82
+
83
+ > **⚠️ 중요:** 브라우저가 열리면 **슬랙 데스크톱 앱으로 열지 마세요**.
84
+ > 반드시 **"브라우저에서 슬랙 사용"**을 클릭해야 합니다.
85
+ > 자동 토큰 추출은 브라우저에서만 작동합니다.
86
+
87
+ > **📝 참고:** **자동** 방식(기본값)을 권장합니다. 자동 추출이 실패하면
88
+ > **수동** 모드를 선택하여 브라우저 DevTools에서 토큰을 복사할 수 있습니다.
89
+ > CLI가 과정을 안내합니다.
90
+
91
+ 실시간 자동완성으로 모니터링할 채널을 선택하세요. **저장된 메시지(나에게 보낸 DM)**가 기본으로 추가됩니다. 검색어를 입력하고, Enter로 선택하고, "Done"을 선택하면 완료됩니다.
92
+
93
+ <p align="center">
94
+ <img src="assets/select.gif" alt="Channel Selection" width="800">
95
+ </p>
96
+
97
+ > **💡 팁:** 저장된 메시지가 링크 큐레이션의 가장 쉬운 방법입니다 — 슬랙에서 관심 있는 아티클을 나에게 전달하기만 하면 됩니다!
98
+
99
+
100
+ ## Step 2: 링크 동기화
101
+
102
+ 연결된 슬랙 채널에서 링크를 가져옵니다. AI가 자동으로 노이즈(내부 문서, 동영상 등)를 필터링하고 가치 있는 기술 콘텐츠만 남깁니다.
103
+
104
+ ```bash
105
+ linkpress sync
106
+ ```
107
+
108
+ <p align="center">
109
+ <img src="assets/sync.gif" alt="Sync Links" width="800">
110
+ </p>
111
+
112
+
113
+ ## Step 3: 매거진 생성
114
+
115
+ > **⚠️ 중요:** 슬랙 토큰은 주기적으로 만료됩니다. 동기화 중 `invalid_auth` 에러가 발생하면 `linkpress source add slack`을 다시 실행하여 토큰을 갱신하세요.
116
+
117
+ AI로 아티클을 처리하고 나만의 매거진을 생성합니다. 각 아티클에 다음이 포함됩니다:
118
+ - 눈길을 끄는 헤드라인
119
+ - TL;DR 요약
120
+ - 핵심 포인트
121
+ - 난이도
122
+ - 읽기 시간
123
+
124
+ ```bash
125
+ linkpress generate
126
+ linkpress serve
127
+ ```
128
+
129
+ <p align="center">
130
+ <img src="assets/generate.gif" alt="Generate Magazine" width="800">
131
+ </p>
132
+
133
+ > **참고:** 봇 탐지가 있는 일부 웹사이트는 스크래핑에 실패할 수 있습니다 (HTTP 403). 이런 아티클은 처리 중 건너뛰지만, 원본 URL로 직접 접근할 수 있습니다.
134
+
135
+
136
+ ## 기능
137
+
138
+ ### 🤖 AI 기반
139
+ - **Anthropic** (Claude) - 현재 지원
140
+ - **OpenAI** (GPT) - 지원 예정
141
+ - **Google** (Gemini) - 지원 예정
142
+
143
+ ### 📊 스마트 분류
144
+ 아티클이 자동으로 태그되고 분류됩니다:
145
+ - 주제 (Frontend, Backend, DevOps, AI/ML 등)
146
+ - 난이도 (입문, 중급, 고급)
147
+ - 읽기 시간
148
+
149
+ ### 🌙 라이트 & 다크 테마
150
+ 라이트 모드와 다크 모드를 전환할 수 있습니다. 설정이 저장됩니다.
151
+
152
+ ### ✅ 읽음/안읽음 추적
153
+ 읽은 것을 추적합니다. 클릭 한 번으로 아티클을 읽음으로 표시할 수 있습니다.
154
+
155
+ ### 👀 워치 모드
156
+ 실시간 모니터링 — 새 아티클이 공유되면 자동으로 나타납니다.
157
+
158
+ ```bash
159
+ linkpress serve --watch
160
+ ```
161
+
162
+ ### 🌍 다국어 지원
163
+ 원하는 언어로 AI 요약을 받을 수 있습니다 (English, 한국어, 日本語, 中文 등)
164
+
165
+ ## 명령어
166
+
167
+ | 명령어 | 설명 |
168
+ |--------|------|
169
+ | `linkpress init` | AI 프로바이더 및 설정 구성 |
170
+ | `linkpress source add slack` | 슬랙 워크스페이스 연결 |
171
+ | `linkpress source list` | 연결된 소스 목록 |
172
+ | `linkpress source remove slack` | 워크스페이스 제거 |
173
+ | `linkpress sync` | 슬랙에서 링크 가져오기 |
174
+ | `linkpress add <url>` | 수동으로 URL 추가 |
175
+ | `linkpress list` | 저장된 아티클 보기 |
176
+ | `linkpress generate` | 아티클 처리 및 매거진 생성 |
177
+ | `linkpress generate --skip-process` | AI 처리 없이 재생성 |
178
+ | `linkpress serve` | 로컬 서버 시작 (localhost:3000) |
179
+ | `linkpress serve --watch` | 실시간 모니터링으로 시작 |
180
+ | `linkpress clear` | 모든 아티클 삭제 |
181
+
182
+
183
+ ## 설정
184
+
185
+ 설정은 `~/.linkpress/config.yaml`에 저장됩니다:
186
+
187
+ ```yaml
188
+ ai:
189
+ provider: anthropic # anthropic, openai, gemini
190
+ model: claude-sonnet-4-5-20250929
191
+ apiKey: sk-ant-...
192
+ language: 한국어 # 요약 언어
193
+
194
+ sources:
195
+ slack:
196
+ - workspace: MyWorkspace
197
+ channels:
198
+ - id: C01234567
199
+ name: tech-links
200
+
201
+ output:
202
+ directory: ~/.linkpress/output
203
+ format: html
204
+ ```
205
+
206
+
207
+ ## 기여하기
208
+
209
+ 기여를 환영합니다!
210
+
211
+ - 🐛 버그 제보
212
+ - 💡 기능 제안
213
+ - 🔧 풀 리퀘스트
214
+
215
+
216
+ ## 저자
217
+
218
+ [Changmin (Chris) Kang](https://github.com/mindori)
package/README.md CHANGED
@@ -3,12 +3,19 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <strong>Turn your Slack links into a personal tech magazine</strong>
6
+ <strong>Turn your Slack links into a personal tech magazine!</strong>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="#quick-start">Quick Start</a> · <a href="#features">Features</a> · <a href="#commands">Commands</a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="README.ko.md">한국어</a>
7
15
  </p>
8
16
 
9
17
  <p align="center">
10
18
  <a href="https://www.npmjs.com/package/linkpress"><img src="https://img.shields.io/npm/v/linkpress.svg" alt="npm version"></a>
11
- <a href="https://www.npmjs.com/package/linkpress"><img src="https://img.shields.io/npm/dm/linkpress.svg" alt="npm downloads"></a>
12
19
  <img src="https://img.shields.io/github/license/mindori/linkpress" alt="license">
13
20
  <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node version">
14
21
  <img src="https://img.shields.io/badge/AI-Claude-blueviolet" alt="AI powered by Claude">
@@ -18,6 +25,7 @@
18
25
  <img src="assets/serve.gif" alt="LinkPress Demo" width="800">
19
26
  </p>
20
27
 
28
+
21
29
  ---
22
30
 
23
31
  ## Why LinkPress?
@@ -60,7 +68,9 @@ linkpress serve
60
68
 
61
69
  ## Step 1: Connect Slack
62
70
 
63
- Connect your Slack workspace with automatic token extraction. No OAuth app needed just log in.
71
+ Connect your Slack workspace with automatic token extraction. Just log in and we'll handle the rest.
72
+
73
+ > **🚀 Coming Soon:** LinkPress SaaS will support **Slack OAuth** for one-click workspace connection — no manual login required.
64
74
 
65
75
  ```bash
66
76
  linkpress source add slack
@@ -151,7 +161,6 @@ linkpress serve --watch
151
161
  ### 🌍 Multilingual
152
162
  AI summaries in your preferred language (English, 한국어, 日本語, 中文, etc.)
153
163
 
154
-
155
164
  ## Commands
156
165
 
157
166
  | Command | Description |
package/dist/ai.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { serializeSummary, parseSummary, fetchModels, FALLBACK_MODELS, type ArticleSummary, type ContentClassification, type ModelInfo } from '@linkpress/core';
1
+ import { serializeSummary, parseSummary, fetchModels, FALLBACK_MODELS, type ArticleSummary, type ContentClassification, type ModelInfo, type AIConfig } from '@linkpress/core';
2
2
  export { serializeSummary, parseSummary, fetchModels, FALLBACK_MODELS };
3
3
  export type { ArticleSummary, ContentClassification, ModelInfo };
4
+ export declare function getAIConfig(): AIConfig;
4
5
  export declare function summarizeArticle(title: string, content: string, url: string): Promise<ArticleSummary>;
5
6
  export declare function classifyContent(messageText: string, url: string, title: string, description: string): Promise<ContentClassification>;
6
7
  //# sourceMappingURL=ai.d.ts.map
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EAEf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;AAYjE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAEhC"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;AAEjE,wBAAgB,WAAW,IAAI,QAAQ,CAQtC;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAEhC"}
package/dist/ai.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { summarizeArticle as coreSummarize, classifyContent as coreClassify, serializeSummary, parseSummary, fetchModels, FALLBACK_MODELS, } from '@linkpress/core';
2
2
  import { loadConfig } from './config.js';
3
3
  export { serializeSummary, parseSummary, fetchModels, FALLBACK_MODELS };
4
- function getAIConfig() {
4
+ export function getAIConfig() {
5
5
  const config = loadConfig();
6
6
  return {
7
7
  provider: config.ai.provider,
package/dist/ai.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,aAAa,EACjC,eAAe,IAAI,YAAY,EAC/B,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAGxE,SAAS,WAAW;IAClB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;QAC5B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK;QACtB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,OAAe,EACf,GAAW;IAEX,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,GAAW,EACX,KAAa,EACb,WAAmB;IAEnB,OAAO,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,aAAa,EACjC,eAAe,IAAI,YAAY,EAC/B,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAGxE,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;QAC5B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK;QACtB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,OAAe,EACf,GAAW;IAEX,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,GAAW,EACX,KAAa,EACb,WAAmB;IAEnB,OAAO,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,eAAO,MAAM,WAAW,SA4HpB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,eAAO,MAAM,WAAW,SAsIpB,CAAC"}
@@ -117,11 +117,19 @@ export const initCommand = new Command('init')
117
117
  default: config.output.format,
118
118
  }]);
119
119
  config.output.format = outputFormat;
120
+ const { skipOutdated } = await inquirer.prompt([{
121
+ type: 'confirm',
122
+ name: 'skipOutdated',
123
+ message: 'Filter out deprecated/outdated content? (experimental)',
124
+ default: config.filter?.skipOutdated ?? false,
125
+ }]);
126
+ config.filter = { skipOutdated };
120
127
  saveConfig(config);
121
128
  console.log(chalk.green('\n✅ Configuration saved to'), chalk.cyan(getConfigDir()));
122
129
  console.log(chalk.dim(` Provider: ${providerName}`));
123
130
  console.log(chalk.dim(` Model: ${finalModel}`));
124
131
  console.log(chalk.dim(` Language: ${finalLanguage}`));
132
+ console.log(chalk.dim(` Outdated filter: ${skipOutdated ? 'enabled' : 'disabled'}`));
125
133
  console.log(chalk.dim('\nNext steps:'));
126
134
  console.log(chalk.dim(' 1. Add a Slack source:'), chalk.white('linkpress source add slack'));
127
135
  console.log(chalk.dim(' 2. Or add URLs manually:'), chalk.white('linkpress add <url>'));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/C"}
package/dist/config.js CHANGED
@@ -28,6 +28,9 @@ export function getDefaultConfig() {
28
28
  directory: path.join(CONFIG_DIR, 'output'),
29
29
  format: 'html',
30
30
  },
31
+ filter: {
32
+ skipOutdated: false,
33
+ },
31
34
  };
32
35
  }
33
36
  export function loadConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAEtD,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,OAAO,EAAE,EAAE;QACX,EAAE,EAAE;YACF,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,SAAS;SACpB;QACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC1C,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAW,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAEtD,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,OAAO,EAAE,EAAE;QACX,EAAE,EAAE;YACF,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,SAAS;SACpB;QACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC1C,MAAM,EAAE,MAAM;SACf;QACD,MAAM,EAAE;YACN,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAW,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
package/dist/db.d.ts CHANGED
@@ -7,6 +7,8 @@ export declare function getArticlesForReprocess(limit?: number): Article[];
7
7
  export declare function getAllArticles(limit?: number): Article[];
8
8
  export declare function updateArticle(article: Article): void;
9
9
  export declare function articleExists(url: string): boolean;
10
+ export declare function getExistingUrls(urls: string[]): Set<string>;
11
+ export declare function getProcessedArticles(limit?: number): Article[];
10
12
  export declare function clearAllArticles(): number;
11
13
  export declare function markAsRead(articleId: string): void;
12
14
  export declare function markAsUnread(articleId: string): void;
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAOzC;AA+CD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBpD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,EAAE,CAOlD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAM,GAAG,OAAO,EAAE,CAO9D;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAM,GAAG,OAAO,EAAE,CAOrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMlD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAIrE"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAOzC;AAwDD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBpD;AAED,wBAAgB,sBAAsB,IAAI,OAAO,EAAE,CAOlD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAM,GAAG,OAAO,EAAE,CAO9D;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAM,GAAG,OAAO,EAAE,CAOrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAU3D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAM,GAAG,OAAO,EAAE,CAO3D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMlD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAIrE"}
package/dist/db.js CHANGED
@@ -48,6 +48,15 @@ function migrateSchema(database) {
48
48
  if (!columnNames.includes('read_at')) {
49
49
  database.exec('ALTER TABLE articles ADD COLUMN read_at TEXT');
50
50
  }
51
+ if (!columnNames.includes('is_outdated')) {
52
+ database.exec('ALTER TABLE articles ADD COLUMN is_outdated INTEGER DEFAULT 0');
53
+ }
54
+ if (!columnNames.includes('outdated_reason')) {
55
+ database.exec('ALTER TABLE articles ADD COLUMN outdated_reason TEXT');
56
+ }
57
+ if (!columnNames.includes('published_at')) {
58
+ database.exec('ALTER TABLE articles ADD COLUMN published_at TEXT');
59
+ }
51
60
  }
52
61
  export function insertArticle(article) {
53
62
  const database = getDb();
@@ -87,16 +96,31 @@ export function updateArticle(article) {
87
96
  UPDATE articles SET
88
97
  title = ?, description = ?, content = ?, summary = ?,
89
98
  tags = ?, difficulty = ?, reading_time_minutes = ?,
90
- image = ?, source_label = ?, processed_at = ?
99
+ image = ?, source_label = ?, processed_at = ?, published_at = ?
91
100
  WHERE id = ?
92
101
  `);
93
- stmt.run(article.title, article.description ?? null, article.content ?? null, article.summary ?? null, JSON.stringify(article.tags), article.difficulty ?? null, article.readingTimeMinutes ?? null, article.image ?? null, article.sourceLabel ?? null, article.processedAt?.toISOString() ?? null, article.id);
102
+ stmt.run(article.title, article.description ?? null, article.content ?? null, article.summary ?? null, JSON.stringify(article.tags), article.difficulty ?? null, article.readingTimeMinutes ?? null, article.image ?? null, article.sourceLabel ?? null, article.processedAt?.toISOString() ?? null, article.publishedAt?.toISOString() ?? null, article.id);
94
103
  }
95
104
  export function articleExists(url) {
96
105
  const database = getDb();
97
106
  const row = database.prepare('SELECT 1 FROM articles WHERE url = ?').get(url);
98
107
  return !!row;
99
108
  }
109
+ export function getExistingUrls(urls) {
110
+ if (urls.length === 0)
111
+ return new Set();
112
+ const database = getDb();
113
+ const placeholders = urls.map(() => '?').join(',');
114
+ const rows = database.prepare(`SELECT url FROM articles WHERE url IN (${placeholders})`).all(...urls);
115
+ return new Set(rows.map(r => r.url));
116
+ }
117
+ export function getProcessedArticles(limit = 100) {
118
+ const database = getDb();
119
+ const rows = database.prepare(`
120
+ SELECT * FROM articles WHERE processed_at IS NOT NULL ORDER BY created_at DESC LIMIT ?
121
+ `).all(limit);
122
+ return rows.map(rowToArticle);
123
+ }
100
124
  export function clearAllArticles() {
101
125
  const database = getDb();
102
126
  const countResult = database.prepare('SELECT COUNT(*) as count FROM articles').get();
@@ -135,6 +159,7 @@ function rowToArticle(row) {
135
159
  createdAt: new Date(row.created_at),
136
160
  processedAt: row.processed_at ? new Date(row.processed_at) : undefined,
137
161
  readAt: row.read_at ? new Date(row.read_at) : undefined,
162
+ publishedAt: row.published_at ? new Date(row.published_at) : undefined,
138
163
  };
139
164
  }
140
165
  //# sourceMappingURL=db.js.map
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import { program } from 'commander';
3
- import { addCommand, clearCommand, generateCommand, initCommand, listCommand, serveCommand, sourceCommand, syncCommand, } from './commands/index.js';
4
- process.on('uncaughtException', (error) => {
5
- if (error.name === 'ExitPromptError') {
6
- console.log('\n');
2
+ import { program } from "commander";
3
+ import { addCommand, clearCommand, generateCommand, initCommand, listCommand, serveCommand, sourceCommand, syncCommand, } from "./commands/index.js";
4
+ process.on("uncaughtException", (error) => {
5
+ if (error.name === "ExitPromptError") {
6
+ console.log("\n");
7
7
  process.exit(0);
8
8
  }
9
9
  throw error;
10
10
  });
11
11
  program
12
- .name('linkpress')
13
- .description('Turn your Slack links into a personal tech magazine')
14
- .version('0.2.4');
12
+ .name("linkpress")
13
+ .description("Turn your Slack links into a personal tech magazine")
14
+ .version("0.3.1");
15
15
  program.addCommand(initCommand);
16
16
  program.addCommand(addCommand);
17
17
  program.addCommand(listCommand);
package/dist/magazine.js CHANGED
@@ -17,7 +17,17 @@ export function generateMagazine(options = {}) {
17
17
  fs.writeFileSync(outputPath, html, 'utf-8');
18
18
  return outputPath;
19
19
  }
20
+ const DIFFICULTY_LABELS = {
21
+ '한국어': { beginner: '입문', intermediate: '중급', advanced: '심화' },
22
+ 'default': { beginner: 'Beginner', intermediate: 'Intermediate', advanced: 'Advanced' },
23
+ };
24
+ function getDifficultyLabel(difficulty, language) {
25
+ const labels = DIFFICULTY_LABELS[language] || DIFFICULTY_LABELS['default'];
26
+ return labels[difficulty] || labels['intermediate'];
27
+ }
20
28
  function renderMagazineHtml(articles) {
29
+ const config = loadConfig();
30
+ const language = config.ai?.language || 'English';
21
31
  const now = new Date();
22
32
  const dateStr = now.toLocaleDateString('en-US', {
23
33
  year: 'numeric',
@@ -42,9 +52,9 @@ function renderMagazineHtml(articles) {
42
52
  totalArticles: unreadArticles.length,
43
53
  totalReadingTime: unreadReadingTime,
44
54
  };
45
- const featuredHtml = featuredArticle ? renderFeaturedCard(featuredArticle, issueStats) : '';
46
- const unreadCards = remainingUnread.map((article, idx) => renderArticleCard(article, idx)).join('\n');
47
- const readCards = readArticles.map((article, idx) => renderArticleCard(article, idx)).join('\n');
55
+ const featuredHtml = featuredArticle ? renderFeaturedCard(featuredArticle, issueStats, language) : '';
56
+ const unreadCards = remainingUnread.map((article, idx) => renderArticleCard(article, idx, language)).join('\n');
57
+ const readCards = readArticles.map((article, idx) => renderArticleCard(article, idx, language)).join('\n');
48
58
  const tagFilters = topTags.map(([tag]) => `<button class="tag-btn" data-tag="${tag}">${tag}</button>`).join('\n');
49
59
  return `<!DOCTYPE html>
50
60
  <html lang="ko" data-theme="light">
@@ -496,6 +506,46 @@ function renderMagazineHtml(articles) {
496
506
  color: var(--accent);
497
507
  }
498
508
 
509
+ .sort-controls {
510
+ display: flex;
511
+ align-items: center;
512
+ gap: 0.75rem;
513
+ margin-left: 1rem;
514
+ padding-left: 1rem;
515
+ border-left: 1px solid var(--border);
516
+ }
517
+
518
+ .sort-btn {
519
+ font-family: var(--font-mono);
520
+ font-size: 0.7rem;
521
+ padding: 0.35rem 0.7rem;
522
+ background: var(--bg-deep);
523
+ border: 1px solid var(--border);
524
+ border-radius: 6px;
525
+ color: var(--text-secondary);
526
+ cursor: pointer;
527
+ transition: all 0.2s;
528
+ white-space: nowrap;
529
+ display: flex;
530
+ align-items: center;
531
+ gap: 0.3rem;
532
+ }
533
+
534
+ .sort-btn:hover, .sort-btn.active {
535
+ background: var(--bg-elevated);
536
+ border-color: var(--accent);
537
+ color: var(--accent);
538
+ }
539
+
540
+ .sort-btn .sort-icon {
541
+ font-size: 0.6rem;
542
+ opacity: 0.7;
543
+ }
544
+
545
+ .sort-btn.active .sort-icon {
546
+ opacity: 1;
547
+ }
548
+
499
549
  .hidden {
500
550
  display: none !important;
501
551
  }
@@ -1117,6 +1167,24 @@ function renderMagazineHtml(articles) {
1117
1167
  padding: 1rem 1.5rem;
1118
1168
  }
1119
1169
 
1170
+ .filters-row {
1171
+ flex-wrap: wrap;
1172
+ gap: 0.75rem;
1173
+ }
1174
+
1175
+ .tag-filters {
1176
+ flex-wrap: wrap;
1177
+ width: 100%;
1178
+ }
1179
+
1180
+ .sort-controls {
1181
+ margin-left: 0;
1182
+ padding-left: 0;
1183
+ border-left: none;
1184
+ padding-top: 0.5rem;
1185
+ width: 100%;
1186
+ }
1187
+
1120
1188
  .articles-section {
1121
1189
  padding: 2rem 1.5rem;
1122
1190
  }
@@ -1267,6 +1335,10 @@ function renderMagazineHtml(articles) {
1267
1335
  <span class="filter-label">Filter by</span>
1268
1336
  <button class="tag-btn active" data-tag="all">All</button>
1269
1337
  ${tagFilters}
1338
+ <div class="sort-controls">
1339
+ <span class="filter-label">Sort by</span>
1340
+ <button class="sort-btn active" data-sort="added" data-order="desc">Added <span class="sort-icon">↓</span></button>
1341
+ </div>
1270
1342
  </div>
1271
1343
  </div>
1272
1344
  </section>
@@ -1308,6 +1380,16 @@ function renderMagazineHtml(articles) {
1308
1380
 
1309
1381
  <script>
1310
1382
  (function() {
1383
+ const DIFFICULTY_LABELS = {
1384
+ '한국어': { beginner: '입문', intermediate: '중급', advanced: '심화' },
1385
+ 'default': { beginner: 'Beginner', intermediate: 'Intermediate', advanced: 'Advanced' },
1386
+ };
1387
+ const CURRENT_LANGUAGE = '${language}';
1388
+ function getDifficultyLabel(difficulty) {
1389
+ const labels = DIFFICULTY_LABELS[CURRENT_LANGUAGE] || DIFFICULTY_LABELS['default'];
1390
+ return labels[difficulty] || labels['intermediate'];
1391
+ }
1392
+
1311
1393
  const html = document.documentElement;
1312
1394
  const themeToggle = document.getElementById('theme-toggle');
1313
1395
  const THEME_KEY = 'linkpress-theme';
@@ -1473,6 +1555,47 @@ function renderMagazineHtml(articles) {
1473
1555
  });
1474
1556
  });
1475
1557
 
1558
+ let currentSort = 'added';
1559
+ let currentOrder = 'desc';
1560
+
1561
+ function sortArticles(sortBy, order) {
1562
+ const grids = [unreadGrid, readGrid];
1563
+ grids.forEach(grid => {
1564
+ const cards = Array.from(grid.querySelectorAll('.article-card'));
1565
+ cards.sort((a, b) => {
1566
+ const aVal = parseInt(a.dataset.index) || 0;
1567
+ const bVal = parseInt(b.dataset.index) || 0;
1568
+ return order === 'desc' ? aVal - bVal : bVal - aVal;
1569
+ });
1570
+ cards.forEach(card => grid.appendChild(card));
1571
+ });
1572
+ currentPage = 1;
1573
+ updatePagination();
1574
+ }
1575
+
1576
+ document.querySelectorAll('.sort-btn').forEach(btn => {
1577
+ btn.addEventListener('click', () => {
1578
+ const sortBy = btn.dataset.sort;
1579
+ const wasActive = btn.classList.contains('active');
1580
+
1581
+ if (wasActive) {
1582
+ const newOrder = btn.dataset.order === 'desc' ? 'asc' : 'desc';
1583
+ btn.dataset.order = newOrder;
1584
+ btn.querySelector('.sort-icon').textContent = newOrder === 'desc' ? '↓' : '↑';
1585
+ currentOrder = newOrder;
1586
+ } else {
1587
+ document.querySelectorAll('.sort-btn').forEach(b => b.classList.remove('active'));
1588
+ btn.classList.add('active');
1589
+ currentSort = sortBy;
1590
+ currentOrder = btn.dataset.order;
1591
+ }
1592
+
1593
+ sortArticles(currentSort, currentOrder);
1594
+ });
1595
+ });
1596
+
1597
+ sortArticles(currentSort, currentOrder);
1598
+
1476
1599
  async function toggleRead(card) {
1477
1600
  const id = card.dataset.id;
1478
1601
  const isRead = card.dataset.read === 'true';
@@ -1554,11 +1677,13 @@ function renderMagazineHtml(articles) {
1554
1677
 
1555
1678
  function createArticleCard(article) {
1556
1679
  const div = document.createElement('article');
1557
- const isRead = !!article.readAt;
1558
- const readingTime = article.readingTimeMinutes || 0;
1680
+ const isRead = !!article.readAt;
1681
+ const readingTime = article.readingTimeMinutes || 0;
1682
+ const publishedDate = article.publishedAt ? formatDate(article.publishedAt) : null;
1683
+ const publishedTimestamp = article.publishedAt ? article.publishedAt.getTime() : 0;
1559
1684
  const tags = article.tags || [];
1560
1685
  const difficulty = article.difficulty || 'intermediate';
1561
- const difficultyLabels = { beginner: '입문', intermediate: '중급', advanced: '심화' };
1686
+ const difficultyLabel = getDifficultyLabel(difficulty);
1562
1687
 
1563
1688
  let hostname = '';
1564
1689
  try { hostname = new URL(article.url).hostname.replace('www.', ''); } catch {}
@@ -1582,7 +1707,7 @@ function renderMagazineHtml(articles) {
1582
1707
  \${imageHtml}
1583
1708
  <div class="article-content">
1584
1709
  <div class="article-meta-row">
1585
- <span class="article-difficulty difficulty-\${difficulty}">\${difficultyLabels[difficulty]}</span>
1710
+ <span class="article-difficulty difficulty-\${difficulty}">\${difficultyLabel}</span>
1586
1711
  <span class="article-reading-time">\${readingTime || '?'} min read</span>
1587
1712
  </div>
1588
1713
  <h3 class="article-headline">
@@ -1614,7 +1739,7 @@ function renderMagazineHtml(articles) {
1614
1739
  </body>
1615
1740
  </html>`;
1616
1741
  }
1617
- function renderFeaturedCard(article, stats) {
1742
+ function renderFeaturedCard(article, stats, language) {
1618
1743
  const summary = parseSummary(article.summary);
1619
1744
  const hostname = (() => {
1620
1745
  try {
@@ -1629,8 +1754,9 @@ function renderFeaturedCard(article, stats) {
1629
1754
  const tags = article.tags.slice(0, 3);
1630
1755
  const isRead = !!article.readAt;
1631
1756
  const readingTime = article.readingTimeMinutes || 0;
1757
+ const publishedTimestamp = article.publishedAt ? article.publishedAt.getTime() : 0;
1632
1758
  return `
1633
- <section class="hero" data-read="${isRead}" data-reading-time="${readingTime}">
1759
+ <section class="hero" data-read="${isRead}" data-reading-time="${readingTime}" data-published="${publishedTimestamp}">
1634
1760
  <div class="hero-main">
1635
1761
  <div class="hero-content">
1636
1762
  <h2 class="hero-headline">
@@ -1663,7 +1789,7 @@ function renderFeaturedCard(article, stats) {
1663
1789
  </section>
1664
1790
  `;
1665
1791
  }
1666
- function renderArticleCard(article, index) {
1792
+ function renderArticleCard(article, index, language) {
1667
1793
  const summary = parseSummary(article.summary);
1668
1794
  const hostname = (() => {
1669
1795
  try {
@@ -1680,7 +1806,7 @@ function renderArticleCard(article, index) {
1680
1806
  const keyQuote = summary?.keyQuote || '';
1681
1807
  const difficulty = article.difficulty || 'intermediate';
1682
1808
  const sourceLabel = article.sourceLabel || 'Article';
1683
- const difficultyLabel = { beginner: '입문', intermediate: '중급', advanced: '심화' }[difficulty];
1809
+ const difficultyLabel = getDifficultyLabel(difficulty, language);
1684
1810
  const difficultyClass = `difficulty-${difficulty}`;
1685
1811
  const formattedIndex = String(index + 2).padStart(2, '0');
1686
1812
  const imageHtml = article.image ? `
@@ -1704,8 +1830,10 @@ function renderArticleCard(article, index) {
1704
1830
  ` : '';
1705
1831
  const isRead = !!article.readAt;
1706
1832
  const readingTime = article.readingTimeMinutes || 0;
1833
+ const publishedTimestamp = article.publishedAt ? article.publishedAt.getTime() : 0;
1834
+ const publishedDate = article.publishedAt ? formatDate(article.publishedAt) : null;
1707
1835
  return `
1708
- <article class="article-card ${article.image ? 'has-image' : ''}" data-tags="${article.tags.join(',')}" data-index="${formattedIndex}" data-id="${article.id}" data-read="${isRead}" data-reading-time="${readingTime}">
1836
+ <article class="article-card ${article.image ? 'has-image' : ''}" data-tags="${article.tags.join(',')}" data-index="${formattedIndex}" data-id="${article.id}" data-read="${isRead}" data-reading-time="${readingTime}" data-published="${publishedTimestamp}">
1709
1837
  <button class="read-toggle-btn" aria-label="Mark as ${isRead ? 'unread' : 'read'}">
1710
1838
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3">
1711
1839
  <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
@@ -1732,6 +1860,7 @@ function renderArticleCard(article, index) {
1732
1860
  <span class="article-source-label">${escapeHtml(sourceLabel)}</span>
1733
1861
  <span class="article-source-divider">·</span>
1734
1862
  <span class="article-source">${escapeHtml(hostname)}</span>
1863
+ ${publishedDate ? `<span class="article-source-divider">·</span><span class="article-published-date">${publishedDate}</span>` : ''}
1735
1864
  </div>
1736
1865
  </div>
1737
1866
 
@@ -1750,4 +1879,10 @@ function escapeHtml(str) {
1750
1879
  .replace(/"/g, '&quot;')
1751
1880
  .replace(/'/g, '&#039;');
1752
1881
  }
1882
+ function formatDate(date) {
1883
+ const year = date.getFullYear();
1884
+ const month = String(date.getMonth() + 1).padStart(2, '0');
1885
+ const day = String(date.getDate()).padStart(2, '0');
1886
+ return `${year}.${month}.${day}`;
1887
+ }
1753
1888
  //# sourceMappingURL=magazine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"magazine.js","sourceRoot":"","sources":["../src/magazine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"magazine.js","sourceRoot":"","sources":["../src/magazine.ts"],"names":[],"mappings":"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"}
package/dist/process.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface ProcessResult {
3
3
  processed: number;
4
4
  failed: number;
5
5
  skipped: number;
6
+ outdated: number;
6
7
  }
7
8
  export interface ProcessOptions {
8
9
  limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4E/F"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkF/F"}
package/dist/process.js CHANGED
@@ -38,6 +38,10 @@ export async function processArticles(options = {}) {
38
38
  continue;
39
39
  }
40
40
  const scraped = await scrapeUrl(article.url);
41
+ if (config.filter?.skipOutdated && scraped.isOutdated) {
42
+ spinner?.warn(chalk.yellow(`Outdated: ${scraped.outdatedReason || 'Content marked as deprecated'}\n ${chalk.dim(article.url)}`));
43
+ continue;
44
+ }
41
45
  const summaryData = await summarizeArticle(scraped.title || article.title, scraped.content, article.url);
42
46
  const updatedArticle = {
43
47
  ...article,
@@ -51,10 +55,11 @@ export async function processArticles(options = {}) {
51
55
  image: scraped.image,
52
56
  sourceLabel: scraped.sourceLabel,
53
57
  processedAt: new Date(),
58
+ publishedAt: scraped.publishedAt ? new Date(scraped.publishedAt) : undefined,
54
59
  isNew: true,
55
60
  };
56
61
  updateArticle(updatedArticle);
57
- spinner?.succeed(chalk.green(truncate(summaryData.headline || scraped.title || article.url, 60)));
62
+ spinner?.succeed(chalk.green(`Valid: ${truncate(summaryData.headline || scraped.title || article.url, 50)}\n ${chalk.dim(article.url)}`));
58
63
  processedArticles.push(updatedArticle);
59
64
  await new Promise(resolve => setTimeout(resolve, 300));
60
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ export async function extractSlackTokens() {
43
43
  else {
44
44
  console.log(chalk.yellow(' Warning: Could not find Chrome. Using Playwright Chromium.\n'));
45
45
  }
46
- const userDataDir = path.join(os.tmpdir(), 'linkpress-chrome-profile');
46
+ const userDataDir = path.join(os.tmpdir(), `linkpress-chrome-${Date.now()}`);
47
47
  debug('User data dir', userDataDir);
48
48
  const context = await chromium.launchPersistentContext(userDataDir, {
49
49
  headless: false,
@@ -1 +1 @@
1
- {"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/slack/browser-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/slack/browser-auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/slack/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0G7H"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/slack/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqH7H"}
@@ -3,9 +3,10 @@ import ora from 'ora';
3
3
  import crypto from 'crypto';
4
4
  import { SlackClient, extractLinksFromMessages } from '@linkpress/core';
5
5
  import { loadConfig } from '../config.js';
6
- import { insertArticle, articleExists } from '../db.js';
6
+ import { insertArticle, getExistingUrls } from '../db.js';
7
7
  import { classifyContent } from '../ai.js';
8
8
  import { t } from '../i18n.js';
9
+ const AI_BATCH_SIZE = 5;
9
10
  export async function syncSlackSources(config, options = {}) {
10
11
  const cfg = config || loadConfig();
11
12
  const { silent = false } = options;
@@ -32,46 +33,54 @@ export async function syncSlackSources(config, options = {}) {
32
33
  const messages = await client.getConversationHistory(channel.id, { limit: 200 });
33
34
  const uniqueLinks = extractLinksFromMessages(messages);
34
35
  totalUrls += uniqueLinks.length;
36
+ const allUrls = uniqueLinks.map(l => l.url);
37
+ const existingUrls = getExistingUrls(allUrls);
38
+ const newLinks = uniqueLinks.filter(l => !existingUrls.has(l.url));
39
+ const channelSkipped = uniqueLinks.length - newLinks.length;
40
+ skipped += channelSkipped;
35
41
  let channelNew = 0;
36
- let channelSkipped = 0;
37
42
  let channelFiltered = 0;
38
- let processed = 0;
39
- for (const link of uniqueLinks) {
40
- processed++;
43
+ for (let i = 0; i < newLinks.length; i += AI_BATCH_SIZE) {
44
+ const batch = newLinks.slice(i, i + AI_BATCH_SIZE);
41
45
  if (spinner) {
42
46
  spinner.text = t('sync.classifying', {
43
47
  channel: channel.name,
44
- current: processed,
45
- total: uniqueLinks.length
48
+ current: Math.min(i + AI_BATCH_SIZE, newLinks.length),
49
+ total: newLinks.length
46
50
  });
47
51
  }
48
- if (articleExists(link.url)) {
49
- channelSkipped++;
50
- skipped++;
51
- continue;
52
- }
53
- const classification = await classifyContent(link.messageText, link.url, '', '');
54
- if (!classification.shouldCollect) {
55
- channelFiltered++;
56
- filtered++;
57
- if (!silent) {
58
- console.log(chalk.dim(` ✗ ${link.url}`));
59
- console.log(chalk.dim(` → ${classification.reasoning}`));
52
+ const classificationResults = await Promise.all(batch.map(async (link) => {
53
+ try {
54
+ const classification = await classifyContent(link.messageText, link.url, '', '');
55
+ return { link, shouldCollect: classification.shouldCollect, reasoning: classification.reasoning };
56
+ }
57
+ catch {
58
+ return { link, shouldCollect: false, reasoning: 'Classification failed' };
59
+ }
60
+ }));
61
+ for (const result of classificationResults) {
62
+ if (!result.shouldCollect) {
63
+ channelFiltered++;
64
+ filtered++;
65
+ if (!silent) {
66
+ console.log(chalk.dim(` ✗ ${result.link.url}`));
67
+ console.log(chalk.dim(` → ${result.reasoning}`));
68
+ }
69
+ continue;
60
70
  }
61
- continue;
71
+ const article = {
72
+ id: crypto.randomUUID(),
73
+ url: result.link.url,
74
+ title: result.link.url,
75
+ tags: [],
76
+ sourceType: 'slack',
77
+ sourceId: channel.id,
78
+ createdAt: result.link.timestamp,
79
+ };
80
+ insertArticle(article);
81
+ channelNew++;
82
+ newArticles++;
62
83
  }
63
- const article = {
64
- id: crypto.randomUUID(),
65
- url: link.url,
66
- title: link.url,
67
- tags: [],
68
- sourceType: 'slack',
69
- sourceId: channel.id,
70
- createdAt: new Date(),
71
- };
72
- insertArticle(article);
73
- channelNew++;
74
- newArticles++;
75
84
  }
76
85
  spinner?.succeed(t('sync.channelResult', {
77
86
  channel: channel.name,
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/slack/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/slack/sync.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -13,6 +13,9 @@ export interface Config {
13
13
  directory: string;
14
14
  format: 'html' | 'markdown' | 'both';
15
15
  };
16
+ filter?: {
17
+ skipOutdated?: boolean;
18
+ };
16
19
  }
17
20
  export interface Magazine {
18
21
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACjD,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;QAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC;QACX,EAAE,EAAE,IAAI,CAAC;KACV,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACjD,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;QAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;KACtC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC;QACX,EAAE,EAAE,IAAI,CAAC;KACV,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;CACb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkpress",
3
- "version": "0.2.4",
3
+ "version": "0.3.1",
4
4
  "description": "Turn your Slack links into a personal tech magazine with AI-powered summaries",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -43,7 +43,7 @@
43
43
  "url": "https://github.com/mindori/linkpress/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@linkpress/core": "^0.1.0",
46
+ "@linkpress/core": "^0.1.3",
47
47
  "better-sqlite3": "^11.7.0",
48
48
  "chalk": "^5.3.0",
49
49
  "commander": "^12.1.0",