sophhub 0.2.3 → 0.2.4

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.
Files changed (107) hide show
  1. package/package.json +1 -1
  2. package/skills/consensus/skill.json +20 -0
  3. package/skills/consensus/src/SKILL.md +93 -0
  4. package/skills/deepwiki/skill.json +20 -0
  5. package/skills/deepwiki/src/SKILL.md +45 -0
  6. package/skills/deepwiki/src/_meta.json +6 -0
  7. package/skills/deepwiki/src/scripts/deepwiki.js +135 -0
  8. package/skills/feishu-bitable/skill.json +20 -0
  9. package/skills/feishu-bitable/src/CHECKLIST.md +150 -0
  10. package/skills/feishu-bitable/src/README.md +178 -0
  11. package/skills/feishu-bitable/src/SKILL.md +113 -0
  12. package/skills/feishu-bitable/src/_meta.json +6 -0
  13. package/skills/feishu-bitable/src/api.js +381 -0
  14. package/skills/feishu-bitable/src/bin/cli.js +284 -0
  15. package/skills/feishu-bitable/src/description.md +143 -0
  16. package/skills/feishu-bitable/src/examples/create-records.json +52 -0
  17. package/skills/feishu-bitable/src/examples/create-table.json +64 -0
  18. package/skills/feishu-bitable/src/package-lock.json +324 -0
  19. package/skills/feishu-bitable/src/package.json +33 -0
  20. package/skills/feishu-bitable/src/publish-config.json +14 -0
  21. package/skills/feishu-bitable/src/test-simple.js +61 -0
  22. package/skills/feishu-bitable/src/utils.js +261 -0
  23. package/skills/google-maps/skill.json +20 -0
  24. package/skills/google-maps/src/SKILL.md +237 -0
  25. package/skills/google-maps/src/_meta.json +6 -0
  26. package/skills/google-maps/src/lib/map_helper.py +912 -0
  27. package/skills/large-task-router/skill.json +20 -0
  28. package/skills/large-task-router/src/SKILL.md +79 -0
  29. package/skills/large-task-router/src/templates/plan.md +74 -0
  30. package/skills/skillhub/skill.json +11 -4
  31. package/skills/skillhub/src/SKILL.md +11 -1
  32. package/skills/sophnet-dailynews/skill.json +20 -0
  33. package/skills/sophnet-dailynews/src/SKILL.md +179 -0
  34. package/skills/sophnet-dailynews/src/cache.json +151 -0
  35. package/skills/sophnet-dailynews/src/sources.json +230 -0
  36. package/skills/sophnet-schedule/skill.json +20 -0
  37. package/skills/sophnet-schedule/src/ARCHITECTURE.md +321 -0
  38. package/skills/sophnet-schedule/src/IMPROVEMENTS.md +145 -0
  39. package/skills/sophnet-schedule/src/SKILL.md +1050 -0
  40. package/skills/sophnet-schedule/src/_meta.json +6 -0
  41. package/skills/sophnet-schedule/src/api/__init__.py +0 -0
  42. package/skills/sophnet-schedule/src/api/models.py +245 -0
  43. package/skills/sophnet-schedule/src/apps/add_event.py +237 -0
  44. package/skills/sophnet-schedule/src/apps/check_reminders.py +112 -0
  45. package/skills/sophnet-schedule/src/apps/check_roc.py +246 -0
  46. package/skills/sophnet-schedule/src/apps/generate_daily_plan.py +342 -0
  47. package/skills/sophnet-schedule/src/apps/import_events.py +216 -0
  48. package/skills/sophnet-schedule/src/apps/monitor_calendar_changes.py +140 -0
  49. package/skills/sophnet-schedule/src/apps/register_tasks.py +169 -0
  50. package/skills/sophnet-schedule/src/apps/sync_roc_to_gcal.py +174 -0
  51. package/skills/sophnet-schedule/src/compat.py +66 -0
  52. package/skills/sophnet-schedule/src/config/__init__.py +0 -0
  53. package/skills/sophnet-schedule/src/config/reminder_rules.yaml +96 -0
  54. package/skills/sophnet-schedule/src/config/roc_events.yaml +44 -0
  55. package/skills/sophnet-schedule/src/config/settings.py +133 -0
  56. package/skills/sophnet-schedule/src/config/task_registry.yaml +92 -0
  57. package/skills/sophnet-schedule/src/docs/FRONTEND_INTEGRATION_GUIDE.md +437 -0
  58. package/skills/sophnet-schedule/src/gcal/__init__.py +0 -0
  59. package/skills/sophnet-schedule/src/gcal/client.py +374 -0
  60. package/skills/sophnet-schedule/src/gcal/models.py +91 -0
  61. package/skills/sophnet-schedule/src/requirements.txt +6 -0
  62. package/skills/sophnet-schedule/src/scripts/setup_gcal_token.py +85 -0
  63. package/skills/sophnet-schedule/src/server.py +669 -0
  64. package/skills/sophnet-schedule/src/services/__init__.py +0 -0
  65. package/skills/sophnet-schedule/src/services/calendar_backend.py +139 -0
  66. package/skills/sophnet-schedule/src/services/conflict_detector.py +96 -0
  67. package/skills/sophnet-schedule/src/services/datetime_utils.py +117 -0
  68. package/skills/sophnet-schedule/src/services/event_classifier.py +100 -0
  69. package/skills/sophnet-schedule/src/services/event_diff.py +160 -0
  70. package/skills/sophnet-schedule/src/services/google_integration.py +500 -0
  71. package/skills/sophnet-schedule/src/services/job_store.py +100 -0
  72. package/skills/sophnet-schedule/src/services/local_event_store.py +266 -0
  73. package/skills/sophnet-schedule/src/services/reminder_planner.py +116 -0
  74. package/skills/sophnet-schedule/src/services/runtime_utils.py +31 -0
  75. package/skills/sophnet-schedule/src/services/table_parser.py +286 -0
  76. package/skills/sophnet-schedule/src/services/task_builder.py +167 -0
  77. package/skills/sophnet-schedule/src/services/time_window.py +72 -0
  78. package/skills/sophnet-stock/skill.json +20 -0
  79. package/skills/sophnet-stock/src/App-Plan.md +442 -0
  80. package/skills/sophnet-stock/src/README.md +214 -0
  81. package/skills/sophnet-stock/src/SKILL.md +236 -0
  82. package/skills/sophnet-stock/src/TODO.md +394 -0
  83. package/skills/sophnet-stock/src/_meta.json +6 -0
  84. package/skills/sophnet-stock/src/docs/ARCHITECTURE.md +408 -0
  85. package/skills/sophnet-stock/src/docs/CONCEPT.md +233 -0
  86. package/skills/sophnet-stock/src/docs/HOT_SCANNER.md +288 -0
  87. package/skills/sophnet-stock/src/docs/README.md +95 -0
  88. package/skills/sophnet-stock/src/docs/USAGE.md +465 -0
  89. package/skills/sophnet-stock/src/scripts/analyze_stock.py +2565 -0
  90. package/skills/sophnet-stock/src/scripts/dividends.py +365 -0
  91. package/skills/sophnet-stock/src/scripts/hot_scanner.py +582 -0
  92. package/skills/sophnet-stock/src/scripts/portfolio.py +548 -0
  93. package/skills/sophnet-stock/src/scripts/rumor_scanner.py +342 -0
  94. package/skills/sophnet-stock/src/scripts/test_stock_analysis.py +409 -0
  95. package/skills/sophnet-stock/src/scripts/watchlist.py +336 -0
  96. package/skills/xiaohongshu/skill.json +20 -0
  97. package/skills/xiaohongshu/src/SKILL.md +91 -0
  98. package/skills/xiaohongshu/src/_meta.json +6 -0
  99. package/skills/xiaohongshu/src/assets/card.html +216 -0
  100. package/skills/xiaohongshu/src/assets/cover.html +82 -0
  101. package/skills/xiaohongshu/src/assets/example.md +84 -0
  102. package/skills/xiaohongshu/src/assets/styles.css +318 -0
  103. package/skills/xiaohongshu/src/scripts/render_xhs_v2.py +737 -0
  104. package/skills/xiaohongshu/src/scripts/sign_server.py +158 -0
  105. package/skills/xiaohongshu/src/scripts/stealth.min.js +7 -0
  106. package/skills/xiaohongshu/src/scripts/xhs_tool.py +186 -0
  107. package/skills/xiaohongshu/src/workflow.py +185 -0
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=1080, height=1440">
6
+ <title>小红书封面</title>
7
+ <style>
8
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap');
9
+
10
+ * {
11
+ margin: 0;
12
+ padding: 0;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ body {
17
+ font-family: 'Noto Sans SC', 'Source Han Sans CN', 'PingFang SC', 'Microsoft YaHei', sans-serif;
18
+ width: 1080px;
19
+ height: 1440px;
20
+ overflow: hidden;
21
+ }
22
+
23
+ .cover-container {
24
+ width: 1080px;
25
+ height: 1440px;
26
+ background: linear-gradient(180deg, #3450E4 0%, #D266DA 100%);
27
+ position: relative;
28
+ overflow: hidden;
29
+ }
30
+
31
+ .cover-inner {
32
+ position: absolute;
33
+ width: 950px;
34
+ height: 1310px;
35
+ left: 65px;
36
+ top: 65px;
37
+ background: #F3F3F3;
38
+ border-radius: 25px;
39
+ display: flex;
40
+ flex-direction: column;
41
+ padding: 80px 85px;
42
+ }
43
+
44
+ .cover-emoji {
45
+ font-size: 180px;
46
+ line-height: 1.2;
47
+ margin-bottom: 50px;
48
+ }
49
+
50
+ .cover-title {
51
+ font-weight: 900;
52
+ font-size: 130px;
53
+ line-height: 1.4;
54
+ background: linear-gradient(180deg, #2E67B1 0%, #4C4C4C 100%);
55
+ -webkit-background-clip: text;
56
+ -webkit-text-fill-color: transparent;
57
+ background-clip: text;
58
+ flex: 1;
59
+ display: flex;
60
+ align-items: flex-start;
61
+ word-break: break-all;
62
+ }
63
+
64
+ .cover-subtitle {
65
+ font-weight: 350;
66
+ font-size: 72px;
67
+ line-height: 1.4;
68
+ color: #000000;
69
+ margin-top: auto;
70
+ }
71
+ </style>
72
+ </head>
73
+ <body>
74
+ <div class="cover-container">
75
+ <div class="cover-inner">
76
+ <div class="cover-emoji">{{EMOJI}}</div>
77
+ <div class="cover-title">{{TITLE}}</div>
78
+ <div class="cover-subtitle">{{SUBTITLE}}</div>
79
+ </div>
80
+ </div>
81
+ </body>
82
+ </html>
@@ -0,0 +1,84 @@
1
+ ---
2
+ emoji: "🚀"
3
+ title: "5个效率神器"
4
+ subtitle: "让工作效率翻倍"
5
+ ---
6
+
7
+ # 神器一:Notion 📝
8
+
9
+ 全能型笔记工具,支持数据库、看板、日历等多种视图。
10
+
11
+ > 一个工具替代十个 App,笔记、任务、项目管理全搞定!
12
+
13
+ **核心功能:**
14
+ - 📊 灵活的数据库视图
15
+ - 🔗 双向链接
16
+ - 🎨 丰富的模板库
17
+ - 👥 团队协作
18
+
19
+ ---
20
+
21
+ # 神器二:Raycast ⚡
22
+
23
+ Mac 上的效率启动器,比 Spotlight 强大 100 倍!
24
+
25
+ ```bash
26
+ # 快捷命令示例
27
+ raycast://extensions/raycast/clipboard/clipboard-history
28
+ ```
29
+
30
+ **必装插件推荐:**
31
+ - 剪贴板历史
32
+ - 窗口管理
33
+ - 快捷短语
34
+ - API 调试工具
35
+
36
+ ---
37
+
38
+ # 神器三:Arc 浏览器 🌈
39
+
40
+ 全新理念的浏览器体验:
41
+ - 侧边栏标签管理
42
+ - 空间分组功能
43
+ - 内置笔记和画板
44
+ - 极简无干扰模式
45
+
46
+ ---
47
+
48
+ # 神器四:Warp 终端 🖥️
49
+
50
+ 基于 Rust 的现代化终端:
51
+
52
+ ```python
53
+ # 支持 AI 智能补全
54
+ def example():
55
+ print("Hello Warp!")
56
+ ```
57
+
58
+ - ⚡ 极速性能
59
+ - 🤖 AI 智能提示
60
+ - 📋 自动补全
61
+ - 🎯 分组工作区
62
+
63
+ ---
64
+
65
+ # 神器五:Fig 自动补全 🔮
66
+
67
+ 终端命令自动补全神器:
68
+ - 数百种 CLI 工具支持
69
+ - 可视化参数提示
70
+ - 团队协作分享
71
+
72
+ ---
73
+
74
+ # 总结 🎯
75
+
76
+ 效率提升不在于工具多少,而在于是否**真正用起来**。
77
+
78
+ 选择 2-3 个适合自己的工具,持续使用,形成习惯,你就能:
79
+
80
+ ✅ 节省 50% 的时间
81
+ ✅ 减少 80% 的焦虑
82
+ ✅ 提升 100% 的专注力
83
+
84
+ #效率工具 #生产力 #Mac软件 #工作技巧 #神器推荐 #Notion #Raycast #Arc浏览器 #Warp #Fig
@@ -0,0 +1,318 @@
1
+ /* 小红书卡片样式 */
2
+
3
+ /* CSS 变量定义 */
4
+ :root {
5
+ --primary-color: #ff2442;
6
+ --primary-light: #ff6b81;
7
+ --text-primary: #1e293b;
8
+ --text-secondary: #334155;
9
+ --text-muted: #64748b;
10
+ --text-light: #475569;
11
+ --background-light: #f8fafc;
12
+ --background-gray: #f1f5f9;
13
+ --border-color: #e2e8f0;
14
+ --border-radius: 25px;
15
+ --card-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
16
+ --font-family: 'Source Han Sans CN', 'PingFang SC', 'Microsoft YaHei', -apple-system, sans-serif;
17
+ }
18
+
19
+ /* 全局样式重置 */
20
+ * {
21
+ margin: 0;
22
+ padding: 0;
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ body {
27
+ font-family: var(--font-family);
28
+ background: transparent;
29
+ color: var(--text-secondary);
30
+ line-height: 1.6;
31
+ }
32
+
33
+ /* ========================
34
+ 封面卡片样式
35
+ ======================== */
36
+
37
+ .cover-container {
38
+ width: 1080px;
39
+ height: 1440px;
40
+ background: linear-gradient(180deg, #3450E4 0%, #D266DA 100%);
41
+ position: relative;
42
+ overflow: hidden;
43
+ }
44
+
45
+ .cover-inner {
46
+ position: absolute;
47
+ width: 950px;
48
+ height: 1310px;
49
+ left: 65px;
50
+ top: 65px;
51
+ background: #F3F3F3;
52
+ border-radius: var(--border-radius);
53
+ display: flex;
54
+ flex-direction: column;
55
+ padding: 60px 85px;
56
+ }
57
+
58
+ .cover-emoji {
59
+ font-size: 180px;
60
+ line-height: 1.2;
61
+ margin-bottom: 40px;
62
+ }
63
+
64
+ .cover-title {
65
+ font-weight: 900;
66
+ font-size: 130px;
67
+ line-height: 1.35;
68
+ background: linear-gradient(180deg, #2E67B1 0%, #4C4C4C 100%);
69
+ -webkit-background-clip: text;
70
+ -webkit-text-fill-color: transparent;
71
+ background-clip: text;
72
+ margin-bottom: auto;
73
+ word-break: break-all;
74
+ }
75
+
76
+ .cover-subtitle {
77
+ font-weight: 350;
78
+ font-size: 72px;
79
+ line-height: 1.4;
80
+ color: #000000;
81
+ margin-top: auto;
82
+ padding-bottom: 20px;
83
+ }
84
+
85
+ /* ========================
86
+ 正文卡片样式
87
+ ======================== */
88
+
89
+ .card-container {
90
+ width: 1080px;
91
+ min-height: 1440px;
92
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
93
+ position: relative;
94
+ padding: 50px;
95
+ overflow: hidden;
96
+ }
97
+
98
+ .card-inner {
99
+ background: rgba(255, 255, 255, 0.95);
100
+ border-radius: 20px;
101
+ padding: 60px;
102
+ min-height: calc(1440px - 100px);
103
+ box-shadow: var(--card-shadow);
104
+ backdrop-filter: blur(10px);
105
+ }
106
+
107
+ /* Markdown 内容样式 */
108
+ .card-content {
109
+ color: var(--text-light);
110
+ font-size: 42px;
111
+ line-height: 1.7;
112
+ }
113
+
114
+ .card-content h1 {
115
+ font-size: 72px;
116
+ font-weight: 700;
117
+ color: var(--text-primary);
118
+ margin-bottom: 40px;
119
+ line-height: 1.3;
120
+ }
121
+
122
+ .card-content h2 {
123
+ font-size: 56px;
124
+ font-weight: 600;
125
+ color: var(--text-secondary);
126
+ margin: 50px 0 25px 0;
127
+ line-height: 1.4;
128
+ }
129
+
130
+ .card-content h3 {
131
+ font-size: 48px;
132
+ font-weight: 600;
133
+ color: var(--text-light);
134
+ margin: 40px 0 20px 0;
135
+ }
136
+
137
+ .card-content p {
138
+ margin-bottom: 35px;
139
+ }
140
+
141
+ .card-content strong {
142
+ font-weight: 700;
143
+ color: var(--text-primary);
144
+ }
145
+
146
+ .card-content em {
147
+ font-style: italic;
148
+ color: var(--primary-color);
149
+ }
150
+
151
+ .card-content a {
152
+ color: var(--primary-color);
153
+ text-decoration: none;
154
+ border-bottom: 2px solid var(--primary-color);
155
+ }
156
+
157
+ .card-content ul,
158
+ .card-content ol {
159
+ margin: 30px 0;
160
+ padding-left: 60px;
161
+ }
162
+
163
+ .card-content li {
164
+ margin-bottom: 20px;
165
+ line-height: 1.6;
166
+ }
167
+
168
+ .card-content blockquote {
169
+ border-left: 8px solid var(--primary-color);
170
+ padding-left: 40px;
171
+ background: var(--background-gray);
172
+ padding-top: 25px;
173
+ padding-bottom: 25px;
174
+ margin: 35px 0;
175
+ color: var(--text-muted);
176
+ font-style: italic;
177
+ border-radius: 0 12px 12px 0;
178
+ }
179
+
180
+ .card-content blockquote p {
181
+ margin: 0;
182
+ }
183
+
184
+ .card-content code {
185
+ background: var(--background-gray);
186
+ padding: 6px 16px;
187
+ border-radius: 8px;
188
+ font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
189
+ font-size: 38px;
190
+ color: var(--primary-color);
191
+ }
192
+
193
+ .card-content pre {
194
+ background: var(--text-primary);
195
+ color: #e2e8f0;
196
+ padding: 40px;
197
+ border-radius: 16px;
198
+ margin: 35px 0;
199
+ overflow-x: visible;
200
+ overflow-wrap: break-word;
201
+ word-wrap: break-word;
202
+ word-break: break-all;
203
+ white-space: pre-wrap;
204
+ font-size: 36px;
205
+ line-height: 1.5;
206
+ }
207
+
208
+ .card-content pre code {
209
+ background: transparent;
210
+ color: inherit;
211
+ padding: 0;
212
+ font-size: inherit;
213
+ }
214
+
215
+ .card-content img {
216
+ max-width: 100%;
217
+ height: auto;
218
+ border-radius: 16px;
219
+ margin: 35px auto;
220
+ display: block;
221
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
222
+ }
223
+
224
+ .card-content hr {
225
+ border: none;
226
+ height: 2px;
227
+ background: var(--border-color);
228
+ margin: 50px 0;
229
+ }
230
+
231
+ /* Tags 标签样式 */
232
+ .card-content .tags {
233
+ margin-top: 50px;
234
+ padding-top: 30px;
235
+ border-top: 2px solid var(--border-color);
236
+ }
237
+
238
+ .card-content .tag {
239
+ display: inline-block;
240
+ background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
241
+ color: white;
242
+ padding: 12px 28px;
243
+ border-radius: 30px;
244
+ font-size: 34px;
245
+ margin: 10px 15px 10px 0;
246
+ font-weight: 500;
247
+ }
248
+
249
+ /* 信息卡片样式 */
250
+ .info-card {
251
+ margin: 40px 0;
252
+ padding: 40px 50px;
253
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(139, 92, 246, 0.12) 100%);
254
+ border: 2px solid rgba(99, 102, 241, 0.2);
255
+ border-radius: 20px;
256
+ box-shadow: 0 4px 20px rgba(99, 102, 241, 0.1);
257
+ }
258
+
259
+ .info-card.success {
260
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(5, 150, 105, 0.12) 100%);
261
+ border-color: rgba(16, 185, 129, 0.2);
262
+ }
263
+
264
+ .info-card.warning {
265
+ background: linear-gradient(135deg, rgba(245, 158, 11, 0.12) 0%, rgba(217, 119, 6, 0.12) 100%);
266
+ border-color: rgba(245, 158, 11, 0.2);
267
+ }
268
+
269
+ .info-card.error {
270
+ background: linear-gradient(135deg, rgba(239, 68, 68, 0.12) 0%, rgba(220, 38, 38, 0.12) 100%);
271
+ border-color: rgba(239, 68, 68, 0.2);
272
+ }
273
+
274
+ /* 页码样式 */
275
+ .page-number {
276
+ position: absolute;
277
+ bottom: 80px;
278
+ right: 80px;
279
+ font-size: 36px;
280
+ color: rgba(255, 255, 255, 0.8);
281
+ font-weight: 500;
282
+ }
283
+
284
+ /* ========================
285
+ 渐变背景预设
286
+ ======================== */
287
+
288
+ .bg-gradient-1 {
289
+ background: linear-gradient(180deg, #3450E4 0%, #D266DA 100%);
290
+ }
291
+
292
+ .bg-gradient-2 {
293
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
294
+ }
295
+
296
+ .bg-gradient-3 {
297
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
298
+ }
299
+
300
+ .bg-gradient-4 {
301
+ background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
302
+ }
303
+
304
+ .bg-gradient-5 {
305
+ background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
306
+ }
307
+
308
+ .bg-gradient-6 {
309
+ background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
310
+ }
311
+
312
+ .bg-gradient-7 {
313
+ background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%);
314
+ }
315
+
316
+ .bg-gradient-8 {
317
+ background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
318
+ }