Network/IRC/IrcNetworkManager.py

changeset 2237
baddb671c326
parent 2236
e30d5f978919
child 2238
9977d3081ab6
equal deleted inserted replaced
2236:e30d5f978919 2237:baddb671c326
53 Public method to load the identity data. 53 Public method to load the identity data.
54 54
55 @param settings reference to the settings object (QSettings) 55 @param settings reference to the settings object (QSettings)
56 """ 56 """
57 self.__realName = settings.value("RealName", "") 57 self.__realName = settings.value("RealName", "")
58 self.__nickNames = Preferences.toList(settings.value("NickNames"), []) 58 self.__nickNames = Preferences.toList(settings.value("NickNames", []))
59 self.__serviceName = settings.value("ServiceName", "") 59 self.__serviceName = settings.value("ServiceName", "")
60 self.__password = settings.value("Password", "") 60 self.__password = settings.value("Password", "")
61 61
62 def getName(self): 62 def getName(self):
63 """ 63 """
182 """ 182 """
183 Public method to save the server data. 183 Public method to save the server data.
184 184
185 @param settings reference to the settings object (QSettings) 185 @param settings reference to the settings object (QSettings)
186 """ 186 """
187 # no need to save the server name because that is the group key 187 settings.setValue("Name", self.__server)
188 settings.setValue("Port", self.__port) 188 settings.setValue("Port", self.__port)
189 settings.setValue("SSL", self.__ssl) 189 settings.setValue("SSL", self.__ssl)
190 settings.setValue("Password", self.__password) 190 settings.setValue("Password", self.__password)
191 191
192 def load(self, settings): 192 def load(self, settings):
193 """ 193 """
194 Public method to load the server data. 194 Public method to load the server data.
195 195
196 @param settings reference to the settings object (QSettings) 196 @param settings reference to the settings object (QSettings)
197 """ 197 """
198 self.__server = settings.value("Name", "")
198 self.__port = int(settings.value("Port", IrcServer.DefaultPort)) 199 self.__port = int(settings.value("Port", IrcServer.DefaultPort))
199 self.__ssl = Preferences.toBool(settings.value("SSL", False)) 200 self.__ssl = Preferences.toBool(settings.value("SSL", False))
200 self.__password = settings.value("Password", "") 201 self.__password = settings.value("Password", "")
201 202
202 def getName(self): 203 def getName(self):
205 206
206 @return server name (string) 207 @return server name (string)
207 """ 208 """
208 return self.__server 209 return self.__server
209 210
211 def setName(self, name):
212 """
213 Public method to set the server name.
214
215 @param name server name (string)
216 """
217 self.__server = name
218
210 def getPort(self): 219 def getPort(self):
211 """ 220 """
212 Public method to get the server port number. 221 Public method to get the server port number.
213 222
214 @return port number (integer) 223 @return port number (integer)
287 Public method to load the network data. 296 Public method to load the network data.
288 297
289 @param settings reference to the settings object (QSettings) 298 @param settings reference to the settings object (QSettings)
290 """ 299 """
291 self.__key = settings.value("Key", "") 300 self.__key = settings.value("Key", "")
292 self.__autoJoin = Preferences.toBool(settings.value("AutoJoin"), False) 301 self.__autoJoin = Preferences.toBool(settings.value("AutoJoin", False))
293 302
294 def getName(self): 303 def getName(self):
295 """ 304 """
296 Public method to get the channel name. 305 Public method to get the channel name.
297 306
346 """ 355 """
347 super().__init__() 356 super().__init__()
348 357
349 self.__name = name 358 self.__name = name
350 self.__identity = "" 359 self.__identity = ""
351 self.__servers = {} 360 self.__server = None
352 self.__channels = {} 361 self.__channels = {}
362 self.__autoConnect = False
353 363
354 def save(self, settings): 364 def save(self, settings):
355 """ 365 """
356 Public method to save the network data. 366 Public method to save the network data.
357 367
358 @param settings reference to the settings object (QSettings) 368 @param settings reference to the settings object (QSettings)
359 """ 369 """
360 # no need to save the network name because that is the group key 370 # no need to save the network name because that is the group key
361 settings.setValue("Identity", self.__identity) 371 settings.setValue("Identity", self.__identity)
362 372 settings.setValue("AutoConnect", self.__autoConnect)
363 settings.beginGroup("Servers") 373
364 for key in self.__servers: 374 settings.beginGroup("Server")
365 settings.beginGroup(key) 375 self.__server.save(settings)
366 self.__servers[key].save(settings)
367 settings.endGroup()
368 settings.endGroup() 376 settings.endGroup()
369 377
370 settings.beginGroup("Channels") 378 settings.beginGroup("Channels")
371 for key in self.__channels: 379 for key in self.__channels:
372 settings.beginGroup(key) 380 settings.beginGroup(key)
379 Public method to load the network data. 387 Public method to load the network data.
380 388
381 @param settings reference to the settings object (QSettings) 389 @param settings reference to the settings object (QSettings)
382 """ 390 """
383 self.__identity = settings.value("Identity", "") 391 self.__identity = settings.value("Identity", "")
384 392 self.__autoConnect = Preferences.toBool(settings.value("AutoConnect", False))
385 settings.beginGroup("Servers") 393
386 for key in settings.childKeys(): 394 settings.beginGroup("Server")
387 self.__servers[key] = IrcServer(key) 395 self.__server = IrcServer("")
388 settings.beginGroup(key) 396 self.__server.load(settings)
389 self.__servers[key].load(settings)
390 settings.endGroup()
391 settings.endGroup() 397 settings.endGroup()
392 398
393 settings.beginGroup("Channels") 399 settings.beginGroup("Channels")
394 for key in self.__channels: 400 for key in settings.childGroups():
395 self.__channels[key] = IrcChannel(key) 401 self.__channels[key] = IrcChannel(key)
396 settings.beginGroup(key) 402 settings.beginGroup(key)
397 self.__channels[key].load(settings) 403 self.__channels[key].load(settings)
398 settings.endGroup() 404 settings.endGroup()
399 settings.endGroup() 405 settings.endGroup()
420 426
421 @return identity name (string) 427 @return identity name (string)
422 """ 428 """
423 return self.__identity 429 return self.__identity
424 430
425 def setServers(self, servers): 431 def getServerName(self):
426 """ 432 """
427 Public method to set the list of servers. 433 Public method to get the server name.
428 434
429 @param servers list of servers for the network (list of IrcServer) 435 @return server name (string)
430 """ 436 """
431 self.__servers = {} 437 if self.__server:
432 for server in servers: 438 return self.__server.getName()
433 self.__servers[server.getName()] = server 439 else:
434 440 return ""
435 def getServers(self): 441
436 """ 442 def getServer(self):
437 Public method to get the servers. 443 """
438 444 Public method to get the server object.
439 @return list of servers for the network (list of IrcServer) 445
440 """
441 return list(self.__servers.values())
442
443 def getServerNames(self):
444 """
445 Public method to get a list of all known server names.
446
447 @return list of server names (list of string)
448 """
449 return list(sorted(self.__servers.keys()))
450
451 def getServer(self, name):
452 """
453 Public method to get a server object.
454
455 @param name name of the server to get (string)
456 @return reference to the server (IrcServer) 446 @return reference to the server (IrcServer)
457 """ 447 """
458 if name in self.__servers: 448 return self.__server
459 return self.__servers[name]
460 else:
461 return None
462 449
463 def setServer(self, server): 450 def setServer(self, server):
464 """ 451 """
465 Public method to set a server. 452 Public method to set the server.
466 453
467 @param server server object to set (IrcServer) 454 @param server server object to set (IrcServer)
468 """ 455 """
469 serverName = server.getName() 456 self.__server = server
470 if serverName in self.__servers:
471 self.__servers[serverName] = server
472
473 def addServer(self, server):
474 """
475 Public method to add a server.
476
477 @param server server object to add (IrcServer)
478 """
479 serverName = server.getName()
480 if serverName not in self.__servers:
481 self.__servers[serverName] = server
482 457
483 def setChannels(self, channels): 458 def setChannels(self, channels):
484 """ 459 """
485 Public method to set the list of channels. 460 Public method to set the list of channels.
486 461
545 @param channelName name of the channel to be deleted (string) 520 @param channelName name of the channel to be deleted (string)
546 """ 521 """
547 if channelName in self.__channels: 522 if channelName in self.__channels:
548 del self.__channels[channelName] 523 del self.__channels[channelName]
549 524
525 def setAutoConnect(self, enable):
526 """
527 Public method to set the auto connect flag.
528
529 @param enable flag indicate to connect to the network at start-up.
530 """
531 self.__autoConnect = enable
532
533 def autoConnect(self):
534 """
535 Public method to check, if the network should be connected to at start-up.
536
537 @return flag indicating an auto connect (boolean)
538 """
539 return self.__autoConnect
540
550 @classmethod 541 @classmethod
551 def createDefaultNetwork(cls): 542 def createDefaultNetwork(cls):
552 """ 543 """
553 Class method to create the default network. 544 Class method to create the default network.
554 545
561 552
562 # server 553 # server
563 serverName = "chat.freenode.net" 554 serverName = "chat.freenode.net"
564 server = IrcServer(serverName) 555 server = IrcServer(serverName)
565 server.setPort(8001) 556 server.setPort(8001)
566 network.addServer(server) 557 network.setServer(server)
567 558
568 # channel 559 # channel
569 channel = IrcChannel("#eric-ide") 560 channel = IrcChannel("#eric-ide")
570 channel.setAutoJoin(False) 561 channel.setAutoJoin(False)
571 network.addChannel(channel) 562 network.addChannel(channel)
563
564 # auto connect
565 network.setAutoConnect(False)
572 566
573 return network 567 return network
574 568
575 569
576 class IrcNetworkManager(QObject): 570 class IrcNetworkManager(QObject):
645 # load IRC data 639 # load IRC data
646 self.__settings.beginGroup("IRC") 640 self.__settings.beginGroup("IRC")
647 641
648 # identities 642 # identities
649 self.__settings.beginGroup("Identities") 643 self.__settings.beginGroup("Identities")
650 for key in self.__settings.childKeys(): 644 for key in self.__settings.childGroups():
651 self.__identities[key] = IrcIdentity(key) 645 self.__identities[key] = IrcIdentity(key)
652 self.__settings.beginGroup(key) 646 self.__settings.beginGroup(key)
653 self.__identities[key].load(self.__settings) 647 self.__identities[key].load(self.__settings)
654 self.__settings.endGroup() 648 self.__settings.endGroup()
655 self.__settings.endGroup() 649 self.__settings.endGroup()
656 650
657 # networks 651 # networks
658 self.__settings.beginGroup("Networks") 652 self.__settings.beginGroup("Networks")
659 for key in self.__settings.childKeys(): 653 for key in self.__settings.childGroups():
660 self.__networks[key] = IrcNetwork(key) 654 self.__networks[key] = IrcNetwork(key)
661 self.__settings.beginGroup(key) 655 self.__settings.beginGroup(key)
662 self.__networks[key].load(self.__settings) 656 self.__networks[key].load(self.__settings)
663 self.__settings.endGroup() 657 self.__settings.endGroup()
664 self.__settings.endGroup() 658 self.__settings.endGroup()
665 659
666 self.__settings.endGroup() 660 self.__settings.endGroup()
667 661
668 if not self.__identities or \ 662 if not self.__identities or \
669 not self.__servers or \
670 not self.__networks: 663 not self.__networks:
671 # data structures got corrupted; load defaults 664 # data structures got corrupted; load defaults
672 self.__loadDefaults() 665 self.__loadDefaults()
673 666
674 if IrcIdentity.DefaultIdentityName not in self.__identities: 667 if IrcIdentity.DefaultIdentityName not in self.__identities:
684 identity (boolean) 677 identity (boolean)
685 """ 678 """
686 if not identityOnly: 679 if not identityOnly:
687 self.__networks = {} 680 self.__networks = {}
688 self.__identities = {} 681 self.__identities = {}
689 self.__servers = {}
690 682
691 # identity 683 # identity
692 identity = IrcIdentity.createDefaultIdentity() 684 identity = IrcIdentity.createDefaultIdentity()
693 self.__identities[identity.getName()] = identity 685 self.__identities[identity.getName()] = identity
694 686

eric ide

mercurial