Compare commits
	
		
			15 Commits
		
	
	
		
			2422c60ff8
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fcd658f823 | |||
| ed3210fa68 | |||
| 6943d96a26 | |||
| 11bc14cd5e | |||
| ef813d059e | |||
| 096047a196 | |||
| 65d5bed5ac | |||
| 4fcbe083bf | |||
| bcbf36ff41 | |||
| 0b683ba13b | |||
| f055483622 | |||
| 75f051f152 | |||
| b3b78b446e | |||
| 659a451635 | |||
| fd775ed41a | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| venv | ||||
| .cache | ||||
| .DS_Store | ||||
| site | ||||
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/account-delete.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/account-delete.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/account-delete1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/account-delete1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.1 MiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/account-delete2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/account-delete2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/account-deleteok.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/account-deleteok.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1020 KiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/chat-room.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/chat-room.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.7 MiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/assets/images/domain.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/assets/images/domain.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.0 MiB | 
| @@ -49,6 +49,49 @@ Solar Network 采用自主研发的多因素验证系统,相比传统的两部 | ||||
|   <figcaption>使用多因子验证登陆 Solarpass 的屏幕截图</figcaption> | ||||
| </figure> | ||||
|  | ||||
| # 删除帐户 | ||||
|  | ||||
| 您可能想要删除您的 Solarpass 帐户,因为您不再需要它了。这里分为两个章节 | ||||
|  | ||||
| - 删除帐户时要知道的影响 | ||||
| - 如何删除我的帐户 | ||||
|  | ||||
| ## 删除帐户时要知道的影响 | ||||
| --- | ||||
|  | ||||
| 1. **您账户下的发布者将会被删除**  | ||||
| 2. 您将无法登录您的帐户 | ||||
| 3. 数据删除需要一些时间 | ||||
|  | ||||
| ## 您将无法登录您的帐户 | ||||
|  | ||||
| 删除帐户后,您将无法再次登录。 意外删除后没有恢复功能。请小心哦。 | ||||
|  | ||||
| ## 数据删除需要一些时间 | ||||
|  | ||||
| 请注意,并非所有数据都会在您删除帐户的同时被删除。 | ||||
|  | ||||
| 删除数据是一项资源消耗较大的操作。为避免影响其他用户的正常使用,系统会延迟执行删除任务,通常会在24小时内完成。 | ||||
|  | ||||
| ## 如何删除我的帐户 | ||||
| --- | ||||
|  | ||||
| 1. 点击「帐户」 | ||||
|  | ||||
|     { width="300" } | ||||
|  | ||||
| 2. 往下翻,找到「账户设置」 | ||||
|  | ||||
|     { width="300" } | ||||
|  | ||||
| 3. 点击「删除帐户」 | ||||
|  | ||||
|     { width="300" } | ||||
|  | ||||
| 4. 点一下「OK」然后去您的邮箱里确认一下就好啦,期待着下次与您相遇 | ||||
|  | ||||
|     { width="300" } | ||||
|  | ||||
| !!! warning "尚未完成" | ||||
|  | ||||
|     这里在未来将会补充详细的多因子验证的工作原理以及机制,但目前此区域尚未完成。 | ||||
| @@ -2,4 +2,32 @@ | ||||
| title: 创作者中心 | ||||
| --- | ||||
|  | ||||
| 「创作者中心」,顾名思义就是您可以在这里管理发布的内容 | ||||
| 「创作者中心」,顾名思义就是您可以在这里管理发布的内容,例如帖子,贴图,合作者,网络订阅 等... | ||||
|  | ||||
| ## 帖子 | ||||
|  | ||||
| 在这您可以查看帖子的表现数据。 | ||||
|  | ||||
| 其中 Views 里的 Unique 指的是每一位用户**仅计数一次**,而 Total 则是总共预览量。 | ||||
|  | ||||
| ## 贴图 | ||||
|  | ||||
| 类似于的表情包的功能,可以管理并上传。 | ||||
|  | ||||
| ## 合作者 | ||||
|  | ||||
| 能让多个成员管理一个发布者,在此处添加或修改。 | ||||
|   | ||||
| tips:***发布者不能是管理者***。 | ||||
|  | ||||
| ## 权限 | ||||
|  | ||||
| 查看您的一些特殊的福利和权限,例如开发者计划等。 | ||||
|  | ||||
| ## 网络订阅 | ||||
|  | ||||
| 您可以在这添加一些 RSS 的订阅源,包括但不限于新闻,总之符合RSS协议的都可以 | ||||
|  | ||||
| - Title:添加标题,通常会在左下角显示 | ||||
| - URL:添加RSS订阅源地址的地方,一般的情况下在网站后面加 **/feed** 就可以获取订阅源啦 | ||||
| - Scrape web page for content 选择:一般情况下是要开的,作用正如他名字一样 | ||||
							
								
								
									
										5
									
								
								docs/zh/solar-network/developers/.nav.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/zh/solar-network/developers/.nav.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| title: 开发者 | ||||
| nav: | ||||
|   - index.md | ||||
|   - routing.md | ||||
|   - file-upload.md | ||||
							
								
								
									
										102
									
								
								docs/zh/solar-network/developers/file-upload.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								docs/zh/solar-network/developers/file-upload.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
| # 文件上传 | ||||
|  | ||||
| !!! note "本文由 DysonNetwork.Drive 提供服务" | ||||
|  | ||||
|     在通过网关访问时,需要将 `/api` 替换成服务 ID `/drive`。 | ||||
|  | ||||
| !!! warning "TuS 接口过时" | ||||
|  | ||||
|     原有的 `/api/tus` 接口已经过时,即将迎来移除的命运。还请使用新的 Solar Network Multipart Upload 协议上传文件。 | ||||
|  | ||||
| 本文档概述了使用多部分上传 API 分块上传大文件的过程。 | ||||
|  | ||||
| ## 1. 创建上传任务 | ||||
|  | ||||
| 要开始文件上传,您首先需要创建一个上传任务。这是通过向 `/api/files/upload/create` 端点发送 `POST` 请求来完成的。 | ||||
|  | ||||
| **端点:** `POST /api/files/upload/create` | ||||
|  | ||||
| **请求体:** | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   "hash": "string (文件哈希,例如 MD5 或 SHA256)", | ||||
|   "file_name": "string", | ||||
|   "file_size": "long (字节数)", | ||||
|   "content_type": "string (例如 'image/jpeg')", | ||||
|   "pool_id": "string (GUID,可选)", | ||||
|   "bundle_id": "string (GUID,可选)", | ||||
|   "encrypt_password": "string (可选)", | ||||
|   "expired_at": "string (ISO 8601 格式,可选)", | ||||
|   "chunk_size": "long (字节数,可选,默认 5MB)" | ||||
| } | ||||
| ``` | ||||
|  | ||||
| **响应:** | ||||
|  | ||||
| 如果具有相同哈希的文件已存在,服务器将返回 `200 OK`,响应体如下: | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   "file_exists": true, | ||||
|   "file": { ... (CloudFile 对象,以 snake_case 格式) ... } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| 如果文件不存在,服务器将返回 `200 OK`,包含任务 ID 和分块信息: | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   "file_exists": false, | ||||
|   "task_id": "string", | ||||
|   "chunk_size": "long", | ||||
|   "chunks_count": "int" | ||||
| } | ||||
| ``` | ||||
|  | ||||
| 您将需要 `task_id`、`chunk_size` 和 `chunks_count` 用于后续步骤。 | ||||
|  | ||||
| ## 2. 上传文件分块 | ||||
|  | ||||
| 一旦您有了 `task_id`,就可以开始分块上传文件。每个分块作为带有 `multipart/form-data` 的 `POST` 请求发送。 | ||||
|  | ||||
| **端点:** `POST /api/files/upload/chunk/{taskId}/{chunkIndex}` | ||||
|  | ||||
| -   `taskId`:上一步上传任务的 ID。 | ||||
| -   `chunkIndex`:您正在上传的分块的从 0 开始的索引。 | ||||
|  | ||||
| **请求体:** | ||||
|  | ||||
| 请求体的格式应为 `multipart/form-data`,包含一个名为 `chunk` 的表单字段,其中包含该分块的二进制数据。 | ||||
|  | ||||
| 每个分块的大小应等于"创建上传任务"步骤中返回的 `chunk_size`,除了最后一个分块可能更小。 | ||||
|  | ||||
| **响应:** | ||||
|  | ||||
| 成功的分块上传将返回 `200 OK`,响应体为空。 | ||||
|  | ||||
| 您应该上传从 `0` 到 `chunks_count - 1` 的所有分块。 | ||||
|  | ||||
| ## 3. 完成上传 | ||||
|  | ||||
| 所有分块成功上传后,您必须发送最终请求以完成上传过程。这将合并所有分块为单个文件并进行处理。 | ||||
|  | ||||
| **端点:** `POST /api/files/upload/complete/{taskId}` | ||||
|  | ||||
| -   `taskId`:上传任务的 ID。 | ||||
|  | ||||
| **请求体:** | ||||
|  | ||||
| 请求体应为空。 | ||||
|  | ||||
| **响应:** | ||||
|  | ||||
| 成功的请求将返回 `200 OK`,包含新上传文件的 `CloudFile` 对象。 | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   ... (CloudFile 对象) ... | ||||
| } | ||||
| ``` | ||||
|  | ||||
| 如果任何分块缺失或合并过程中发生错误,服务器将返回 `400 Bad Request` 以及错误消息。 | ||||
							
								
								
									
										7
									
								
								docs/zh/solar-network/developers/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								docs/zh/solar-network/developers/index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| # 开发者服务 | ||||
|  | ||||
| 本条目下列内容是提供给开发者阅读的,可能需要有一些技术基础才能理解。 | ||||
|  | ||||
| 在开始使用 Solar Netweork 开发之前,请确保您已充分理解并同意 [Solar Network 开发者协议](https://solsynth.dev/terms/solar-network-dev) | ||||
|  | ||||
| 本文只会提及一些需要特殊注意的地方,对于常见的 CRUD 请求请查看我们的自动生成文档 [Solar Network Swagger](https://solian.app/swagger) | ||||
							
								
								
									
										44
									
								
								docs/zh/solar-network/developers/routing.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								docs/zh/solar-network/developers/routing.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| # 路由及网关 | ||||
|  | ||||
| 众所周知,Solar Network 的服务器是一个微服务项目,所以在访问 API 的时候,您需要注意路径的指定。 | ||||
|  | ||||
| 其构造基本为 `<BaseURL>/<ServiceID>/<Path>` | ||||
|  | ||||
| 例如,你需要访问推送服务 (DysonNetwork.Ring) 的通知 API。 | ||||
|  | ||||
| ```bash | ||||
| export BASE_URL="https://api.solian.app" | ||||
| export SERVICE_ID="ring" | ||||
| export PATH="/notifications" | ||||
| echo $BASE_URL/$SERVICE_ID$PATH | ||||
| # https://api.solian.app/ring/notifications | ||||
| ``` | ||||
|  | ||||
| ## 服务分工 | ||||
|  | ||||
| 目前来说,Solar Network 服务端有四个各司其职的服务。 | ||||
|  | ||||
| - Pass 负责身份验证(使用 `id` 访问) | ||||
| - Ring 负责推送和通知 | ||||
| - Sphere 负责聊天和帖子以及领域相关的功能 | ||||
| - Develop 负责开发者相关功能 | ||||
| - Drive 负责文件上传 | ||||
|  | ||||
| 其各服务的服务 ID 即为小写服务名(不包含 DysonNetwork. 前缀) | ||||
|  | ||||
| ## WebSocket | ||||
|  | ||||
| WebSocket 由推送服务负责,但是不使用 `/ring` 服务 ID 访问,网关直接处理 `/ws` 的请求。 | ||||
|  | ||||
| WebSocket 的消息都会使用 WebSocketPacket 结构,其结构如下: | ||||
|  | ||||
| ```json | ||||
| { | ||||
|     "type": "包类型", | ||||
|     "data": "包数据,可能为任何结构、类型", | ||||
|     "endpoint": "包需要请求的服务,在服务器传来的包不会携带此项;若客户端需要向服务器发送数据包,需要将此项填写为对应服务的 ID 以帮助网关转发此包", | ||||
|     "error_message": "服务器回传包的错误信息" | ||||
| } | ||||
| ``` | ||||
|  | ||||
| 在访问 WebSocket 网关的时候,有两种授权方式,一种是通用的 `Authorization` 头。但是由于浏览器无法给 WebSocket 设置请求头,从而提供另一种兼容性选择,将访问令牌放置于 `?tk=` 查询参数中。 | ||||
							
								
								
									
										18
									
								
								docs/zh/solar-network/domain-and-chat-room.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/zh/solar-network/domain-and-chat-room.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| --- | ||||
| title: 领域和聊天室 | ||||
| --- | ||||
|  | ||||
| ## 领域 | ||||
|  | ||||
| 一个领域里面可以加入多个与之相关的群聊 | ||||
|  | ||||
| ## 聊天室 | ||||
|  | ||||
| 是一种可以在线交谈的的地方,在同一聊天室的人们通过广播消息来实时交谈。 | ||||
|  | ||||
| ## 创建聊天室 | ||||
|  | ||||
| 在聊天界面点击右下角的「+」号并并选择**创建聊天室**,这时你应该会来到这里 | ||||
| { width="380" } | ||||
|  | ||||
| 接下来看下面,您会看到一堆英文,看不懂怎么办?没关系,去翻译一下就好啦,我相信您会知道这些是干嘛的 | ||||
							
								
								
									
										17
									
								
								docs/zh/solar-network/explore.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								docs/zh/solar-network/explore.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| --- | ||||
| title: 探索 | ||||
| --- | ||||
|  | ||||
| # 探索 | ||||
|  | ||||
| Solian 的首页便是探索模块,你可以在首页看到 Solar Network 上的所有帖子。 | ||||
| 其的排序依照以下公式。 | ||||
|  | ||||
| $\text{rank} = \frac{(\text{upvotes} - \text{downvotes} + 1)}{(\text{hours_since_post} + 2)^{1.8}}$ | ||||
|  | ||||
| 探索流的主要组成是帖子,但是也可能有多种的不同内容,当前版本包含的内容如下: | ||||
|  | ||||
| - 帖子 | ||||
|   - 假若是以登陆了的用户访问推荐 API,将同时返回回复用户的帖子与关注了的用户回复的帖子。 | ||||
| - 领域 | ||||
| - 站外文章k | ||||
| @@ -1,5 +1,5 @@ | ||||
| --- | ||||
| title: Solar Network | ||||
| title: 快速开始 | ||||
| --- | ||||
|  | ||||
| # Solar Network | ||||
|   | ||||
| @@ -13,3 +13,7 @@ title: 帖子 | ||||
|  | ||||
| 其中右上角的齿轮按钮可以设置这篇帖子的**标题**以及**发布范围** | ||||
| 另外,您还可以在这儿使用 **Markdown** 的基本语法 | ||||
|  | ||||
| ## 标签(Tags) | ||||
| 标签允许您为帖子添加可搜索标签的功能。 | ||||
| tips:每次输完一个标签时,请用逗号隔开 | ||||
|   | ||||
| @@ -6,4 +6,3 @@ title: 发布者 | ||||
|  | ||||
| 当您订阅某人时,您会在通知里看到他们的帖子。但是这不会有其它用户对这篇帖子的回复。 | ||||
| 要订阅用户,请单击用户页面上的「订阅」按钮。若要取消订阅用户,请再次单击取消订阅。 | ||||
|  | ||||
|   | ||||
| @@ -2,10 +2,11 @@ | ||||
| title: 状态 | ||||
| --- | ||||
|  | ||||
| 用户的**在线情况**表示该用户在 Solian 的状态,状态会在用户页面或其他页面以指示器的形式显示 | ||||
|  | ||||
| 用户的**在线情况**表示该用户在 Solian 的状态,状态会在用户页面或其他页面以指示器的形式显示。 | ||||
|  | ||||
| { width="380" } | ||||
|  | ||||
| 您的状态会自动更改,也可以手动设置。 | ||||
| - 当您看到指示器是绿色的时候,表明他是在线的 | ||||
| - 当您看到指示器是无色的时候,表明他是不在线的 | ||||
|  | ||||
| 您的状态会自动更改,也可以手动设置。(tips:在您上线的时候会自动更改,同样下线的时候也会,隐身:您在线的时候,别人看是不在线的) | ||||
							
								
								
									
										6
									
								
								docs/zh/solar-network/stickers.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docs/zh/solar-network/stickers.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| --- | ||||
| title: 贴图 | ||||
| --- | ||||
|  | ||||
| 可以将服务器提供的图像当作贴图来使用。  | ||||
| 自定义表情符号可用于聊天、帖子、反应等。 要使用表情符号,请按表情选择器按钮或输入「:表情名称:」,例如像这样 **:yang:** | ||||
| @@ -22,3 +22,7 @@ Solian 的客户端在第一次输入 PIN Code 之后会在本地安全的情况 | ||||
|   { width="300" } | ||||
|   <figcaption>Solarpay 支付的屏幕截图</figcaption> | ||||
| </figure> | ||||
|  | ||||
| ## 源点获取 | ||||
|  | ||||
| 目前,源点获取方式是签到的,也只能通过签到获得。 | ||||
| @@ -8,6 +8,7 @@ theme: | ||||
|     - navigation.instant.progress | ||||
|     - navigation.tabs | ||||
|     - navigation.sections | ||||
|  | ||||
| plugins: | ||||
|   - meta | ||||
|   - social | ||||
| @@ -25,6 +26,8 @@ plugins: | ||||
|         - locale: zh | ||||
|           name: 简体中文 | ||||
|           build: true | ||||
|   - git-revision-date-localized | ||||
|  | ||||
| markdown_extensions: | ||||
|   - attr_list | ||||
|   - md_in_html | ||||
| @@ -32,3 +35,9 @@ markdown_extensions: | ||||
|   - admonition | ||||
|   - pymdownx.details | ||||
|   - pymdownx.superfences | ||||
|   - pymdownx.arithmatex: | ||||
|       generic: true | ||||
|  | ||||
| extra_javascript: | ||||
|   - javascripts/mathjax.js | ||||
|   - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js | ||||
|   | ||||
| @@ -13,6 +13,8 @@ cssselect2==0.8.0 | ||||
| defusedxml==0.7.1 | ||||
| docopt==0.6.2 | ||||
| ghp-import==2.1.0 | ||||
| gitdb==4.0.12 | ||||
| GitPython==3.1.44 | ||||
| idna==3.10 | ||||
| jieba==0.42.1 | ||||
| Jinja2==3.1.6 | ||||
| @@ -22,6 +24,8 @@ mergedeep==1.3.4 | ||||
| mkdocs==1.6.1 | ||||
| mkdocs-awesome-nav==3.1.2 | ||||
| mkdocs-get-deps==0.2.0 | ||||
| mkdocs-git-authors-plugin==0.10.0 | ||||
| mkdocs-git-revision-date-localized-plugin==1.4.7 | ||||
| mkdocs-glightbox==0.4.0 | ||||
| mkdocs-material==9.6.15 | ||||
| mkdocs-material-extensions==1.3.1 | ||||
| @@ -39,10 +43,12 @@ pydantic_core==2.33.2 | ||||
| Pygments==2.19.2 | ||||
| pymdown-extensions==10.16 | ||||
| python-dateutil==2.9.0.post0 | ||||
| pytz==2025.2 | ||||
| PyYAML==6.0.2 | ||||
| pyyaml_env_tag==1.1 | ||||
| requests==2.32.4 | ||||
| six==1.17.0 | ||||
| smmap==5.0.2 | ||||
| tinycss2==1.4.0 | ||||
| typing-inspection==0.4.1 | ||||
| typing_extensions==4.14.1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user