add tauri application, merge golang

This commit is contained in:
Benny
2023-04-03 21:12:15 +02:00
parent fd9959fa88
commit c60088a9de
9 changed files with 148 additions and 51 deletions

View File

@@ -1,39 +0,0 @@
name: Publish golang one key release
on:
push:
tags:
- "*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.19
- name: Install nodejs
uses: actions/setup-node@v3
with:
node-version: 16
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build binaries
run: |
npm install -g yarn
make all
ls yyetsweb/builds/
- name: Release files
uses: softprops/action-gh-release@v1
with:
name: "YYeTs"
files: yyetsweb/builds/*

112
.github/workflows/release_apps.yaml vendored Normal file
View File

@@ -0,0 +1,112 @@
name: Publish Executable Application
on:
push:
tags:
- "*"
jobs:
publish-tauri-apps:
name: Publish Tauri Apps
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [ macos-latest, ubuntu-22.04, windows-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: Install nodejs
uses: actions/setup-node@v3
with:
node-version: 16
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: install dependencies (macos only)
if: matrix.platform == 'macos-latest'
run: |
rustup target add aarch64-apple-darwin
- name: Run tauri hooks
env:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
REACT_APP_SENTRY_DSN: ${{ secrets.REACT_APP_SENTRY_DSN }}
REACT_APP_DOMAIN: ${{ secrets.REACT_APP_DOMAIN }}
REACT_APP_GA: ${{ secrets.REACT_APP_GA }}
GENERATE_SOURCEMAP: ${{ secrets.GENERATE_SOURCEMAP }}
run: |
bash scripts/pre_build.sh
echo "REACT_APP_TAURI=https://yyets.dmesg.app" >> YYeTsFE/.env
- name: Install yarn
run: |
npm install -g yarn
cd YYeTsFE
yarn --network-timeout 1000000
cd ${{ env.GITHUB_WORKSPACE }}
- name: Setup macos universal binary env
if: matrix.platform == 'macos-latest'
run: echo "BUILD_ARGS=--target universal-apple-darwin" >> $GITHUB_ENV
- uses: tauri-apps/tauri-action@e537a6f7bc75cbe74c6668f28a9836bd8d0eac36
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: yyetsbot-app-v__VERSION__
releaseName: 'YYeTsBot App v__VERSION__'
releaseDraft: false
prerelease: false
projectPath: "YYeTsFE"
includeDebug: false
args: ${{ env.BUILD_ARGS }}
publish-golang-apps:
name: Publish Golang Apps
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: '1.20'
- name: Install nodejs
uses: actions/setup-node@v3
with:
node-version: 16
- name: Build Golang binary
run: |
npm install -g yarn
make all
ls yyetsweb/builds/
- name: Upload Golang files
uses: softprops/action-gh-release@v1
with:
name: "YYeTsBot 离线一键运行包"
files: yyetsweb/builds/*

View File

@@ -84,6 +84,7 @@ release:
git tag $(shell git rev-parse --short HEAD)
git push --tags
ci-test:
docker run --rm bennythink/yyetsbot /bin/sh -c "cd /YYeTsBot/yyetsweb/tests;python -m unittest discover -p '*_test.py'"

View File

@@ -78,19 +78,28 @@ yyets_offline - 人人影视离线数据
# 小白使用
想要自己留一份资源,但是又不懂编程? 没关系!目前提供两种方式,请根据自己情况选择
“离线使用” 意味着可以断网使用,但是不会自动更新资源,需要手动更新数据库;“在线应用” 意味着需要有互联网才可以使用。
## 一键安装
## 离线 完整运行
这个版本是新的UI拥有全部的最新功能。
这个版本是新的UI拥有全部的最新功能。运行在你本地的电脑上,不依赖外界环境。
[参考文档](https://github.com/tgbot-collection/YYeTsBot/blob/master/DEVELOPMENT.md#%E4%B8%80%E9%94%AE%E8%84%9A%E6%9C%AC)
## 一键运行包
## 离线 一键运行包
这个版本使用起来也很简单,也同样是最新的UI只不过只有最基础的搜索功能。步骤如下
一键运行包。拥有比较新的UI只不过只有最基础的搜索、查看资源的功能。使用方法步骤如下
1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) 根据自己平台下载最新的一键运行包
1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) ,找最新的 `YYeTsBot 离线一键运行包`
2. windows双击第一步下载的exe文件 macos/Linuxcd到你的目录, `chmod +x yyetsweb ; ./yyetsweb`
3. 程序会自动下载数据库并启动。等到出现启动banner时, 打开浏览器 http://127.0.0.1:8888 就可以看到熟悉的搜索界面啦!
3. 程序会自动下载数据库并启动。等到出现启动提示时, 打开浏览器 http://127.0.0.1:8888 就可以看到熟悉的搜索界面啦!
## 在线 原生应用程序
使用tauri封装的网页。内容等同于 `https://yyets.dmesg.app`只不过是原生的App。使用方法如下
1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) ,找最新的 `YYeTsBot App`
2. windows下载msimacos下载dmg或tar.gzLinux下载AppImage或debDebian based
3. 安装后打开App就可以看到熟悉的搜索界面啦
# 开发

Submodule YYeTsFE updated: c34cfc528d...6cd1b8d7f9

View File

@@ -2,21 +2,21 @@ requests==2.28.2
pytelegrambotapi==4.10.0
beautifulsoup4==4.12.0
tgbot-ping==1.0.7
redis==4.5.3
redis==4.5.4
apscheduler==3.10.1
pymongo==4.3.3
tornado==6.2
captcha==0.4
passlib==1.7.4
fakeredis==2.10.2
fakeredis==2.10.3
filetype==1.2.0
requests[socks]
tqdm==4.65.0
retry==0.9.2
pymysql==1.0.2
pymysql==1.0.3
git+https://github.com/tgbot-collection/python-akismet
openpyxl==3.1.2
zhconv==1.4.3
jinja2==3.1.2
coloredlogs==15.0.1
meilisearch==0.25.0
meilisearch==0.26.0

View File

@@ -36,7 +36,14 @@ class BaseHandler(web.RequestHandler):
self.instance = getattr(module, class_name, lambda: 1)()
self.r = Redis().r
def add_tauri(self):
origin = self.request.headers.get("origin", "")
allow_origins = ["tauri://localhost", "https://tauri.localhost"]
if origin in allow_origins:
self.set_header("Access-Control-Allow-Origin", origin)
def prepare(self):
self.add_tauri()
if self.check_request():
self.set_status(HTTPStatus.FORBIDDEN)
self.finish()

View File

@@ -52,6 +52,13 @@ class MetricsHandler(BaseHandler):
resp = yield self.set_metrics()
self.write(resp)
@gen.coroutine
def options(self):
self.add_tauri()
self.set_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
self.set_status(HTTPStatus.NO_CONTENT)
self.finish()
class GrafanaIndexHandler(BaseHandler):
filename = filename

View File

@@ -35,7 +35,7 @@ class ResourceHandler(BaseHandler):
def make_some_fun(self):
referer = self.request.headers.get("referer")
ip = self.get_real_ip()
if not referer:
if not referer and self.request.headers.get("origin") != "tauri://localhost":
cf.ban_new_ip(ip)
if os.getenv("GIFT"):
self.set_header("Content-Type", "text/html")