MCPcopy Create free account
hub / github.com/Syncplay/syncplay / start

Method start

syncplay/client.py:844–905  ·  view source on GitHub ↗
(self, host, port)

Source from the content-addressed store, hash-verified

842 self._player.setPaused(paused)
843
844 def start(self, host, port):
845 if self._running:
846 return
847 self._running = True
848 if self._playerClass:
849 perPlayerArguments = utils.getPlayerArgumentsByPathAsArray(self._config['perPlayerArguments'], self._config['playerPath'])
850 if perPlayerArguments:
851 self._config['playerArgs'].extend(perPlayerArguments)
852 filePath = self._config['file']
853 if self._config['sharedPlaylistEnabled'] and filePath is not None:
854 self.delayedLoadPath = filePath
855 filePath = ""
856 reactor.callLater(0.1, self._playerClass.run, self, self._config['playerPath'], filePath, self._config['playerArgs'], )
857 self._playerClass = None
858 self.protocolFactory = SyncClientFactory(self)
859 if '[' in host:
860 host = host.strip('[]')
861 port = int(port)
862 self._endpoint = HostnameEndpoint(reactor, host, port)
863 try:
864 certs = pem.parse_file(SSL_CERT_FILE)
865 trustRoot = trustRootFromCertificates([Certificate.loadPEM(str(cert)) for cert in certs])
866 self.protocolFactory.options = optionsForClientTLS(hostname=host, trustRoot=trustRoot)
867 self._clientSupportsTLS = True
868 except Exception as e:
869 self.ui.showDebugMessage(str(e))
870 self.protocolFactory.options = None
871 self._clientSupportsTLS = False
872
873 def retry(retries):
874 # Use shared state reset method
875 self._performRetryStateReset()
876 if retries == 0:
877 self.onDisconnect()
878 if retries > constants.RECONNECT_RETRIES:
879 reactor.callLater(0.1, self.ui.showErrorMessage, getMessage("connection-failed-notification"),
880 True)
881 reactor.callLater(0.1, self.stop, True)
882 return None
883
884 return(0.1 * (2 ** min(retries, 5)))
885
886 self._reconnectingService = ClientService(self._endpoint, self.protocolFactory, retryPolicy=retry)
887 try:
888 waitForConnection = self._reconnectingService.whenConnected(failAfterFailures=1)
889 except TypeError:
890 waitForConnection = self._reconnectingService.whenConnected()
891 self._reconnectingService.startService()
892
893 def connectedNow(f):
894 hostIP = connectionHandle.result.transport.addr[0]
895 self.ui.showMessage(getMessage("reachout-successful-notification").format(host, hostIP))
896 return
897
898 def failed(f):
899 reactor.callLater(0.1, self.ui.showErrorMessage, getMessage("connection-failed-notification"), True)
900 reactor.callLater(0.1, self.stop, True)
901

Callers 15

runMethod · 0.95
scheduleAskPlayerMethod · 0.80
__init__Method · 0.80
checkReadyStatesMethod · 0.80
__init__Method · 0.80
_scheduleSendStateMethod · 0.80
_resetStateTimerMethod · 0.80

Calls 5

getMessageFunction · 0.90
SyncClientFactoryClass · 0.85
showDebugMessageMethod · 0.45
showMessageMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected