imdb.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package imdb_helper
  2. import (
  3. "github.com/StalkR/imdb"
  4. "github.com/allanpk716/ChineseSubFinder/internal/pkg/my_util"
  5. "github.com/allanpk716/ChineseSubFinder/internal/pkg/notify_center"
  6. "github.com/allanpk716/ChineseSubFinder/internal/pkg/settings"
  7. "strings"
  8. )
  9. // GetVideoInfoFromIMDB 从 IMDB ID 查询影片的信息
  10. func GetVideoInfoFromIMDB(imdbID string, _proxySettings ...settings.ProxySettings) (*imdb.Title, error) {
  11. var proxySettings settings.ProxySettings
  12. if len(_proxySettings) > 0 {
  13. proxySettings = _proxySettings[0]
  14. }
  15. t, err := imdb.NewTitle(my_util.NewHttpClient(proxySettings).GetClient(), imdbID)
  16. if err != nil {
  17. notify_center.Notify.Add("imdb model - imdb.NewTitle :", err.Error())
  18. return nil, err
  19. }
  20. return t, nil
  21. }
  22. // IsChineseVideo 从 imdbID 去查询判断是否是中文视频
  23. func IsChineseVideo(imdbID string, _proxySettings ...settings.ProxySettings) (bool, *imdb.Title, error) {
  24. const chName0 = "chinese"
  25. const chName1 = "mandarin"
  26. var proxySettings settings.ProxySettings
  27. if len(_proxySettings) > 0 {
  28. proxySettings = _proxySettings[0]
  29. }
  30. t, err := GetVideoInfoFromIMDB(imdbID, proxySettings)
  31. if err != nil {
  32. return false, nil, err
  33. }
  34. if len(t.Languages) <= 0 {
  35. return false, nil, nil
  36. }
  37. firstLangLowCase := strings.ToLower(t.Languages[0])
  38. // 判断第一语言是否是中文
  39. switch firstLangLowCase {
  40. case chName0, chName1:
  41. return true, t, nil
  42. default:
  43. return false, t, nil
  44. }
  45. }