Explorar o código

确认 docker 下无法使用 rod 的模拟点击功能,所以取消了相应的设置

Signed-off-by: 716 <[email protected]>
716 %!s(int64=4) %!d(string=hai) anos
pai
achega
affe5cd9d8
Modificáronse 6 ficheiros con 39 adicións e 47 borrados
  1. 25 28
      README.md
  2. 3 3
      common/config.go
  3. 3 2
      common/reqParam.go
  4. 1 7
      config.yaml.sample
  5. 2 2
      main.go
  6. 5 5
      sub_supplier/subhd/subhd.go

+ 25 - 28
README.md

@@ -15,7 +15,7 @@
 支持的字幕下载站点:
 
 * zimuku
-* subhd
+* subhd (注意,docker 下无法下载,原因看下面)
 * shooter
 * xunlei
 
@@ -46,9 +46,9 @@
 
 ### 使用 docker-compose 部署
 
-编写以下的配置文件,注意 docker-compose 文件需要与本程序的 config.yaml 配套,特别是 MovieFolder 这个。
+> 尝试后发现,目前无法用 docker 中的 browser 去模拟点击操作,所以,docker 部署,无法支持 subhd 的字幕下载
 
-同时,为了解决 subhd 下载的问题(模拟浏览器点击做到的,具体看代码),使用了 go-rod,同时需要用他们的 rod-browser 这个镜像
+编写以下的配置文件,注意 docker-compose 文件需要与本程序的 config.yaml 配套,特别是 MovieFolder 这个
 
 ```yaml
 version: "3"
@@ -61,38 +61,41 @@ services:
     environment:
       TZ: Asia/Shanghai
     restart: unless-stopped
-  rod-browser:
-    image: rodorg/rod:latest
-    ports:
-      - 9222:9222
-    environment:
-      TZ: Asia/Shanghai
-    restart: unless-stopped
 ```
 
 然后把 config.yaml.sample 复制一份,重命名为 config.yaml,内容如下(每个配置啥意思见《配置文件解析》)
 
-注意,RemoteBrowserDockerURL 这里就是上面 rod-browser 的地址,写你自己的。
-
 ```yaml
 UseProxy: false
 HttpProxy: http://127.0.0.1:10809
-
 EveryTime: 6h
 DebugMode: false
 SaveMultiSub: false
-
-UserRemoteBrowser: true
-RemoteBrowserDockerURL: ws://192.168.50.135:9222
-
 FoundExistSubFileThanSkip: true
-
+UseUnderDocker: true
 MovieFolder: /app/videofolder
 ```
 
-### 直接运行
+### 有图形界面的操作系统下直接运行
 
-直接配置 config.xaml 就可以用啦
+> 注意,如果你是在 Windows(类似 Llinux MAC OS 有图形化界面的系统)上使用
+>
+> 那么是可以支持在 subhd 的字幕下载的
+>
+> 那么 config.yaml 中的 UseUnderDocker可以设置为 fasle
+
+举例,在 Windows 下运行。
+
+```yaml
+UseProxy: false
+HttpProxy: http://127.0.0.1:10809
+EveryTime: 6h
+DebugMode: false
+SaveMultiSub: false
+FoundExistSubFileThanSkip: true
+UseUnderDocker: false
+MovieFolder: X:\电影
+```
 
 ### 配置文件解析
 
@@ -101,16 +104,11 @@ MovieFolder: /app/videofolder
 ```yaml
 UseProxy: false
 HttpProxy: http://127.0.0.1:10809
-
 EveryTime: 6h
 DebugMode: false
 SaveMultiSub: false
-
-UserRemoteBrowser: true
-RemoteBrowserDockerURL: ws://192.168.50.135:9222
-
 FoundExistSubFileThanSkip: true
-
+UseUnderDocker: true
 MovieFolder: X:\电影
 ```
 
@@ -119,9 +117,8 @@ MovieFolder: X:\电影
 * EveryTime,,默认 6h。每隔多久触发一次下载逻辑。怎么用参考,[robfig/cron: a cron library for go (github.com)](https://github.com/robfig/cron)
 * DebugMode,默认 false。调试模式,会在每个视频的文件夹下,新建一个  subtmp 文件夹,把所有匹配到的字幕都缓存到这个目录,没啥事可以不开。开的话就可以让你手动选择一堆的字幕啦。
 * SaveMultiSub,默认值 false。true 会在每个视频下面保存每个网站找到的最佳字幕(见下面《如何手动刷新 emby 加载字幕》,会举例)。false ,那么每个视频下面就一个最优字幕。
-* UserRemoteBrowser,默认 false。是否使用远程的浏览器去爬取 subhd 的字幕。
-* RemoteBrowserDockerURL,远程 rod-browser 的 ws 地址
 * FoundExistSubFileThanSkip,默认 true。是否跳过已经下载过 sub 的视频。
+* UseUnderDocker,默认值 true。如果是 ture,那么就不行启用 subhd 的下载(原因见《使用 docker-compose 部署》)
 * MovieFolder,填写你的电影的目录(暂时只支持电影,后续会支持其他的类型)
 
 ### 如何手动刷新 emby 加载字幕

+ 3 - 3
common/config.go

@@ -6,8 +6,8 @@ type Config struct {
 	EveryTime string
 	DebugMode bool
 	SaveMultiSub bool
-	MovieFolder string
-	UserRemoteBrowser bool
-	RemoteBrowserDockerURL string
 	FoundExistSubFileThanSkip bool
+	UseUnderDocker	bool	// 是否在 docker 下使用
+	MovieFolder string
+
 }

+ 3 - 2
common/reqParam.go

@@ -5,9 +5,10 @@ type ReqParam struct {
 	UserExtList []string	// 用户确认的视频后缀名支持列表
 	SaveMultiSub bool		// 存储每个网站 Top1 的字幕
 	DebugMode bool			// 调试标志位
-	RemoteBrowserDockerURL string // rod 使用远程的浏览器
+
 	FoundExistSubFileThanSkip bool	// 如果视频的目录下面有字幕文件了,就跳过
-	UserRemoteBrowser			bool		// 是否使用远程的浏览器去爬取 subhd 的字
+	UseUnderDocker	bool	// 是否在 docker 下使用
+
 
 	HttpProxy string		// HttpClient 相关
 	UserAgent string		// HttpClient 相关

+ 1 - 7
config.yaml.sample

@@ -1,14 +1,8 @@
 UseProxy: false
 HttpProxy: http://127.0.0.1:10809
-
 EveryTime: 6h
-
 DebugMode: false
 SaveMultiSub: false
-
-UserRemoteBrowser: true
-RemoteBrowserDockerURL: ws://192.168.50.135:9222
-
 FoundExistSubFileThanSkip: true
-
+UseUnderDocker: true
 MovieFolder: X:\电影

+ 2 - 2
main.go

@@ -49,9 +49,9 @@ func main() {
 		HttpProxy: httpProxy,
 		DebugMode: config.DebugMode,
 		SaveMultiSub: config.SaveMultiSub,
-		UserRemoteBrowser: config.UserRemoteBrowser,
-		RemoteBrowserDockerURL: config.RemoteBrowserDockerURL,
 		FoundExistSubFileThanSkip: config.FoundExistSubFileThanSkip,
+
+		UseUnderDocker: config.UseUnderDocker,
 		})
 	//任务还没执行完,下一次执行时间到来,下一次执行就跳过不执行
 	c := cron.New(cron.WithChain(cron.SkipIfStillRunning(cron.DefaultLogger)))

+ 5 - 5
sub_supplier/subhd/subhd.go

@@ -109,11 +109,11 @@ func (s Supplier) GetSubListFromKeyword(keyword string) ([]common.SupplierSubInf
 
 	var browser *rod.Browser
 	// 是用本地的 Browser 还是远程的,推荐是远程的
-	if s.reqParam.RemoteBrowserDockerURL != "" {
-		browser, err = model.NewBrowserFromDocker(s.reqParam.HttpProxy, s.reqParam.RemoteBrowserDockerURL)
-	} else {
-		browser, err = model.NewBrowser(s.reqParam.HttpProxy)
-	}
+	//if s.reqParam.RemoteBrowserDockerURL != "" {
+	//	browser, err = model.NewBrowserFromDocker(s.reqParam.HttpProxy, s.reqParam.RemoteBrowserDockerURL)
+	//} else {
+	browser, err = model.NewBrowser(s.reqParam.HttpProxy)
+	//}
 	if err != nil {
 		return nil, err
 	}