ó
‚•oTc           @   s×   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z y d  d l Z e Z Wn e k
 r¥ e Z n Xd	 „  Z d
 „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   latin1c           C   sR   y t  j d ƒ t j d ƒ Wn- t j t d ƒ ƒ t j d d t ƒn Xd  S(   Ns/   rundll32 powrprof.dll,SetSuspendState Hibernatei
   s   Failed to hibernate systems   Traceback: t   exc_info(	   t
   subprocesst   Popent   timet   sleept   loggingt   errort   Tat   infot   True(    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   win_hibernate    s    c           C   sR   y t  j d ƒ t j d ƒ Wn- t j t d ƒ ƒ t j d d t ƒn Xd  S(   Ns-   rundll32 powrprof.dll,SetSuspendState Standbyi
   s   Failed to standby systems   Traceback: R   (	   R   R   R   R   R   R   R   R	   R
   (    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   win_standby+   s    c          C   s¸   z£ d d  l  }  d d  l } d d  l } | j | j B} |  j | j ƒ  | ƒ } |  j d  | j	 ƒ } | | j
 f g } |  j | d | ƒ | j d d d d d ƒ Wd  t j d ƒ Xd  S(   Niÿÿÿÿi    t    i   i   (   t   win32securityt   win32apit   ntsecuritycont   TOKEN_ADJUST_PRIVILEGESt   TOKEN_QUERYt   OpenProcessTokent   GetCurrentProcesst   LookupPrivilegeValuet   Nonet   SE_SHUTDOWN_NAMEt   SE_PRIVILEGE_ENABLEDt   AdjustTokenPrivilegest   InitiateSystemShutdownt   ost   _exit(   R   R   R   t   flagst   htokent   id_t   newPrivileges(    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   win_shutdown6   s    c           C   s[   y t  j d d d g ƒ Wn- t j t d ƒ ƒ t j d d t ƒn Xt j d ƒ d  S(   Nt	   osascripts   -es%   tell app "System Events" to shut downs    Error while shutting down systems   Traceback: R   i    (	   R   t   callR   R   R   R	   R
   R   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   osx_shutdownK   s    c           C   s[   y' t  j d d d g ƒ t j d ƒ Wn- t j t d ƒ ƒ t j d d t ƒn Xd  S(   NR"   s   -es!   tell app "System Events" to sleepi
   s   Failed to standby systems   Traceback: R   (	   R   R#   R   R   R   R   R   R	   R
   (    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   osx_standbyV   s    c           C   s   t  ƒ  d  S(   N(   R%   (    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   osx_hibernatea   s    c          C   sW   d }  d } d } y& t  j ƒ  } | j |  | ƒ | f SWn t  j j k
 rR d SXd  S(   Ns   org.freedesktop.PowerManagements    /org/freedesktop/PowerManagement(   NN(   t   dbust
   SessionBust
   get_objectt
   exceptionst   DBusExceptionR   (   t   namet   patht	   interfacet   bus(    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   _get_sessionproxy{   s    c         C   sÏ   |  d k r' d } d } d } d  } nN |  d k rN d } d } d } d } n' |  d	 k ru d
 } d } d
 } d } n  y) t j ƒ  } | j | | ƒ | | f SWn* t j j k
 rÊ } t j d | ƒ d SXd  S(   Nt
   ConsoleKits   org.freedesktop.ConsoleKits#   /org/freedesktop/ConsoleKit/Managers"   org.freedesktop.ConsoleKit.Managert	   DeviceKits   org.freedesktop.DeviceKit.Powers    /org/freedesktop/DeviceKit/Powers   org.freedesktop.DBus.Propertiest   UPowers   org.freedesktop.UPowers   /org/freedesktop/UPowers   DBus not reachable (%s)(   NNN(   R   R'   t	   SystemBusR)   R*   R+   R   R	   (   t   methodR,   R-   R.   t
   pinterfaceR/   t   msg(    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   _get_systemproxy‡   s*    			c          C   sä   t  s t j d ƒ n  t ƒ  \ }  } |  rM |  j ƒ  rÓ |  j d | ƒ qÓ n† t d ƒ \ }  } } |  rÆ |  j d | ƒ rÓ y |  j d | ƒ WqÃ t	 j
 j k
 r¿ } t j d t | ƒ ƒ qÃ XqÓ n t j d ƒ t j d ƒ d  S(   Ni    t   dbus_interfaceR1   s   Received a DBus exception %ss%   DBus does not support Stop (shutdown)(   t	   HAVE_DBUSR   R   R0   t   CanShutdownt   ShutdownR8   t   CanStopt   StopR'   R*   R+   R   R	   R    (   t   proxyR.   R6   R7   (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   linux_shutdown¡   s      c          C   sü   t  s
 d  St ƒ  \ }  } |  rA |  j ƒ  rë |  j d | ƒ që nª t d ƒ \ }  } } |  st t d ƒ \ }  } } n  |  rÞ |  j | d d | ƒrë y |  j d | ƒ WqÛ t j j k
 r× } t	 j
 d t | ƒ ƒ qÛ Xqë n t	 j
 d ƒ t j d ƒ d  S(   NR9   R3   R2   s   can-hibernates   Received a DBus exception %ss   DBus does not support Hibernatei
   (   R:   R0   t   CanHibernatet	   HibernateR8   t   GetR'   R*   R+   R   R	   R    R   R   (   R?   R.   R6   R7   (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   linux_hibernate·   s"      c          C   sü   t  s
 d  St ƒ  \ }  } |  rA |  j ƒ  rë |  j d | ƒ që nª t d ƒ \ }  } } |  st t d ƒ \ }  } } n  |  rÞ |  j | d d | ƒrë y |  j d | ƒ WqÛ t j j k
 r× } t	 j
 d t | ƒ ƒ qÛ Xqë n t	 j
 d ƒ t j d ƒ d  S(   NR9   R3   R2   s   can-suspends   Received a DBus exception %ss'   DBus does not support Suspend (standby)i
   (   R:   R0   t
   CanSuspendt   SuspendR8   RC   R'   R*   R+   R   R	   R    R   R   (   R?   R.   R6   R7   (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   linux_standbyÏ   s"      (   R   R   R   R   t   sabnzbd.encodingR    R   R   R!   R$   R%   R&   R'   R
   R:   t   ImportErrort   FalseR0   R8   R@   RD   RG   (    (    (    s$   /var/www/SABnzbd/sabnzbd/powersup.pyt   <module>   s(   						

				