-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
298 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
version = 1 | ||
|
||
[[analyzers]] | ||
name = "python" | ||
enabled = true | ||
|
||
[analyzers.meta] | ||
runtime_version = "3.x.x" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
custom: ['https://afdian.net/@xtaodada'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
## Description | ||
|
||
Please carefully read the [Contributing note](https://github.com/TeamPGM/PagerMaid-Pyro/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/TeamPGM/PagerMaid-Pyro/blob/development/CODE_OF_CONDUCT.md) before making any pull requests. | ||
And, **Do not make a pull request to merge into master unless it is a hotfix. Use the development branch instead.** | ||
|
||
## Issues fixed by this PR | ||
|
||
<!--- Put the links of issues that may be fixed by this PR here (if any). --> | ||
|
||
## Type of changes | ||
|
||
<!--- Put an `x` in all the boxes that apply your changes. --> | ||
|
||
- [ ] Bug fix | ||
- [ ] New feature | ||
- [ ] Enhancement | ||
- [ ] Documentation | ||
|
||
## Checklist: | ||
|
||
- [ ] My code follows the style guidelines of this project | ||
- [ ] My pull request is unique and no other pull requests have been opened for these changes | ||
- [ ] I have read the [Contributing note](https://github.com/TeamPGM/PagerMaid-Pyro/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/TeamPGM/PagerMaid-Pyro/blob/development/CODE_OF_CONDUCT.md) | ||
- [ ] I am responsible for any copyright issues with my code if it occurs in the future. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
name: "Docker Build" | ||
|
||
# Controls when the action will run. | ||
on: | ||
# Triggers the workflow on push or pull request events but only for the master branch | ||
workflow_dispatch: ~ | ||
push: | ||
branches: [ master ] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
name: docker build and publish | ||
env: | ||
DOCKER_BUILDKIT: 1 | ||
DOCKER_CLI_EXPERIMENTAL: enabled | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKERHUB_REPOSITORY: ${{ secrets.DOCKER_REPO }} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Login to DockerHub | ||
uses: docker/login-action@v1 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_TOKEN }} | ||
|
||
- name: Setup Docker Buildx | ||
uses: crazy-max/ghaction-docker-buildx@v3 | ||
|
||
- name: Buildx cache | ||
uses: actions/cache@v2 | ||
id: buildx-cache | ||
with: | ||
path: /tmp/.buildx-cache | ||
key: ${{ runner.os }}-buildx | ||
|
||
- name: Build | ||
run: | | ||
declare -a IMAGES | ||
echo "Build amd64" | ||
docker buildx build \ | ||
--cache-from "type=local,src=/tmp/.buildx-cache" \ | ||
--cache-to "type=local,dest=/tmp/.buildx-cache" \ | ||
--output "type=image,push=true" \ | ||
--platform linux/amd64 \ | ||
--build-arg "S6_ARCH=amd64" \ | ||
--tag "${DOCKERHUB_REPOSITORY}:latest-amd64" \ | ||
-f Dockerfile \ | ||
. | ||
IMAGES+=( "${DOCKERHUB_REPOSITORY}:latest-amd64" ) | ||
echo "Build arm64-v8" | ||
docker buildx build \ | ||
--cache-from "type=local,src=/tmp/.buildx-cache" \ | ||
--cache-to "type=local,dest=/tmp/.buildx-cache" \ | ||
--output "type=image,push=true" \ | ||
--platform linux/arm64/v8 \ | ||
--build-arg "S6_ARCH=aarch64" \ | ||
--tag "${DOCKERHUB_REPOSITORY}:latest-arm64-v8" \ | ||
-f Dockerfile \ | ||
. | ||
IMAGES+=( "${DOCKERHUB_REPOSITORY}:latest-arm64-v8" ) | ||
echo "Create manifest lists" | ||
docker manifest create "${DOCKERHUB_REPOSITORY}:latest" "${IMAGES[@]}" | ||
echo "Annotate manifest lists to add architecture variants that aren't picked up automatically" | ||
docker manifest annotate "${DOCKERHUB_REPOSITORY}:latest" "${DOCKERHUB_REPOSITORY}:latest-arm64-v8" --variant "v8" | ||
echo "Push manifest lists & delete local copies" | ||
docker manifest push --purge "${DOCKERHUB_REPOSITORY}:latest" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
FROM ubuntu:latest | ||
ARG S6_VERSION=v2.2.0.3 | ||
ARG S6_ARCH=amd64 | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
ARG USER_NAME=pagermaid | ||
ARG WORK_DIR=/pagermaid/workdir | ||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ | ||
SHELL=/bin/bash \ | ||
LANG=zh_CN.UTF-8 \ | ||
PS1="\u@\h:\w \$ " \ | ||
RUN_AS_ROOT=true | ||
SHELL ["/bin/bash", "-c"] | ||
WORKDIR $WORK_DIR | ||
RUN source ~/.bashrc \ | ||
## 安装运行环境依赖,自编译建议修改为国内镜像源 | ||
# && sed -i 's/archive.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list \ | ||
# && sed -i 's/security.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list \ | ||
# && sed -i 's/ports.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list \ | ||
&& apt-get update \ | ||
&& apt-get upgrade -y \ | ||
&& apt-get install --no-install-recommends -y \ | ||
python3 \ | ||
python3-pip \ | ||
tesseract-ocr \ | ||
tesseract-ocr-eng \ | ||
tesseract-ocr-chi-sim \ | ||
language-pack-zh-hans \ | ||
sudo \ | ||
git \ | ||
openssl \ | ||
curl \ | ||
wget \ | ||
neofetch \ | ||
imagemagick \ | ||
ffmpeg \ | ||
fortune-mod \ | ||
figlet \ | ||
libmagic1 \ | ||
libzbar0 \ | ||
iputils-ping \ | ||
## 安装s6 | ||
&& curl -L -o /tmp/s6-overlay-installer https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}-installer \ | ||
&& chmod +x /tmp/s6-overlay-installer \ | ||
&& /tmp/s6-overlay-installer / \ | ||
## 安装编译依赖 | ||
&& apt-get update \ | ||
&& apt-get install --no-install-recommends -y \ | ||
## 这是跨平台交叉编译要用到的包,如果自行构建,有可能不需要 | ||
build-essential \ | ||
apt-utils \ | ||
python3-dev \ | ||
libxslt1-dev \ | ||
libxml2-dev \ | ||
libssl-dev \ | ||
libffi-dev \ | ||
zlib1g-dev \ | ||
tcl8.6-dev \ | ||
tk8.6-dev \ | ||
libimagequant-dev \ | ||
libraqm-dev \ | ||
libjpeg-dev \ | ||
libtiff5-dev \ | ||
libopenjp2-7-dev \ | ||
libfreetype6-dev \ | ||
liblcms2-dev \ | ||
libwebp-dev \ | ||
python3-tk \ | ||
libharfbuzz-dev \ | ||
libfribidi-dev \ | ||
libxcb1-dev \ | ||
pkg-config \ | ||
## 设置时区 | ||
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ | ||
&& echo "Asia/Shanghai" > /etc/timezone \ | ||
## python软链接 | ||
&& ln -sf /usr/bin/python3 /usr/bin/python \ | ||
## 升级pip | ||
# && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \ | ||
&& python -m pip install --upgrade pip \ | ||
## 添加用户 | ||
&& useradd $USER_NAME -u 917 -U -r -m -d /$USER_NAME -s /bin/bash \ | ||
&& usermod -aG sudo,users $USER_NAME \ | ||
&& echo "$USER_NAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USER_NAME \ | ||
## 克隆仓库 | ||
&& git clone -b master https://github.com/TeamPGM/PagerMaid-Pyro.git $WORK_DIR \ | ||
&& git config --global pull.ff only \ | ||
## 复制s6启动脚本 | ||
&& cp -r s6/* / \ | ||
## pip install | ||
&& pip install -r requirements.txt \ | ||
## 卸载编译依赖,清理安装缓存 | ||
&& sudo apt-get purge --auto-remove -y \ | ||
build-essential \ | ||
apt-utils \ | ||
python3-dev \ | ||
libxslt1-dev \ | ||
libxml2-dev \ | ||
libssl-dev \ | ||
libffi-dev \ | ||
zlib1g-dev \ | ||
tcl8.6-dev \ | ||
tk8.6-dev \ | ||
libimagequant-dev \ | ||
libraqm-dev \ | ||
libjpeg-dev \ | ||
libtiff5-dev \ | ||
libopenjp2-7-dev \ | ||
libfreetype6-dev \ | ||
liblcms2-dev \ | ||
libwebp-dev \ | ||
python3-tk \ | ||
libharfbuzz-dev \ | ||
libfribidi-dev \ | ||
libxcb1-dev \ | ||
pkg-config \ | ||
&& apt-get clean -y \ | ||
&& rm -rf \ | ||
## 删除apt和pip的安装缓存 | ||
/tmp/* \ | ||
/var/lib/apt/lists/* \ | ||
/var/tmp/* \ | ||
~/.cache | ||
ENTRYPOINT ["/init"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
from typing import List | ||
from pagermaid.single_utils import sqlite | ||
|
||
|
||
class Sub: | ||
def __init__(self, name: str): | ||
self.name = name | ||
|
||
def get_subs(self) -> List: | ||
return sqlite.get(f"{self.name}.sub", []) | ||
|
||
def clear_subs(self) -> None: | ||
sqlite[f"{self.name}.sub"] = [] | ||
del sqlite[f"{self.name}.sub"] | ||
|
||
def add_id(self, uid: int) -> bool: | ||
data = self.get_subs() | ||
if uid in data: | ||
return False | ||
data.append(uid) | ||
sqlite[f"{self.name}.sub"] = data | ||
return True | ||
|
||
def del_id(self, uid: int) -> bool: | ||
data = self.get_subs() | ||
if uid not in data: | ||
return False | ||
data.remove(uid) | ||
sqlite[f"{self.name}.sub"] = data | ||
return True | ||
|
||
def check_id(self, uid: int) -> bool: | ||
data = self.get_subs() | ||
return uid in data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
if [[ $RUN_AS_ROOT != true ]]; then | ||
PUID=${PUID:-917} | ||
PGID=${PGID:-917} | ||
groupmod -o -g "$PGID" pagermaid | ||
usermod -o -u "$PUID" pagermaid | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
cd /pagermaid/workdir | ||
git remote set-url origin https://github.com/TeamPGM/PagerMaid-Pyro.git | ||
git pull | ||
|
||
pip install -r requirements.txt | ||
if [ -s requirements2.txt ]; then | ||
pip install -r requirements2.txt | ||
fi | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
if [[ $RUN_AS_ROOT != true ]]; then | ||
chown -R pagermaid:pagermaid /pagermaid | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
cd /pagermaid/workdir | ||
if [[ $RUN_AS_ROOT != true ]]; then | ||
exec s6-setuidgid pagermaid python -m pagermaid | ||
else | ||
exec s6-setuidgid root python -m pagermaid | ||
fi | ||
|