supplier_settings.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package settings
  2. import (
  3. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/common"
  4. )
  5. type SuppliersSettings struct {
  6. Xunlei *OneSupplierSettings `json:"xunlei"`
  7. Shooter *OneSupplierSettings `json:"shooter"`
  8. Assrt *OneSupplierSettings `json:"assrt"`
  9. A4k *OneSupplierSettings `json:"a4k"`
  10. SubHD *OneSupplierSettings `json:"subhd"`
  11. Zimuku *OneSupplierSettings `json:"zimuku"`
  12. SubtitleBest *OneSupplierSettings `json:"subtitle_best"`
  13. }
  14. func NewSuppliersSettings() *SuppliersSettings {
  15. return &SuppliersSettings{
  16. Xunlei: NewOneSupplierSettings(common.SubSiteXunLei, common.SubXunLeiRootUrlDef, "", -1),
  17. Shooter: NewOneSupplierSettings(common.SubSiteShooter, common.SubShooterRootUrlDef, "", -1),
  18. Assrt: NewOneSupplierSettings(common.SubSiteAssrt, common.SubAssrtRootUrlDef, "", -1),
  19. A4k: NewOneSupplierSettings(common.SubSiteA4K, common.SubA4kRootUrlDef, common.SubA4kSearchUrl, -1),
  20. SubtitleBest: NewOneSupplierSettings(common.SubSiteSubtitleBest, common.SubSubtitleBestRootUrlDef, common.SubSubtitleBestSearchMovieUrl, -1),
  21. // 依然需要给出来,用于手动搜索字幕使用
  22. SubHD: NewOneSupplierSettings(common.SubSiteSubHd, common.SubSubHDRootUrlDef, common.SubSubHDSearchUrl, 20),
  23. Zimuku: NewOneSupplierSettings(common.SubSiteZiMuKu, common.SubZiMuKuRootUrlDef, common.SubZiMuKuSearchFormatUrl, 20),
  24. }
  25. }
  26. // ReSetSearchUrl 因为 SuppliersSettings 中每个网站的 searchUrl 参数没有开放更改,所以如果有变动,需要重新设置
  27. func (s *SuppliersSettings) ReSetSearchUrl() {
  28. s.A4k.SearchUrl = common.SubA4kSearchUrl
  29. s.SubtitleBest.SearchUrl = common.SubSubtitleBestSearchMovieUrl
  30. s.SubHD.SearchUrl = common.SubSubHDSearchUrl
  31. s.Zimuku.SearchUrl = common.SubZiMuKuSearchFormatUrl
  32. }
  33. type OneSupplierSettings struct {
  34. Name string `json:"name"`
  35. RootUrl string `json:"root_url"`
  36. SearchUrl string `json:"search_url"`
  37. DailyDownloadLimit int `json:"daily_download_limit" default:"-1"` // -1 是无限制
  38. }
  39. func NewOneSupplierSettings(name string, rootUrl, searchUrl string, dailyDownloadLimit int) *OneSupplierSettings {
  40. return &OneSupplierSettings{Name: name, RootUrl: rootUrl, SearchUrl: searchUrl, DailyDownloadLimit: dailyDownloadLimit}
  41. }
  42. func (s *OneSupplierSettings) GetSearchUrl() string {
  43. return s.RootUrl + s.SearchUrl
  44. }