mirror of
https://github.com/tgbot-collection/YYeTsBot.git
synced 2025-11-25 19:37:34 +08:00
add tauri application, merge golang
This commit is contained in:
39
.github/workflows/golang-onekey.yaml
vendored
39
.github/workflows/golang-onekey.yaml
vendored
@@ -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
112
.github/workflows/release_apps.yaml
vendored
Normal 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/*
|
||||
1
Makefile
1
Makefile
@@ -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'"
|
||||
|
||||
|
||||
21
README.md
21
README.md
@@ -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/Linux,cd到你的目录, `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下载msi,macos下载dmg或tar.gz,Linux下载AppImage或deb(Debian based)
|
||||
3. 安装后,打开App,就可以看到熟悉的搜索界面啦!
|
||||
|
||||
# 开发
|
||||
|
||||
|
||||
2
YYeTsFE
2
YYeTsFE
Submodule YYeTsFE updated: c34cfc528d...6cd1b8d7f9
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user