Remove integration with gotd

This commit is contained in:
9seconds
2026-02-16 16:30:10 +01:00
parent 82679ec20f
commit 8e87405d3e
14 changed files with 14 additions and 208 deletions
-3
View File
@@ -11,9 +11,6 @@ const (
const (
DefaultDC = 2
defaultAppID = 123456
defaultAppHash = ""
)
type Logger interface {
+5 -82
View File
@@ -1,29 +1,17 @@
package dc
import (
"context"
"fmt"
"net"
"strconv"
"strings"
"sync"
"time"
"github.com/gotd/td/telegram"
)
type Telegram struct {
logger Logger
lock sync.RWMutex
view dcView
preferIP preferIP
client *telegram.Client
}
func (t *Telegram) GetAddresses(dc int) []Addr {
t.lock.RLock()
defer t.lock.RUnlock()
switch t.preferIP {
case preferIPOnlyIPv4:
return t.view.getV4(dc)
@@ -36,73 +24,7 @@ func (t *Telegram) GetAddresses(dc int) []Addr {
return append(t.view.getV6(dc), t.view.getV4(dc)...)
}
func (t *Telegram) Run(ctx context.Context, updateEach time.Duration) {
t.update(ctx)
ticker := time.NewTicker(updateEach)
defer func() {
ticker.Stop()
select {
case <-ctx.Done():
case <-ticker.C:
default:
}
}()
for {
select {
case <-ctx.Done():
return
case <-ticker.C:
t.update(ctx)
}
}
}
func (t *Telegram) update(ctx context.Context) {
collected := dcAddrSet{
v4: map[int][]Addr{},
v6: map[int][]Addr{},
}
err := t.client.Run(ctx, func(tgctx context.Context) error {
conf, err := t.client.API().HelpGetConfig(tgctx)
if err != nil {
return err
}
for _, opt := range conf.DCOptions {
addr := net.JoinHostPort(opt.IPAddress, strconv.Itoa(opt.Port))
if opt.Ipv6 {
collected.v6[opt.ID] = append(collected.v6[opt.ID], Addr{
Network: "tcp6",
Address: addr,
})
} else {
collected.v4[opt.ID] = append(collected.v4[opt.ID], Addr{
Network: "tcp4",
Address: addr,
})
}
}
return nil
})
if err != nil {
t.logger.WarningError("update has failed", err)
return
}
t.lock.Lock()
t.view.collected = collected
t.lock.Unlock()
t.logger.Info(fmt.Sprintf("updated DC list: %v", collected))
}
func New(logger Logger, ipPreference string, userOverrides map[int][]string) (*Telegram, error) {
func New(ipPreference string, userOverrides map[int][]string) (*Telegram, error) {
var pref preferIP
switch strings.ToLower(ipPreference) {
@@ -118,7 +40,10 @@ func New(logger Logger, ipPreference string, userOverrides map[int][]string) (*T
return nil, fmt.Errorf("unknown ip preference %s", ipPreference)
}
overrides := dcAddrSet{}
overrides := dcAddrSet{
v4: map[int][]Addr{},
v6: map[int][]Addr{},
}
for dc, addrs := range userOverrides {
for _, addr := range addrs {
host, _, err := net.SplitHostPort(addr)
@@ -149,8 +74,6 @@ func New(logger Logger, ipPreference string, userOverrides map[int][]string) (*T
view: dcView{
overrides: overrides,
},
logger: logger,
client: telegram.NewClient(defaultAppID, defaultAppHash, telegram.Options{}),
preferIP: pref,
}, nil
}
+2 -2
View File
@@ -8,7 +8,7 @@ type dcView struct {
func (d dcView) getV4(dc int) []Addr {
addrs := d.overrides.getV4(dc)
addrs = append(addrs, defaultDCOverridesAddrSet.getV4(dc)...)
addrs = append(addrs, d.collected.getV4(dc)...)
// addrs = append(addrs, d.collected.getV4(dc)...)
addrs = append(addrs, defaultDCAddrSet.getV4(dc)...)
return addrs
@@ -17,7 +17,7 @@ func (d dcView) getV4(dc int) []Addr {
func (d dcView) getV6(dc int) []Addr {
addrs := d.overrides.getV6(dc)
addrs = append(addrs, defaultDCOverridesAddrSet.getV6(dc)...)
addrs = append(addrs, d.collected.getV6(dc)...)
// addrs = append(addrs, d.collected.getV6(dc)...)
addrs = append(addrs, defaultDCAddrSet.getV6(dc)...)
return addrs