Skip to content

Commit

Permalink
Chore: sort output lists
Browse files Browse the repository at this point in the history
  • Loading branch information
Loyalsoldier committed Aug 10, 2024
1 parent c3ed65e commit 4b52a4d
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 6 deletions.
23 changes: 20 additions & 3 deletions plugin/plaintext/text_out.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"log"
"os"
"path/filepath"
"slices"
"strings"

"github.com/v2fly/geoip/lib"
Expand Down Expand Up @@ -79,16 +80,29 @@ func (t *textOut) GetDescription() string {

func (t *textOut) Output(container lib.Container) error {
// Filter want list
wantList := make(map[string]bool)
wantList := make([]string, 0, len(t.Want))
for _, want := range t.Want {
if want = strings.ToUpper(strings.TrimSpace(want)); want != "" {
wantList[want] = true
wantList = append(wantList, want)
}
}

switch len(wantList) {
case 0:
list := make([]string, 0, 300)
for entry := range container.Loop() {
list = append(list, entry.GetName())
}

// Sort the list
slices.Sort(list)

for _, name := range list {
entry, found := container.GetEntry(name)
if !found {
log.Printf("❌ entry %s not found", name)
continue
}
cidrList, err := t.marshalText(entry)
if err != nil {
return err
Expand All @@ -100,7 +114,10 @@ func (t *textOut) Output(container lib.Container) error {
}

default:
for name := range wantList {
// Sort the list
slices.Sort(wantList)

for _, name := range wantList {
entry, found := container.GetEntry(name)
if !found {
log.Printf("❌ entry %s not found", name)
Expand Down
23 changes: 20 additions & 3 deletions plugin/v2ray/dat_out.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,19 +94,33 @@ func (g *geoIPDatOut) GetDescription() string {

func (g *geoIPDatOut) Output(container lib.Container) error {
// Filter want list
wantList := make(map[string]bool)
wantList := make([]string, 0, len(g.Want))
for _, want := range g.Want {
if want = strings.ToUpper(strings.TrimSpace(want)); want != "" {
wantList[want] = true
wantList = append(wantList, want)
}
}

geoIPList := new(router.GeoIPList)
geoIPList.Entry = make([]*router.GeoIP, 0, 300)
updated := false

switch len(wantList) {
case 0:
list := make([]string, 0, 300)
for entry := range container.Loop() {
list = append(list, entry.GetName())
}

// Sort the list
sort.Strings(list)

for _, name := range list {
entry, found := container.GetEntry(name)
if !found {
log.Printf("❌ entry %s not found", name)
continue
}
geoIP, err := g.generateGeoIP(entry)
if err != nil {
return err
Expand All @@ -128,7 +142,10 @@ func (g *geoIPDatOut) Output(container lib.Container) error {
}

default:
for name := range wantList {
// Sort the list
sort.Strings(wantList)

for _, name := range wantList {
entry, found := container.GetEntry(name)
if !found {
log.Printf("❌ entry %s not found", name)
Expand Down

0 comments on commit 4b52a4d

Please sign in to comment.