forked from Support/sp-hydra-veil-gui
82 lines
4.4 KiB
Python
Executable file
82 lines
4.4 KiB
Python
Executable file
from core.observers.ApplicationVersionObserver import ApplicationVersionObserver
|
|
from core.observers.ClientObserver import ClientObserver
|
|
from core.observers.ConnectionObserver import ConnectionObserver
|
|
from core.observers.InvoiceObserver import InvoiceObserver
|
|
from core.observers.ProfileObserver import ProfileObserver
|
|
from core.observers.TicketObserver import TicketObserver
|
|
from core.controllers.ApplicationController import ApplicationController
|
|
|
|
application_version_observer = ApplicationVersionObserver()
|
|
client_observer = ClientObserver()
|
|
connection_observer = ConnectionObserver()
|
|
invoice_observer = InvoiceObserver()
|
|
profile_observer = ProfileObserver()
|
|
ticket_observer = TicketObserver()
|
|
|
|
|
|
def setup_observers(update_status):
|
|
profile_observer.subscribe(
|
|
'created', lambda event: update_status('Profile Created'))
|
|
profile_observer.subscribe(
|
|
'destroyed', lambda event: update_status('Profile destroyed'))
|
|
|
|
# client_observer.subscribe(
|
|
# 'synchronizing', lambda event: update_status('Sync in progress...'))
|
|
|
|
client_observer.subscribe(
|
|
'synchronizing', lambda event: update_status(f'{event.subject if event.subject else "Sync in progress..."}'))
|
|
|
|
client_observer.subscribe(
|
|
'synchronized', lambda event: update_status('Sync complete'))
|
|
|
|
client_observer.subscribe(
|
|
'updating', lambda event: update_status('Updating client...'))
|
|
client_observer.subscribe('update_progressing', lambda event: update_status(
|
|
f'Current progress: {event.meta.get('progress'):.2f}%'))
|
|
client_observer.subscribe('updated', lambda event: update_status(
|
|
'Restart client to apply update.'))
|
|
|
|
application_version_observer.subscribe('downloading', lambda event: update_status(
|
|
f'Downloading {ApplicationController.get(event.subject.application_code).name}'))
|
|
application_version_observer.subscribe('download_progressing', lambda event: update_status(
|
|
f'Downloading {ApplicationController.get(event.subject.application_code).name} {event.meta.get('progress'):.2f}%'))
|
|
|
|
application_version_observer.subscribe('downloaded', lambda event: update_status(
|
|
f'Downloaded {ApplicationController.get(event.subject.application_code).name}'))
|
|
|
|
connection_observer.subscribe('connecting', lambda event: update_status(
|
|
f'[{event.subject.get("attempt_count")}/{event.subject.get("maximum_number_of_attempts")}] Performing connection attempt...'))
|
|
|
|
connection_observer.subscribe('tor_bootstrapping', lambda event: update_status(
|
|
'Establishing Tor connection...'))
|
|
|
|
connection_observer.subscribe(
|
|
'tor_bootstrap_progressing', lambda event: update_status(f'{event.subject if event.subject else "Tor Bootstrapping.."}'))
|
|
|
|
# original replaced version:
|
|
# connection_observer.subscribe('tor_bootstrap_progressing', lambda event: update_status(
|
|
# f'Bootstrapping Tor {event.meta.get('progress'):.2f}%'))
|
|
|
|
connection_observer.subscribe(
|
|
'tor_bootstrapped', lambda event: update_status('Tor connection established.'))
|
|
|
|
ticket_observer.subscribe('connecting', lambda event: update_status('Connecting to ticket server...'))
|
|
ticket_observer.subscribe('sync_done', lambda event: update_status('Ticket prices synced.'))
|
|
ticket_observer.subscribe('waiting', lambda event: update_status('Waiting for payment...'))
|
|
ticket_observer.subscribe('paid', lambda event: update_status('Payment received.'))
|
|
ticket_observer.subscribe('ticket_ready', lambda event: update_status('Ticket ready.'))
|
|
ticket_observer.subscribe('used', lambda event: update_status('Ticket used.'))
|
|
ticket_observer.subscribe('connection_error', lambda event: update_status('Ticket server connection error.'))
|
|
ticket_observer.subscribe('failed_output', lambda event: update_status(f'{event.subject if event.subject else ""}'))
|
|
ticket_observer.subscribe('failed_input', lambda event: update_status(f'{event.subject if event.subject else ""}'))
|
|
ticket_observer.subscribe('unknown_error', lambda event: update_status('Unknown ticket error.'))
|
|
ticket_observer.subscribe('error', lambda event: update_status(f'Ticket error: {event.subject if event.subject else ""}'))
|
|
|
|
return {
|
|
'application_version_observer': application_version_observer,
|
|
'client_observer': client_observer,
|
|
'connection_observer': connection_observer,
|
|
'invoice_observer': invoice_observer,
|
|
'profile_observer': profile_observer,
|
|
'ticket_observer': ticket_observer,
|
|
}
|