__init__.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. # -*- coding: utf-8 -*-
  2. import dbus
  3. import dbus.service
  4. import sys
  5. from wicd import misc
  6. ##misc.to_bool
  7. ##misc.misc.noneToString
  8. ##misc.to_unicode
  9. ##misc.Noneify
  10. from wicd.translations import _
  11. from wicd import wpath
  12. from wicd import dbusmanager
  13. from wicd import misc
  14. import time
  15. import gobject
  16. if getattr(dbus, 'version', (0, 0, 0)) < (0, 80, 0):
  17. import dbus.glib
  18. else:
  19. from dbus.mainloop.glib import DBusGMainLoop
  20. DBusGMainLoop(set_as_default=True)
  21. bus = daemon = wireless = wired = None
  22. def setup_dbus(force=True):
  23. global bus,daemon,wireless,wired
  24. try:
  25. dbusmanager.connect_to_dbus()
  26. except dbus.DBusException:
  27. print >> sys.stderr,\
  28. _("Can't connect to wicd daemon,trying to start it automatically...")
  29. else:
  30. bus = dbusmanager.get_bus()
  31. dbus_ifaces = dbusmanager.get_dbus_ifaces()
  32. daemon = dbus_ifaces["daemon"] ## @dbus.service.method('org.wicd.daemon')
  33. wireless = dbus_ifaces["wireless"] ## @dbus.service.method('org.wicd.daemon.wireless')
  34. wired = dbus_ifaces["wired"] ## @
  35. if not daemon:
  36. print("Error connecting to wicd via D-Bus")
  37. return True
  38. def wifi_strength():
  39. fast = not daemon.NeedsExternalCalls()
  40. if not fast:
  41. iwconfig = wireless.GetIwconfig()
  42. else:
  43. iwconfig = ''
  44. if daemon.GetSignalDisplayType() == 0:
  45. strength = wireless.GetCurrentSignalStrength(iwconfig)
  46. else:
  47. strength = wireless.GetCurrentDBMStrength(iwconfig)
  48. return strength
  49. def get_wifi_ip():
  50. if wireless == None:
  51. return None
  52. return wireless.GetWirelessIP('')
  53. def is_wifi_connected_now():
  54. if wireless == None:
  55. return False
  56. wireless_connecting = wireless.CheckIfWirelessConnecting()
  57. fast = not daemon.NeedsExternalCalls()
  58. if wireless_connecting:
  59. return False
  60. else:
  61. if not fast:
  62. iwconfig = wireless.GetIwconfig()
  63. else:
  64. iwconfig = ''
  65. if check_for_wireless(iwconfig,wireless.GetWirelessIP(''),None):
  66. return True
  67. else:
  68. return False
  69. def check_for_wireless(iwconfig,wireless_ip,set_status):
  70. if not wireless_ip:
  71. return False
  72. network = wireless.GetCurrentNetwork(iwconfig)
  73. if not network:
  74. return False
  75. network = misc.to_unicode(network)
  76. if daemon.GetSignalDisplayType() == 0:
  77. strength = wireless.GetCurrentSignalStrength(iwconfig)
  78. else:
  79. strength = wireless.GetCurrentDBMStrength(iwconfig)
  80. if strength is None:
  81. return False
  82. strength = misc.to_unicode(daemon.FormatSignalForPrinting(strength))
  83. ip = misc.to_unicode(wireless_ip)
  84. """
  85. print(_('dbus Connected to $A at $B (IP: $C)').replace
  86. ('$A', network).replace
  87. ('$B', strength).replace
  88. ('$C', ip))
  89. """
  90. return True