mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-12-29 13:35:20 -05:00
* 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
42 lines
1.2 KiB
Go
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")
|
|
}
|
|
}
|