ssrsub.go 602 B

123456789101112131415161718192021222324252627282930
  1. package provider
  2. import (
  3. "strings"
  4. "github.com/zu1k/proxypool/pkg/proxy"
  5. "github.com/zu1k/proxypool/pkg/tool"
  6. )
  7. type SSRSub struct {
  8. Base
  9. }
  10. func (sub SSRSub) Provide() string {
  11. sub.Types = "ssr,ss"
  12. sub.preFilter()
  13. var resultBuilder strings.Builder
  14. for _, p := range *sub.Proxies {
  15. if p.TypeName() == "ssr" {
  16. resultBuilder.WriteString(p.Link() + "\n")
  17. } else if p.TypeName() == "ss" {
  18. ssr, err := proxy.SS2SSR(p.(*proxy.Shadowsocks))
  19. if err == nil {
  20. resultBuilder.WriteString(ssr.Link() + "\n")
  21. }
  22. }
  23. }
  24. return tool.Base64EncodeString(resultBuilder.String(), false)
  25. }