1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-12-29 13:35:20 -05:00
Files
v2fly/app/subscription/subscriptionmanager/manager_rpc.go
Xiaokang Wang (Shelikhoo) 69b09074f8 Add WebUI Support for V2Ray (#3284)
* Add support for web based grpc

* Avoid panic in observatory command: incorrect tag

* Add WebCommander app for web based client

* Add WebCommander app for web based client

* Add urlline subscription container format support

* avoid panic when serving user request

* refine subscription info api

* fix start consistency issue in web commander

* fix webcommander import style

* fix urlline parsing

* fix crash in subscription commander

* add webroot file serving at webcommmander

* fix crash when observatory is not found

* add autogenerated subscriptionmgr err
2025-01-17 17:42:53 +00:00

42 lines
1.2 KiB
Go

package subscriptionmanager
import "github.com/v2fly/v2ray-core/v5/app/subscription"
func (s *SubscriptionManagerImpl) AddTrackedSubscriptionFromImportSource(importSource *subscription.ImportSource) error {
s.Lock()
defer s.Unlock()
return s.addTrackedSubscriptionFromImportSource(importSource)
}
func (s *SubscriptionManagerImpl) RemoveTrackedSubscription(name string) error {
s.Lock()
defer s.Unlock()
return s.removeTrackedSubscription(name)
}
func (s *SubscriptionManagerImpl) ListTrackedSubscriptions() []string {
s.Lock()
defer s.Unlock()
var names []string
for name := range s.trackedSubscriptions {
names = append(names, name)
}
return names
}
func (s *SubscriptionManagerImpl) GetTrackedSubscriptionStatus(name string) (*subscription.TrackedSubscriptionStatus, error) {
s.Lock()
defer s.Unlock()
if trackedSubscriptionItem, ok := s.trackedSubscriptions[name]; ok {
result := &subscription.TrackedSubscriptionStatus{}
if err := trackedSubscriptionItem.fillStatus(result); err != nil {
return nil, newError("failed to fill status").Base(err)
}
result.ImportSource = trackedSubscriptionItem.importSource
return result, nil
} else {
return nil, newError("unable to locate")
}
}