diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index a99d631..77b4832 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -15,7 +15,7 @@ on: env: # TODO: Change variable to your image's name. - IMAGE_NAME: Caution + IMAGE_NAME: caution jobs: # Run tests. diff --git a/README.md b/README.md index 0a54eba..d3105ad 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ # bilibiliupload ![](https://img.shields.io/badge/python-v3.7%2B-blue) +![GitHub](https://img.shields.io/github/license/ForgQi/bilibiliupload) 支持自动录制各大直播平台,上传直播录像到bilibili。 * 自动选择上传线路,保证国内外vps上传质量 * 可分别控制下载与上传并发量 -* 支持通过API上传与selenium操作浏览器上传两种方式 +* 支持通过API上传~~与selenium操作浏览器上传两种方式~~ 相关设置在config.yaml文件中,如直播间地址,b站账号密码 ## 使用准备 -修改文件名**config(demo).yaml** → **config.yaml**\ -下载 __FFmpeg__\ -依赖安装`pip3 install -r requirements.txt` +1. 修改文件名**config(demo).yaml** → **config.yaml** +2. 下载 __FFmpeg__ +3. 依赖安装`pip3 install -r requirements.txt` ## Linux系统下使用方法: > > 启动: ./Bilibili.py start @@ -96,4 +97,5 @@ def transcoding(data): ## Credits * Thanks `ykdl, youtube-dl, streamlink` provides downloader. -类似项目`ZhangMingZhao1/StreamerHelper` +类似项目:\ +![ZhangMingZhao1/StreamerHelper](https://avatars2.githubusercontent.com/u/29058747?s=50&u=5f8c3acaa9d09f4396f00256c0ce6ef01452e92f&v=4) diff --git a/engine/__init__.py b/engine/__init__.py index 54bc023..4c6c58a 100644 --- a/engine/__init__.py +++ b/engine/__init__.py @@ -30,7 +30,7 @@ async def main(): # 初始化事件管理器 event_manager.context = {**config, 'urls': urls, 'url_status': url_status, 'checker': checker, 'inverted_index': inverted_index, 'streamer_url': streamer_url} - import engine.handler + from engine.handler import CHECK_UPLOAD, CHECK event_manager.start() async def check_timer(): @@ -46,11 +46,4 @@ async def main(): await asyncio.gather(detector.astart(), timer.astart(), return_exceptions=True) -CHECK = 'check' -CHECK_UPLOAD = 'check_upload' -TO_MODIFY = 'to_modify' -DOWNLOAD = 'download' -BE_MODIFIED = 'be_modified' -UPLOAD = 'upload' -__all__ = ['downloader', 'uploader', 'plugins', 'main', - 'CHECK', 'BE_MODIFIED', 'DOWNLOAD', 'TO_MODIFY', 'UPLOAD', 'CHECK_UPLOAD'] +__all__ = ['downloader', 'uploader', 'plugins', 'main'] diff --git a/engine/handler.py b/engine/handler.py index cdfbe12..1405e62 100644 --- a/engine/handler.py +++ b/engine/handler.py @@ -1,11 +1,17 @@ import common from common import logger from common.event import Event, event_manager -from engine import * from engine.downloader import download, check_url from engine.plugins.upload import UploadBase from engine.uploader import upload +CHECK = 'check' +CHECK_UPLOAD = 'check_upload' +TO_MODIFY = 'to_modify' +DOWNLOAD = 'download' +BE_MODIFIED = 'be_modified' +UPLOAD = 'upload' + @event_manager.register(DOWNLOAD, block=True) def process(name, url): @@ -55,10 +61,6 @@ class KernelFunc: self.url_status[url] = 1 return Event(DOWNLOAD, args=(name, url)) - def free(self, list_url): - status_num = list(map(lambda x: self.url_status.get(x), list_url)) - return not (1 in status_num or 2 in status_num) - @event_manager.register(CHECK_UPLOAD) def free_upload(self): for title, urls in self.streamer_url.items(): @@ -71,3 +73,7 @@ class KernelFunc: # 更新字典 # url_status = {**url_status, **{url: 0}} self.url_status.update({url: status}) + + def free(self, list_url): + status_num = list(map(lambda x: self.url_status.get(x), list_url)) + return not (1 in status_num or 2 in status_num)