github.com/diadata-org/diadata@v1.4.593/pkg/model/symbols.go (about)

     1  package models
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/diadata-org/diadata/pkg/dia"
     7  )
     8  
     9  func (datastore *DB) GetSymbols(exchange string) ([]string, error) {
    10  	var result []string
    11  	var cursor uint64
    12  	key := "dia_" + dia.FilterKing + "_"
    13  	for {
    14  		var keys []string
    15  		var err error
    16  		keys, cursor, err = datastore.redisClient.Scan(cursor, key+"*", 10).Result()
    17  		if err != nil {
    18  			log.Error("GetPairs err", err)
    19  			return result, err
    20  		}
    21  		for _, value := range keys {
    22  
    23  			filteredKey := strings.Replace(strings.Replace(value, key, "", 1), "_ZSET", "", 1)
    24  			s := strings.Split(strings.Replace(filteredKey, key, "", 1), "_")
    25  			if exchange == "" {
    26  				if len(s) == 1 {
    27  					result = append(result, s[0])
    28  				}
    29  			} else {
    30  				if s[1] == exchange {
    31  					result = append(result, s[0])
    32  				}
    33  			}
    34  		}
    35  		if cursor == 0 {
    36  			log.Debugf("GetSymbols %v returns %v", key, result)
    37  			return result, nil
    38  		}
    39  	}
    40  }