fix errors kill s.
This commit is contained in:
parent
76d3650979
commit
c1fb1bc7c6
3 changed files with 26 additions and 12 deletions
|
|
@ -52,3 +52,5 @@ class EndpointVerificationError(Exception):
|
||||||
pass
|
pass
|
||||||
class SingboxNotInstalledException(Exception):
|
class SingboxNotInstalledException(Exception):
|
||||||
pass
|
pass
|
||||||
|
class PaymentRequiredError(Exception):
|
||||||
|
pass
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from core.Constants import Constants
|
from core.Constants import Constants
|
||||||
from core.Errors import InvalidSubscriptionError, MissingSubscriptionError, ConnectionUnprotectedError, ConnectionTerminationError, CommandNotFoundError
|
|
||||||
from core.controllers.ConfigurationController import ConfigurationController
|
from core.controllers.ConfigurationController import ConfigurationController
|
||||||
from core.controllers.ProfileController import ProfileController
|
from core.controllers.ProfileController import ProfileController
|
||||||
from core.controllers.SessionStateController import SessionStateController
|
from core.controllers.SessionStateController import SessionStateController
|
||||||
|
|
@ -13,6 +12,7 @@ from core.services.WebServiceApiService import WebServiceApiService
|
||||||
from essentials.modules.TorModule import TorModule
|
from essentials.modules.TorModule import TorModule
|
||||||
from essentials.services.ConnectionService import ConnectionService
|
from essentials.services.ConnectionService import ConnectionService
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from core.Errors import InvalidSubscriptionError, MissingSubscriptionError, ConnectionUnprotectedError, ConnectionTerminationError, CommandNotFoundError, PaymentRequiredError
|
||||||
from subprocess import CalledProcessError
|
from subprocess import CalledProcessError
|
||||||
from typing import Union, Optional, Any
|
from typing import Union, Optional, Any
|
||||||
import os
|
import os
|
||||||
|
|
@ -105,7 +105,7 @@ class ConnectionController:
|
||||||
)
|
)
|
||||||
|
|
||||||
if operator_proxy_session is None:
|
if operator_proxy_session is None:
|
||||||
raise InvalidSubscriptionError()
|
raise PaymentRequiredError()
|
||||||
|
|
||||||
profile.attach_operator_proxy_session(operator_proxy_session)
|
profile.attach_operator_proxy_session(operator_proxy_session)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from core.Errors import InvalidSubscriptionError, MissingSubscriptionError, ConnectionTerminationError, ProfileActivationError, ProfileDeactivationError, MissingLocationError, ConnectionUnprotectedError, EndpointVerificationError, ProfileStateConflictError
|
from core.Errors import InvalidSubscriptionError, MissingSubscriptionError, ConnectionTerminationError, ProfileActivationError, ProfileDeactivationError, MissingLocationError, ConnectionUnprotectedError, EndpointVerificationError, ProfileStateConflictError, PaymentRequiredError
|
||||||
from core.controllers.ApplicationController import ApplicationController
|
from core.controllers.ApplicationController import ApplicationController
|
||||||
from core.controllers.ApplicationVersionController import ApplicationVersionController
|
from core.controllers.ApplicationVersionController import ApplicationVersionController
|
||||||
from core.controllers.SessionStateController import SessionStateController
|
from core.controllers.SessionStateController import SessionStateController
|
||||||
|
|
@ -141,14 +141,26 @@ class ProfileController:
|
||||||
|
|
||||||
if profile.has_subscription():
|
if profile.has_subscription():
|
||||||
|
|
||||||
print(f"DEBUG activate_subscription:")
|
# Operator profiles (vless/hysteria2): check if already activated locally first.
|
||||||
print(f" billing_code: {profile.subscription.billing_code}")
|
# If not, poll the server — the payment may have been processed since last attempt.
|
||||||
print(f" operator_id: {profile.subscription.operator_id}")
|
if profile.subscription.operator_id is not None:
|
||||||
|
if profile.subscription.has_been_activated():
|
||||||
|
profile.save()
|
||||||
|
return
|
||||||
|
subscription = ConnectionController.with_preferred_connection(
|
||||||
|
profile.subscription.billing_code,
|
||||||
|
task=WebServiceApiService.get_subscription,
|
||||||
|
connection_observer=connection_observer
|
||||||
|
)
|
||||||
|
if subscription is not None:
|
||||||
|
profile.subscription = subscription
|
||||||
|
profile.save()
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
raise PaymentRequiredError()
|
||||||
|
|
||||||
subscription = ConnectionController.with_preferred_connection(profile.subscription.billing_code, task=WebServiceApiService.get_subscription, connection_observer=connection_observer)
|
subscription = ConnectionController.with_preferred_connection(profile.subscription.billing_code, task=WebServiceApiService.get_subscription, connection_observer=connection_observer)
|
||||||
|
|
||||||
print(f" get_subscription returned: {subscription}")
|
|
||||||
|
|
||||||
if subscription is not None:
|
if subscription is not None:
|
||||||
profile.subscription = subscription
|
profile.subscription = subscription
|
||||||
profile.save()
|
profile.save()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue