📝 add user documentation.

This commit is contained in:
xtaodada 2021-06-15 23:38:27 +08:00
commit 6960c46f3b
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
10 changed files with 303 additions and 0 deletions

0
.nojekyll Normal file
View File

11
README.md Normal file
View File

@ -0,0 +1,11 @@
# 简介
Pagermaid-modify 是一个开源的 Telegram 人形自走 Bot 方案,功能强大而丰富,可以帮助你打造专属的便利功能。
本 Wiki 主要详细说明搭建的流程和注意事项,以便各位用户依此搭建属于自己的 Userbot 。
由于资金有限和部分依赖包的安装方便性,这里主要提供 `ubuntu 16.04` 的安装过程。(欢迎其他用户提供其他系统的搭建方法)
## 手动搭建
欢迎加入 [讨论群](https://t.me/joinchat/FLV4ZFXq9nUFLLe0HDxfQQ) 探讨你的疑问。

18
_coverpage.md Normal file
View File

@ -0,0 +1,18 @@
<!-- _coverpage.md -->
![logo](circle-cropped.png)
# PagerMaid-Modify <small>1.0</small>
> 一个帮助 Telegram 用户提升网上冲浪体验的程序。
- 轻便
- 多功能
- 可扩展
[GitHub](https://github.com/Xtao-Labs/PagerMaid-Modify)
[Get Started](#%e7%ae%80%e4%bb%8b)
<!-- 背景图片 -->
![](bg.jpg)

5
_sidebar.md Normal file
View File

@ -0,0 +1,5 @@
<!-- docs/_sidebar.md -->
* [开始](README)
* 手动安装
* [Ubuntu 16.04](ubuntu)

BIN
bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
circle-cropped.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

50
index.html Normal file
View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/dark.css">
</head>
<body>
<div id="app">加载中</div>
<script>
window.$docsify = {
name: 'PagerMaid-Modify 用户文档',
repo: 'https://github.com/Xtao-Labs/PagerMaid-Modify',
loadSidebar: true,
subMaxLevel: 4,
coverpage: true,
auto2top: true,
logo: 'circle-cropped.png',
onlyCover: false,
search: {
placeholder: '搜索',
noData: '找不到结果!',
depth: 3
},
count:{
countable:true,
fontsize:'0.9em',
color:'rgb(90,90,90)',
language:'chinese'
}
}
</script>
<!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
<script src="//unpkg.com/docsify-count/dist/countable.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-python.min.js"></script>
<script>
if (typeof navigator.serviceWorker !== 'undefined') {
navigator.serviceWorker.register('sw.js')
}
</script>
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
</body>
</html>

83
sw.js Normal file
View File

@ -0,0 +1,83 @@
/* ===========================================================
* docsify sw.js
* ===========================================================
* Copyright 2016 @huxpro
* Licensed under Apache 2.0
* Register service worker.
* ========================================================== */
const RUNTIME = 'docsify'
const HOSTNAME_WHITELIST = [
self.location.hostname,
'fonts.gstatic.com',
'fonts.googleapis.com',
'cdn.jsdelivr.net'
]
// The Util Function to hack URLs of intercepted requests
const getFixedUrl = (req) => {
var now = Date.now()
var url = new URL(req.url)
// 1. fixed http URL
// Just keep syncing with location.protocol
// fetch(httpURL) belongs to active mixed content.
// And fetch(httpRequest) is not supported yet.
url.protocol = self.location.protocol
// 2. add query for caching-busting.
// Github Pages served with Cache-Control: max-age=600
// max-age on mutable content is error-prone, with SW life of bugs can even extend.
// Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
// Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
if (url.hostname === self.location.hostname) {
url.search += (url.search ? '&' : '?') + 'cache-bust=' + now
}
return url.href
}
/**
* @Lifecycle Activate
* New one activated when old isnt being used.
*
* waitUntil(): activating ====> activated
*/
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim())
})
/**
* @Functional Fetch
* All network requests are being intercepted here.
*
* void respondWith(Promise<Response> r)
*/
self.addEventListener('fetch', event => {
// Skip some of cross-origin requests, like those for Google Analytics.
if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
// Stale-while-revalidate
// similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
// Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
const cached = caches.match(event.request)
const fixedUrl = getFixedUrl(event.request)
const fetched = fetch(fixedUrl, { cache: 'no-store' })
const fetchedCopy = fetched.then(resp => resp.clone())
// Call respondWith() with whatever we get first.
// If the fetch fails (e.g disconnected), wait for the cache.
// If theres nothing in cache, wait for the fetch.
// If neither yields a response, return offline pages.
event.respondWith(
Promise.race([fetched.catch(_ => cached), cached])
.then(resp => resp || fetched)
.catch(_ => { /* eat any errors */ })
)
// Update the cache with the version we fetched (only for ok status)
event.waitUntil(
Promise.all([fetchedCopy, caches.open(RUNTIME)])
.then(([response, cache]) => response.ok && cache.put(event.request, response))
.catch(_ => { /* eat any errors */ })
)
}
})

136
ubuntu.md Normal file
View File

@ -0,0 +1,136 @@
# Ubuntu16.04
一个经典的老牌系统。
# 拉取项目
本项目托管在 `github` ,所以您首先需要检查您是否已经安装 `git` 软件包。并且我们发现当 `git` 软件包版本过低时,无法实现程序的自动更新,所以您需要首先升级 `git` 软件包:
```bash
sudo apt-get install --only-upgrade git -y
```
从仓库拉取项目
```bash
cd /var/lib && git clone https://github.com/xtaodada/PagerMaid-Modify.git pagermaid && cd pagermaid
```
# 安装软件包
## imagemagick
?> 此软件包用于处理图片,如您没有图片处理需求,您可以无需安装此软件包。
```bash
sudo apt-get install imagemagick -y
```
## neofetch
?> 此软件包用于显示系统信息,如您没有显示系统信息需求,您可以无需安装此软件包。
```bash
apt-get install software-properties-common && sudo add-apt-repository ppa:dawidd0811/neofetch && sudo apt-get update && sudo apt-get install neofetch
```
## zbar
?> 此软件包用于处理二维码信息,如您没有处理二维码信息需求,您可以无需安装此软件包。
```bash
sudo apt-get install libzbar-dev -y
```
## tesseract
?> 此软件包用于图片光学字符识别,如你没有处理此方面的需求,你可以无需安装此软件包。
## 最大化安装
```bash
sudo apt-get install tesseract-ocr tesseract-ocr-all -y
```
## 最小化安装
```bash
sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim -y
```
## Redis
?> 此软件包用于记录信息,以方便软件重启后仍然可以进行上一次未完成的任务,你也可以无需安装此软件包。
```bash
sudo apt-get install redis-server -y
```
# 安装依赖包
```bash
pip3 install -r requirements.txt
```
# 修改配置文件
将配置 `config.gen.yml` 文件复制一份并且命名为 `config.yml`
```bash
cp config.gen.yml config.yml
```
然后去 [telegram 官网](https://my.telegram.org/) 生成 api 填入配置文件内,我们只需要复制 `api id``api_hash` 值 填入 `api_key``api_hash`
```bash
vi config.yml
```
> 按 i 进入编辑模式,粘贴好后,按下 esc 输入 shift 加冒号,输入 wq 保存退出
# 登录账号
```bash
python3 -m pagermaid
```
此步需要填入完整的电话号码eg`+12569986522`)然后 tg 会发给你的其他客户端发送验证码,填入验证码后,回车,如有两步验证密码,则再输入两步验证密码即可。
停止运行:
```bash
ctrl + c
```
有时(或大部分时间),当您在服务器部署 `PagerMaid-modify` 时,登录会有问题,当出现了问题,请在应用程序的配置步骤配置唯一的 `api_key``api_hash` ,然后在您的本地电脑上执行 `python3 utils/mksession.py` ,在账号登录成功以后,将生成的 `pagermaid.session` 文件复制到服务器对应目录即可。
!> 请注意保护好您已登录的 `pagermaid.session` 。此文件可以进行账号所有操作,请不要分享给他人使用。
# 进程守护
此步骤可以方便 `pagermaid` 的自动运行,您无需在 `pagermaid` 意外退出后重新登录主机进行操作。
```bash
cat <<'TEXT' > /etc/systemd/system/pagermaid.service
[Unit]
Description=PagerMaid-Modify telegram utility daemon
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
WorkingDirectory=/var/lib/pagermaid
ExecStart=/usr/bin/python3 -m pagermaid
Restart=always
TEXT
```
# 常用指令
启动程序:`systemctl start pagermaid`
设置为开机自启:`systemctl enable pagermaid`
停止程序:`systemctl stop pagermaid`