242 lines
20 KiB
XML
242 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>使用帮助 on Save Any Bot</title><link>https://sabot.unv.app/usage/</link><description>Recent content in 使用帮助 on Save Any Bot</description><generator>Hugo</generator><language>zh</language><atom:link href="https://sabot.unv.app/usage/index.xml" rel="self" type="application/rss+xml"/><item><title>静默模式</title><link>https://sabot.unv.app/usage/silent/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/silent/</guid><description><h1 id="静默模式-silent">
|
||
静默模式 (silent)
|
||
<a class="anchor" href="#%e9%9d%99%e9%bb%98%e6%a8%a1%e5%bc%8f-silent">#</a>
|
||
</h1>
|
||
<p>使用 <code>/silent</code> 命令可以开关静默模式.</p>
|
||
<p>默认情况下不开启静默模式, Bot 会询问你每个文件的保存位置.</p>
|
||
<p>开启静默模式后, Bot 会直接保存文件到默认位置, 无需确认.</p>
|
||
<p>在开启静默模式之前, 需要使用 <code>/storage</code> 命令设置默认保存位置.</p></description></item><item><title>存储规则</title><link>https://sabot.unv.app/usage/rules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/rules/</guid><description><h1 id="存储规则">
|
||
存储规则
|
||
<a class="anchor" href="#%e5%ad%98%e5%82%a8%e8%a7%84%e5%88%99">#</a>
|
||
</h1>
|
||
<p>允许你为 Bot 在上传文件到存储时设置一些重定向规则, 用于自动整理所保存的文件.</p>
|
||
<p>见: <a href="https://github.com/krau/SaveAny-Bot/issues/28" target="_blank">#28</a></p>
|
||
<p>目前支持的规则类型:</p>
|
||
<ol>
|
||
<li>FILENAME-REGEX</li>
|
||
<li>MESSAGE-REGEX</li>
|
||
<li>IS-ALBUM</li>
|
||
</ol>
|
||
<p>添加规则的基本语法:</p>
|
||
<p>&ldquo;规则类型 规则内容 存储名 路径&rdquo;</p>
|
||
<p>注意空格的使用, 语法正确 bot 才能解析, 以下是一条合法的添加规则命令:</p>
|
||
<pre tabindex="0"><code>/rule add FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
|
||
</code></pre><p>此外, 规则中的存储名若使用 &ldquo;CHOSEN&rdquo; , 则表示存储到点击按钮选择的存储端的路径下</p>
|
||
<p>规则类型:</p>
|
||
<h2 id="filename-regex">
|
||
FILENAME-REGEX
|
||
<a class="anchor" href="#filename-regex">#</a>
|
||
</h2>
|
||
<p>根据文件名正则匹配, 规则内容要求为一个合法的正则表达式, 如</p>
|
||
<pre tabindex="0"><code>FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
|
||
</code></pre><p>表示将文件名后缀为 mp4,mkv,ts,avi,flv 的文件放到名为 MyAlist 存储下的 /视频 目录内 (同时受配置文件中的 <code>base_path</code> 影响)</p>
|
||
<h2 id="message-regex">
|
||
MESSAGE-REGEX
|
||
<a class="anchor" href="#message-regex">#</a>
|
||
</h2>
|
||
<p>同上, 但是是根据消息本身的文本内容正则匹配</p>
|
||
<h2 id="is-album">
|
||
IS-ALBUM
|
||
<a class="anchor" href="#is-album">#</a>
|
||
</h2>
|
||
<p>匹配相册消息 (media group), 规则内容只能为 <code>true</code> 或 <code>false</code>.</p>
|
||
<p>规则中的路径若使用 &ldquo;NEW-FOR-ALBUM&rdquo; , 则表示为该组消息新建一个文件夹来存储它们. 见: <a href="https://github.com/krau/SaveAny-Bot/issues/87">https://github.com/krau/SaveAny-Bot/issues/87</a></p></description></item><item><title>监听聊天</title><link>https://sabot.unv.app/usage/watch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/watch/</guid><description><h1 id="监听聊天">
|
||
监听聊天
|
||
<a class="anchor" href="#%e7%9b%91%e5%90%ac%e8%81%8a%e5%a4%a9">#</a>
|
||
</h1>
|
||
<blockquote class="book-hint warning">
|
||
|
||
该功能需开启 UserBot 集成.
|
||
|
||
</blockquote>
|
||
|
||
<p>监听指定聊天的消息, 并自动保存到默认存储中, 遵从存储规则, 并且可以设置过滤器来只保存匹配的消息.</p>
|
||
<p>监听聊天:</p>
|
||
<pre tabindex="0"><code>/watch &lt;chat_id/username&gt; [filter]
|
||
</code></pre><p>取消监听:</p>
|
||
<pre tabindex="0"><code>/unwatch &lt;chat_id/username&gt;
|
||
</code></pre><p>过滤器类型:</p>
|
||
<h2 id="msgre">
|
||
msgre
|
||
<a class="anchor" href="#msgre">#</a>
|
||
</h2>
|
||
<p>正则匹配消息文本, 例如:</p>
|
||
<pre tabindex="0"><code>/watch 12345678 msgre:.*hello.*
|
||
</code></pre><p>这将会监听 ID 为 12345678 的聊天, 并且只保存消息文本中包含 &ldquo;hello&rdquo; 的消息.</p></description></item><item><title>直接下载链接</title><link>https://sabot.unv.app/usage/directlinks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/directlinks/</guid><description><h1 id="直接下载链接">
|
||
直接下载链接
|
||
<a class="anchor" href="#%e7%9b%b4%e6%8e%a5%e4%b8%8b%e8%bd%bd%e9%93%be%e6%8e%a5">#</a>
|
||
</h1>
|
||
<p>使用 <code>/dl</code> 命令可以直接下载一个或多个 HTTP/HTTPS 链接的文件到存储中.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/dl &lt;url1&gt; <span style="color:#f92672">[</span>url2<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>url3<span style="color:#f92672">]</span> ...
|
||
</span></span></code></pre></div><p>示例:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/dl https://example.com/file.zip
|
||
</span></span><span style="display:flex;"><span>/dl https://example.com/file1.zip https://example.com/file2.zip
|
||
</span></span></code></pre></div><p>Bot 会验证链接格式, 然后让你选择目标存储位置.</p></description></item><item><title>Aria2 下载</title><link>https://sabot.unv.app/usage/aria2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/aria2/</guid><description><h1 id="aria2-下载">
|
||
Aria2 下载
|
||
<a class="anchor" href="#aria2-%e4%b8%8b%e8%bd%bd">#</a>
|
||
</h1>
|
||
<blockquote class="book-hint warning">
|
||
|
||
该功能需要在配置文件中启用 Aria2 并配置 RPC 连接.
|
||
|
||
</blockquote>
|
||
|
||
<p>使用 <code>/aria2dl</code> 命令可以通过 Aria2 下载管理器下载文件, 支持 HTTP/HTTPS、FTP、BitTorrent 等多种协议.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/aria2dl &lt;uri1&gt; <span style="color:#f92672">[</span>uri2<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>uri3<span style="color:#f92672">]</span> ...
|
||
</span></span></code></pre></div><p>示例:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 下载 HTTP 链接</span>
|
||
</span></span><span style="display:flex;"><span>/aria2dl https://example.com/file.zip
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 下载磁力链接</span>
|
||
</span></span><span style="display:flex;"><span>/aria2dl magnet:?xt<span style="color:#f92672">=</span>urn:btih:...
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 下载种子文件 (需要先上传 .torrent 文件)</span>
|
||
</span></span><span style="display:flex;"><span>/aria2dl https://example.com/file.torrent
|
||
</span></span></code></pre></div><p>配置 Aria2:</p>
|
||
<p>在 <code>config.toml</code> 中添加:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#a6e22e">aria2</span>]
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">enable</span> = <span style="color:#66d9ef">true</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">url</span> = <span style="color:#e6db74">&#34;http://localhost:6800/jsonrpc&#34;</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">secret</span> = <span style="color:#e6db74">&#34;your-rpc-secret&#34;</span> <span style="color:#75715e"># 如果配置了 rpc-secret</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">remove_after_transfer</span> = <span style="color:#66d9ef">true</span> <span style="color:#75715e"># 转存完成后删除本地文件</span>
|
||
</span></span></code></pre></div></description></item><item><title>yt-dlp 视频下载</title><link>https://sabot.unv.app/usage/ytdlp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/ytdlp/</guid><description><h1 id="yt-dlp-视频下载">
|
||
yt-dlp 视频下载
|
||
<a class="anchor" href="#yt-dlp-%e8%a7%86%e9%a2%91%e4%b8%8b%e8%bd%bd">#</a>
|
||
</h1>
|
||
<blockquote class="book-hint warning">
|
||
|
||
该功能需要在系统中安装 yt-dlp 命令行工具.
|
||
|
||
</blockquote>
|
||
|
||
<p>使用 <code>/ytdlp</code> 命令可以下载支持的视频网站的视频和音频, 支持 YouTube、Bilibili、Twitter 等 1000+ 个网站.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/ytdlp &lt;url1&gt; <span style="color:#f92672">[</span>url2<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>flags...<span style="color:#f92672">]</span>
|
||
</span></span></code></pre></div><p>示例:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 基本下载</span>
|
||
</span></span><span style="display:flex;"><span>/ytdlp https://www.youtube.com/watch?v<span style="color:#f92672">=</span>dQw4w9WgXcQ
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 下载多个视频</span>
|
||
</span></span><span style="display:flex;"><span>/ytdlp https://www.youtube.com/watch?v<span style="color:#f92672">=</span>video1 https://www.youtube.com/watch?v<span style="color:#f92672">=</span>video2
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 使用自定义参数</span>
|
||
</span></span><span style="display:flex;"><span>/ytdlp https://www.youtube.com/watch?v<span style="color:#f92672">=</span>dQw4w9WgXcQ -f best
|
||
</span></span><span style="display:flex;"><span>/ytdlp https://www.youtube.com/watch?v<span style="color:#f92672">=</span>dQw4w9WgXcQ --extract-audio --audio-format mp3
|
||
</span></span></code></pre></div><p>常用参数:</p>
|
||
<ul>
|
||
<li><code>-f &lt;format&gt;</code>: 指定下载格式 (如 <code>best</code>, <code>worst</code>, <code>bestvideo+bestaudio</code>)</li>
|
||
<li><code>--extract-audio</code>: 提取音频</li>
|
||
<li><code>--audio-format &lt;format&gt;</code>: 音频格式 (如 <code>mp3</code>, <code>m4a</code>, <code>wav</code>)</li>
|
||
<li><code>--write-sub</code>: 下载字幕</li>
|
||
<li><code>--write-thumbnail</code>: 下载缩略图</li>
|
||
</ul>
|
||
<p>更多参数请参考 <a href="https://github.com/yt-dlp/yt-dlp#usage-and-options">yt-dlp 文档</a>.</p></description></item><item><title>存储间传输</title><link>https://sabot.unv.app/usage/transfer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/transfer/</guid><description><h1 id="存储间传输">
|
||
存储间传输
|
||
<a class="anchor" href="#%e5%ad%98%e5%82%a8%e9%97%b4%e4%bc%a0%e8%be%93">#</a>
|
||
</h1>
|
||
<p>使用 <code>/transfer</code> 命令可以在不同存储之间直接传输文件, 无需经过 Telegram.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/transfer &lt;source_storage&gt;:/&lt;source_path&gt; <span style="color:#f92672">[</span>filter<span style="color:#f92672">]</span>
|
||
</span></span></code></pre></div><p>参数说明:</p>
|
||
<ul>
|
||
<li><code>source_storage</code>: 源存储名称</li>
|
||
<li><code>source_path</code>: 源路径</li>
|
||
<li><code>filter</code>: 可选的正则表达式过滤器, 只传输匹配的文件</li>
|
||
</ul>
|
||
<p>示例:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># 传输整个目录</span>
|
||
</span></span><span style="display:flex;"><span>/transfer local1:/downloads
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 传输指定路径的文件</span>
|
||
</span></span><span style="display:flex;"><span>/transfer alist1:/media/photos
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 只传输 mp4 文件</span>
|
||
</span></span><span style="display:flex;"><span>/transfer webdav1:/videos <span style="color:#e6db74">&#34;.*\.mp4</span>$<span style="color:#e6db74">&#34;</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 传输图片文件</span>
|
||
</span></span><span style="display:flex;"><span>/transfer local1:/pictures <span style="color:#e6db74">&#34;(?i)\.(jpg|png|gif)</span>$<span style="color:#e6db74">&#34;</span>
|
||
</span></span></code></pre></div><p>Bot 会:</p>
|
||
<ol>
|
||
<li>列出源路径下的所有文件</li>
|
||
<li>应用过滤器 (如果提供)</li>
|
||
<li>显示文件数量和总大小</li>
|
||
<li>让你选择目标存储</li>
|
||
<li>让你选择目标目录 (如果该存储配置了目录)</li>
|
||
<li>开始传输任务</li>
|
||
</ol>
|
||
<p>注意:</p>
|
||
<ul>
|
||
<li>源存储必须支持列举和读取功能</li>
|
||
<li>目标存储必须支持写入功能</li>
|
||
<li>传输过程显示实时进度</li>
|
||
<li>支持取消正在进行的传输任务</li>
|
||
</ul></description></item><item><title>转存 Telegram 之外的文件</title><link>https://sabot.unv.app/usage/parsers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/parsers/</guid><description><h1 id="转存-telegram-之外的文件">
|
||
转存 Telegram 之外的文件
|
||
<a class="anchor" href="#%e8%bd%ac%e5%ad%98-telegram-%e4%b9%8b%e5%a4%96%e7%9a%84%e6%96%87%e4%bb%b6">#</a>
|
||
</h1>
|
||
<p>除了 Telegram 上的文件, Bot 还可通过 JavaScript 插件或内置解析器来支持转存其他网站的文件.</p>
|
||
<blockquote>
|
||
<p>查看<a href="../contribute">贡献解析器</a>文档了解详情</p></blockquote>
|
||
<p>只需向 Bot 发送符合解析器要求的链接即可使用, 当前内置的解析器:</p>
|
||
<ul>
|
||
<li>Twitter</li>
|
||
<li>Kemono</li>
|
||
</ul></description></item><item><title>HTTP API</title><link>https://sabot.unv.app/usage/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sabot.unv.app/usage/api/</guid><description><h1 id="http-api">
|
||
HTTP API
|
||
<a class="anchor" href="#http-api">#</a>
|
||
</h1>
|
||
<p>SaveAny-Bot 提供了一套 HTTP API,允许你通过程序化方式创建下载/转存任务、查询任务状态、取消任务等,无需通过 Telegram 操作。</p>
|
||
<h2 id="启用-api">
|
||
启用 API
|
||
<a class="anchor" href="#%e5%90%af%e7%94%a8-api">#</a>
|
||
</h2>
|
||
<p>在 <code>config.toml</code> 中添加或修改以下配置:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#a6e22e">api</span>]
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">enable</span> = <span style="color:#66d9ef">true</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">host</span> = <span style="color:#e6db74">&#34;0.0.0.0&#34;</span> <span style="color:#75715e"># 监听地址,默认 0.0.0.0</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">port</span> = <span style="color:#ae81ff">8080</span> <span style="color:#75715e"># 监听端口,默认 8080</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">token</span> = <span style="color:#e6db74">&#34;your-token&#34;</span> <span style="color:#75715e"># 鉴权 Token,强烈建议设置</span>
|
||
</span></span></code></pre></div><p>也可通过环境变量覆盖(前缀 <code>SAVEANY_</code>):</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>环境变量</th>
|
||
<th>对应配置项</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>SAVEANY_API_ENABLE</code></td>
|
||
<td><code>api.enable</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SAVEANY_API_HOST</code></td>
|
||
<td><code>api.host</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SAVEANY_API_PORT</code></td>
|
||
<td><code>api.port</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SAVEANY_API_TOKEN</code></td>
|
||
<td><code>api.token</code></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<blockquote class="book-hint warning">
|
||
|
||
若 `token` 为空,API 服务将**不进行任何鉴权**即可访问,存在安全风险。
|
||
|
||
</blockquote>
|
||
|
||
<h2 id="鉴权">
|
||
鉴权
|
||
<a class="anchor" href="#%e9%89%b4%e6%9d%83">#</a>
|
||
</h2>
|
||
<p>当配置了 <code>token</code> 时,所有 API 请求均需在 HTTP 请求头中携带 Bearer Token:</p>
|
||
<pre tabindex="0"><code>Authorization: Bearer &lt;your-token&gt;
|
||
</code></pre><p>鉴权失败时返回 <code>401</code>:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{ <span style="color:#f92672">&#34;error&#34;</span>: <span style="color:#e6db74">&#34;unauthorized&#34;</span>, <span style="color:#f92672">&#34;message&#34;</span>: <span style="color:#e6db74">&#34;invalid token&#34;</span> }
|
||
</span></span></code></pre></div><h2 id="错误响应格式">
|
||
错误响应格式
|
||
<a class="anchor" href="#%e9%94%99%e8%af%af%e5%93%8d%e5%ba%94%e6%a0%bc%e5%bc%8f">#</a>
|
||
</h2>
|
||
<p>所有错误均使用统一的 JSON 格式:</p></description></item></channel></rss> |