Initial open source release
This commit is contained in:
commit
74992e893f
377 changed files with 118084 additions and 0 deletions
63
internal/rpc/help.go
Normal file
63
internal/rpc/help.go
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
package rpc
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gotd/td/tg"
|
||||
|
||||
"telesrv/internal/compat/tdesktop"
|
||||
)
|
||||
|
||||
// registerHelp 注册 help.* RPC handler(DC 配置、最近 DC)。
|
||||
func (r *Router) registerHelp(d *tg.ServerDispatcher) {
|
||||
d.OnHelpGetConfig(func(ctx context.Context) (*tg.Config, error) {
|
||||
return tdesktop.BuildConfig(r.cfg.DC, r.cfg.IP, r.cfg.Port, r.clock.Now()), nil
|
||||
})
|
||||
d.OnHelpGetNearestDC(func(ctx context.Context) (*tg.NearestDC, error) {
|
||||
return tdesktop.NearestDC(r.cfg.DC), nil
|
||||
})
|
||||
d.OnHelpGetAppConfig(func(ctx context.Context, hash int) (tg.HelpAppConfigClass, error) {
|
||||
if r.deps.Help == nil {
|
||||
return tdesktop.AppConfig(hash), nil
|
||||
}
|
||||
cfg, notModified, err := r.deps.Help.GetAppConfig(ctx, hash)
|
||||
if err != nil {
|
||||
return nil, internalErr()
|
||||
}
|
||||
if notModified {
|
||||
return &tg.HelpAppConfigNotModified{}, nil
|
||||
}
|
||||
return &tg.HelpAppConfig{Hash: cfg.Hash, Config: tgJSONValue(cfg.JSON)}, nil
|
||||
})
|
||||
d.OnHelpGetCountriesList(func(ctx context.Context, req *tg.HelpGetCountriesListRequest) (tg.HelpCountriesListClass, error) {
|
||||
if r.deps.Help == nil {
|
||||
return tdesktop.CountriesList(req.Hash), nil
|
||||
}
|
||||
list, notModified, err := r.deps.Help.GetCountries(ctx, req.LangCode, req.Hash)
|
||||
if err != nil {
|
||||
return nil, internalErr()
|
||||
}
|
||||
if notModified {
|
||||
return &tg.HelpCountriesListNotModified{}, nil
|
||||
}
|
||||
return tgCountriesList(list), nil
|
||||
})
|
||||
d.OnHelpGetTimezonesList(func(ctx context.Context, hash int) (tg.HelpTimezonesListClass, error) {
|
||||
return tdesktop.TimezonesList(hash), nil
|
||||
})
|
||||
d.OnHelpGetPeerColors(func(ctx context.Context, hash int) (tg.HelpPeerColorsClass, error) {
|
||||
return tdesktop.PeerColors(), nil
|
||||
})
|
||||
d.OnHelpGetPeerProfileColors(func(ctx context.Context, hash int) (tg.HelpPeerColorsClass, error) {
|
||||
return tdesktop.PeerColors(), nil
|
||||
})
|
||||
d.OnHelpGetPromoData(func(ctx context.Context) (tg.HelpPromoDataClass, error) {
|
||||
return tdesktop.PromoData(r.clock.Now()), nil
|
||||
})
|
||||
d.OnHelpGetTermsOfServiceUpdate(func(ctx context.Context) (tg.HelpTermsOfServiceUpdateClass, error) {
|
||||
return tdesktop.TermsOfServiceUpdate(r.clock.Now()), nil
|
||||
})
|
||||
d.OnHelpGetPremiumPromo(func(ctx context.Context) (*tg.HelpPremiumPromo, error) {
|
||||
return tdesktop.PremiumPromo(), nil
|
||||
})
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue