
oTc           @   s/  d  d l  m Z m Z d Z d Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z m Z m Z y d  d l Z Wn e k
 r	d Z n Xe Z a Z Z Z Z  d Z! e j" d k rne# Z y" d  d l$ Z$ e$ j% j& d  Z! Wq
q
Xn e j" d k r
e j' d  Z( e j' e(  e# Z d  d l) Z) e) j*   j+   d	 k r
e# a y d  d l, Z, e# Z Wn n Xd
 e) j-   k re# Z qq
n  t rg  e) j.   d j/ d  D] Z0 e1 e0  ^ q*d d g k Z2 g  e) j.   d j/ d  D] Z0 e1 e0  ^ qhd d g k Z3 n
 e Z2 Z3 d  d l4 m5 Z5 d  d l6 m7 Z7 d  d l8 m9 Z9 d  d l: m; Z; d  d l< m= Z= m> Z> d  d l? m@ Z@ d  d lA jB ZB d  d lC jD ZD d  d lE mF ZF mG ZG mH ZH d  d lI mJ ZJ d  d lK jL ZL d  d lM jN ZN d  d lO jP ZP d  d lQ mR ZR d  d lS ZT d  d lU jV ZV d  d lW jX ZX d  d lY mZ ZZ d  d l[ j\ Z\ d  d l] ZT d  d l^ j_ Z_ d  d l` ZT d  d la Td  d lb TeD jc Zd e j je   Zf d ag d ah d ai d aj d ak d al d am d an d Zo d ap d aq d ar d as d at d au d av d aw d ax e Zy e az d Z{ d Z| d Z} d Z~ d Z d Z d Z d Z d Z e a e a e a e a e a d a e Z e a e a i d d 6d d 6d d  6d! d" 6d# d$ 6d% d& 6d' d( 6Z d d d)  Z e   Z d*   Z e e  e e e d d+   Z e e  d,    Z e e  d-    Z d.   Z d/   Z d0   Z d1   Z d2   Z d3   Z d4   Z d5   Z d d d d d d6  Z d d d d d d7  Z e d8  Z d9   Z d:   Z e   Z e e  d;    Z d<   Z e e  d=    Z e d d d e d e d>   Z d?   Z d@   Z dA   Z dB   Z dC   Z dD   Z dE   Z e# dF  Z dG   Z dH   Z dI   Z dJ   Z e   Z e e  d dK   Z e e  e# e dL   Z e e  e# e# e dM   Z e e  dN    Z e e  e# dO   Z e e  e e# dP   Z dQ   Z dR   Z dS   Z dT   Z dU   Z dV   Z d d d dW  Z dX   Z dY   Z dZ   Z d[   Z d\   Z d]   Z d S(^   i(   t   __version__t   __baseline__i   i   N(   t   RLockt   Lockt	   Conditiont   Threadt   nts   Kernel32.dllt   posixt   darwint   86i    t   .i
   i	   (   t   NzbQueue(   t   PostProcessor(   t
   Downloader(   t	   Assembler(   t	   Bookmarkst   MSGIDGrabber(   t   Rating(   t
   DirScannert   ProcessArchiveFilet   ProcessSingleFile(   t
   URLGrabber(   t   ArticleCache(   t   BPSMeter(   t   *t    t   des   de-det   das   dk-dat   frs   fr-frt   nls   nl-dut   nbs   no-not   svs   sv-set   ens   us-enc         C   s   t  j r7 t |   t d   k r7 t r7 |  d k r7 t St |   t d   k rh t j t d  |   n  z t	 d t  Wd  t  j r d d l
 m } |   t  j r t t  j _ t j d  q n t   t a t j d  Xd  S(   Ni   s'   Signal %s caught, saving and exiting...t   flagi(   t   del_connection_infog      ?i    (   t   sabnzbdt   WIN32t   typet   Nonet   DAEMONt   Truet   loggingt   warningt   Tat
   save_statet   util.apiregR"   t   WINTRAYt	   terminatet   timet   sleept   pid_filet   SABSTOPt   ost   _exit(   t   signumt   frameR"   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   sig_handler   s    3		c         C   s   t  j j   t j _ d  S(   N(   R#   t   databaset   get_history_handlet   cherrypyt   thread_datat
   history_db(   t   thread_index(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   connect_db   s    c         C   s  t  r
 t St a t j j d t  |  p2 t j   }  | r t	 j
 t j j   d  t	 j
 t j j   d  t	 j
 t j j   d  n  t j   r t   n t j j t j   d t t j j t  t	 j t j j   d t t j j   } t j j |  s-t j	 j t j j   d | t  n  t j j t  t j j t   t j! j t   t j" j t   t j# j t   t j$ j t   t j% j t   t j& j t   t j j t   t j' j t   t j( j t   t j) j t   t j* j t   t j+ j t,  t j- j t.  t j/ j t0  t j1 j t j2 j3  t j4 j t j2 j3  t j5 j t6  t j7 j t8  t j9 j t8  t j: j t;  t j< j t j2 j=  t j> j? t j:    t j@ st jA rt j   rt j j d  n  tB jC j t j jD    tE   t j< j tF jG t j<   t j<     tH jI d tJ  tH jK t j<    t jL jM   t j j t j jN t j j   tO   stP t	 jQ t j j   tR d	   aS n  t jT t jU   d
 t tV   rd } t }  n  tW   tX jY   tZ jC j[   } t\   t]   t^   t] jC j_ |  t` |  pC|  ta   tb   tc   td   te jY   | rte jf |   n  tg jh d  t ai t a  t S(   Nt   start_threads   *.sabs	   SABnzbd_*t   createt	   recursiveR   t   200Mt   SABnzbdt   ?t   newi   s   All processes started(j   t   __INITIALIZED__t   Falset   __SHUTTING_DOWN__R;   t   enginet	   subscribeR?   t   cfgt   start_pausedt   misct
   remove_allt	   cache_dirt   get_patht	   admin_dirt   wait_for_dfoldert   wait_for_download_foldert   download_dirt   setR(   t
   set_createt   set_permissionst   dirscan_dirR4   t   patht   existsR#   t   create_real_patht   identt   cache_limitt   callbackt	   new_limitt
   cherryhostt   guard_restartt
   cherryportt   web_dirt   web_dir2t	   web_colort
   web_color2t   log_dirt
   https_portt
   https_certt	   https_keyt   enable_httpst   bandwidth_limitt   guard_speedlimitt   top_onlyt   guard_top_onlyt   pause_on_post_processingt   guard_pause_on_ppt   growl_servert   growlert   change_valuet   growl_passwordt
   quota_sizet   guard_quota_sizet	   quota_dayt   guard_quota_dpt   quota_periodt	   fsys_typet   guard_fsys_typet   languaget   reset_growlt   encodingt   change_fsysR$   t   DARWINR   t   dot   get_intt   check_incomplete_vs_completet   LANG_MAPt   gett   langt   set_locale_infot   DIR_LANGUAGEt   set_languaget   apit   clear_trans_cachet   joint   QUEUE_FILE_NAMEt   boolt   globbert   QUEUE_FILE_TMPLt	   OLD_QUEUEt   change_queue_complete_actiont   queue_completet   check_repair_requestR   t   rsst   initR   t   readR   R   R   t
   read_queueR   R   R   R   R   t	   schedulert   analyseR)   t   infot   RESTART_REQ(   t   pause_downloadert   clean_upt	   evalSchedt   repairRZ   t   paused(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   initialize   s    
%(*(		

c           C   s   t  r t j d  t j j   t j d  t j j   t j d  t j j   t j   t j d  t	 j j   t
 j j   t j j   t j d  t j j   n  d  S(   Ns   Starting postprocessors   Starting assemblers   Starting downloaders   Starting dirscanners   Starting urlgrabber(   RG   R)   t   debugR   R   t   startR   R   R   R   R   R   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR   U  s    
c           C   s  t  rt j d  t a t j   t j j	   t j
 d  t j j   y t j j   Wn n Xt j
 d  t j j   y t j j   Wn n Xt j
 d  t j j   y t j j   Wn n Xt j
 d  t j j   y t j j   Wn n Xt j
 d  t j j   t j
 d  t j j   y t j j   Wn n Xt j
 d  t j j   y t j j   Wn n Xy t d	 t  Wn t j d
 d t n Xt j   t j d  t a  n  d  S(   Ns   SABnzbd shutting down...s   Stopping URLGrabbers   Stopping Newzbin-Grabbers   Stopping ratings   Stopping dirscanners   Stopping downloaders   Stopping assemblers   Stopping postprocessorR!   s   Fatal error at saving statet   exc_infos   All processes stopped(   RG   R)   R   R(   RI   R   t   stopR   R   t   saveR   R   R   R   R   R   R#   t
   downloaderR   R   R,   t   errorR   t   abortRH   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   haltp  sd    

c           C   s   t  j j t j j    d  S(   N(   R   R   R`   RL   R^   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR`     s    c           C   s   t  t _ d  S(   N(   R(   R#   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRb     s    c           C   s   t  j j t j    d  S(   N(   R   R   t   limit_speedRL   Rm   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRn     s    c           C   s   t  j j t j    d  S(   N(   R   R   t   set_top_onlyRL   Ro   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRp     s    c           C   s    t  j   r n t j j   d  S(   N(   RL   Rq   R   R   t   resume_from_postproc(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRr     s    c           C   s   t  j j   d  S(   N(   R   R   t   change_quota(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRx     s    c           C   s   t  j d t  d  S(   Nt   force(   R   t   restartR(   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRz     s    c           C   s   t  j j t j    d  S(   N(   R#   R   R   RL   R|   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR}     s    c         C   s   | r | d k r d  } n  | r< | j   d k r< d  } n  | r] | j   d k r] d  } n  t j   r t j   r t j d |   t d  |  } t j	 j
 | | | d | d |  d | d | } t j	 j |  |  n t j t d	  |   d  S(
   Ns   -1t   defaults&   Fetching msgid %s from www.newzbin2.ess&   fetching msgid %s from www.newzbin2.est   catt   urlt   priorityt   nzbnamesb   Error Fetching msgid %s from www.newzbin2.es - Please make sure your Username and Password are set(   R&   t   lowerRL   t   newzbin_usernamet   newzbin_passwordR)   R   t   TR   R   t   generate_futureR   t   grabR   R+   (   t   msgidt   ppt   scriptR   R   R   t   msgt
   future_nzo(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt	   add_msgid  s     	 	 	0c         C   s   d |  k r d  S| r+ | d k r+ d  } n  | rL | j   d k rL d  } n  | rm | j   d k rm d  } n  t j d |   t d  |  } t j j | | | | d |  d | d | } t j j	 |  |  d  S(	   Nt   https   -1R   s   Fetching %ss   Trying to fetch NZB from %sR   R   R   (
   R&   R   R)   R   R   R   R   R   R   t   add(   R   R   R   R   R   R   R   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   add_url  s     	 	 	-c         C   si   t  j j   t j j   t j j   t j   t j j   t j j   t	 j j   t
 j j   d  S(   N(   R   R   t   flush_articlesR   R   R   R   R   R   R   R   (   R!   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR,     s    
c           C   s$   t  a t j j   t j d  d  S(   Ns   PAUSED_ALL active(   R(   t
   PAUSED_ALLR   R   t   pauseR)   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt	   pause_all  s    c           C   s$   t  a t j j   t j d  d  S(   Ns   PAUSED_ALL inactive(   RH   R   R   R   t   resumeR)   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   unpause_all  s    c         C   sG   t  j j   } | oF t j  j   oF t j j t j j | |  d   S(   Ns   .gz(	   RL   t   nzb_backup_dirRQ   R#   t   no_dupesR4   RZ   R[   R   (   t   filenameRZ   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   backup_exists+  s    c         C   s,   t  j j   } | r( t | |  |  n  d  S(   N(   RL   R   RQ   t   save_compressed(   R   t   dataRZ   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   backup_nzb3  s    c         C   s   t  j   } t  j |   | j d  r5 | d 7} n
 | d 7} t j d t  j j |  |   y7 t j	 | d  } | j
 |  | j   | j   Wn9 t j d t  j j |  |   t j d d t n Xt  j |  d  S(	   Ns   .nzbs   .gzs   .nzb.gzs   Backing up %st   wbs   Saving %s faileds   Traceback: R   (   R4   t   getcwdt   chdirt   endswithR)   R   RZ   R   t   gzipt   GzipFilet   writet   flusht   closeR   R(   (   t   folderR   R   t   heret   f(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR   ;  s    

c         C   s  | r | d k r d  } n  | r< | j   d k r< d  } n  | r] | j   d k r] d  } n  t |  t  r{ |  } t } n t j |  j  } t } t	 j
 s | j d d  } n  t j j |  } t j j |  \ }	 }
 t j d |  t |  t  r|  } nu yB t j d |
 d t  \ } } t j | |  j  t j |  Wn0 t j t d  |  t j d	 d
 t n X|
 j   d k rt | | | | | d | d | St | | | | | d | d | d | d | Sd  S(   Ns   -1R   s   \t   /s	   Adding %st   suffixt   texts   Cannot create temp file for %ss   Traceback: R   s   .zips   .rarR   R   t   keept   reuse(   s   .zips   .rar(   R&   R   t
   isinstancet   strR(   R   t   special_fixerR   RH   R#   R$   t   replaceR4   RZ   t   basenamet   splitextR)   R   t   tempfilet   mkstempR   t   valueR   R   R+   R   R   (   t   nzbfileR   R   R   R   R   R   R   R   t   roott   extRZ   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   add_nzbfileX  s8     	 	 				"c         C   sb   y  t  j d |   j j d  Wn t j t d  |   d  SXt  j   t j	 j
 |  |   d  S(   Nt   serversi   s.   Trying to set status of non-existing server %s(   t   configt
   get_configt   enableRV   R)   R*   R+   t   save_configR   R   t   update_server(   t   server(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   enable_server  s     
c         C   sb   y  t  j d |   j j d  Wn t j t d  |   d  SXt  j   t j	 j
 |  |   d  S(   NR   i    s.   Trying to set status of non-existing server %s(   R   R   R   RV   R)   R*   R+   R   R   R   R   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   disable_server  s     
c           C   sq   t  j d  t d t  j   x t r9 t j d  q# Wt j	 rP t
 j   n t rc t
 j   n
 t
 j   d  S(   Ns   Performing system shutdownt   targetg      ?(   R)   R   R   R   R   RG   R0   R1   R#   R$   t   powersupt   win_shutdownR   t   osx_shutdownt   linux_shutdown(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   system_shutdown  s    		c           C   sD   t  j d  t j r# t j   n t r6 t j   n
 t j   d  S(   Ns   Performing system hybernation(	   R)   R   R#   R$   R   t   win_hibernateR   t   osx_hibernatet   linux_hibernate(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   system_hibernate  s    	c           C   sD   t  j d  t j r# t j   n t r6 t j   n
 t j   d  S(   Ns   Performing system standby(	   R)   R   R#   R$   R   t   win_standbyR   t   osx_standbyt   linux_standby(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   system_standby  s    	c           C   sK   t  j d  t d t  j   x t r9 t j d  q# Wt j	 d  d  S(   Ns   Performing sabnzbd shutdownR   g      ?i    (
   R)   R   R   R   R   RG   R0   R1   R4   R5   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   shutdown_program  s
    	c           C   s!   t  j d  t t j _ a d  S(   Ns   Scheduled restart request(   R)   R   R(   R;   RJ   t   execvt   SCHED_RESTART(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   restart_program  s    c         C   s   d  } d  } d |  k r3 t } |  j d d  } nx | sH t j j   r |  d k r] t } q |  d k rr t } q |  d k r t } q |  d k r t	 } q d  }  n d  }  | r t j
 j |  p d  t j   n  |  a | a | a d  S(   Nt   script_R   t   shutdown_pct   hibernate_pct
   standby_pcR
  (   R&   t
   run_scriptR   RL   t   queue_complete_persR   R  R  R	  R
  R   RV   R   R   t   QUEUECOMPLETEt   QUEUECOMPLETEACTIONt   QUEUECOMPLETEARG(   t   actionRF   t   _actiont	   _argument(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR     s,    					c         C   s   t  j j t j j   |   g } t j j |  \ } } } } t	 j
 d |  t j | d | d t j d t j d t j d | d | d  S(   Ns   Spawning external command %st   shellt   stdint   stdoutt   stderrt   startupinfot   creationflags(   R4   RZ   R   RL   t
   script_dirRQ   R#   t
   newsunpackt   build_commandR)   R   t
   subprocesst   Popent   PIPEt   STDOUT(   R   t   commandt   stupt
   need_shellR  (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR    s    !c           C   s#   t  p" t j j   o" t j j   S(   N(   RG   R   R   t   emptyR   t   is_empty(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   empty_queues  s    c          C   s   t  s t r t j j   r t }  t j j j j	 s t
 j j   sS t j j   r t }  t  rx t  j t j d   q t j d  q n  |  r t r t j   q q n  d  S(   Ni   u2   SABnzbd is busy downloading and/or post-processing(   t   KERNEL32t	   sleeplessR#   RL   t
   keep_awakeRH   R   R   R   R   R   R*  R   R+  R(   t   SetThreadExecutionStatet   ctypest   c_intt   allow_sleep(   t   awake(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR/    s     c           C   s   t  j   r t j j j j r t j t  j	 j
    t  j j   t k  r t j t d   t j j d t  t j   q n  d  S(   Ns"   Too little diskspace forcing PAUSER   (   RL   t   download_freeR#   R   R   R   R   RN   t   diskfreeRU   RQ   t	   get_floatt   GIGIR)   R*   R+   R   RH   t   emailert   diskfull(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   CheckFreeSpace#  s
    +c         C   s   x t  d  D] } y t j j |  s8 t j |  n  t j d d |  |  \ } } t j |  t j j |  \ } } | s | | k r | SWq t	 j
 t d   t	 j d d t q Xq Wt  d  S(   Ni'  R   s   SABnzbd_%s_s   Failure in tempfile.mkstemps   Traceback: R   (   t   xrangeR4   RZ   R[   t   makedirsR   R   R   t   splitR)   R   R+   R   R(   t   IOError(   t   prefixR   t
   check_listt   nt   fdRZ   t   headt   tail(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   get_new_id3  s    c         C   s  | s t  j d | |  n  t j j | |  } y t | d  } | r t j   rj t j	 | d  } n t
 j	 | d  } | j |   | j   | j   | j   ~ n! | j |   | j   | j   Wn0 t  j t d  |  t  j d d t n Xd  S(   Ns   Saving data for %s in %sR   i   s   Saving %s faileds   Traceback: R   (   R)   R   R4   RZ   R   t   openRL   t
   use_picklet   picklet   Picklert   cPicklet   dumpR   R   t
   clear_memoR   R   R+   R   R(   (   R   t   _idRZ   t	   do_picklet   silentt   _ft   pickler(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt	   save_dataH  s(    



c         C   s  t  j j | |   } t  j j |  s; t j d |  d  S| sW t j d |  |  n  yu t | d  } | r t	 j
   r t j |  } q t j |  } n | j   } | j   | r t  j |  n  Wn1 t j t d  |  t j d d t d  SX| S(   Ns
   %s missings   Loading data for %s from %st   rbs   Loading %s faileds   Traceback: R   (   R4   RZ   R   R[   R)   R   R&   R   RG  RL   RH  RI  t   loadRK  R   R   t   removeR   R+   R(   (   RN  RZ   RV  RO  RP  RQ  R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt	   load_datad  s*    
c         C   s|   t  j j | |   } y6 t  j j |  rJ t  j |  t j d |  n  Wn* t j d |  t j d d t n Xd  S(   Ns
   %s removeds   Failed to remove %ss   Traceback: R   (   R4   RZ   R   R[   RV  R)   R   R(   (   RN  RZ   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   remove_data  s    c         C   s   t  j j t j j   |  } t j d | |  y} t | d  } | r t	 j
 | d  } | j |   | j   | j   | j   ~ n! | j |   | j   | j   Wn0 t j t d  |  t j d d t n Xd  S(   Ns   Saving data for %s in %sR   i   s   Saving %s faileds   Traceback: R   (   R4   RZ   R   RL   RR   RQ   R)   R   RG  RK  RJ  RL  R   R   RM  R   R   R+   R(   (   R   RN  RO  RZ   RQ  RR  (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   save_admin  s"    



c         C   sH  t  j j t j j   |   } t j d |  |  t  j j |  s t j d |  t  j j t j	 j   |   } t  j j |  s t j d |  d  St } n  yW t | d  } | r t j |  } n | j   } | j   | r t  j |  n  WnJ t t j   d  } t j t d  | |  t j d d t d  SX| S(	   Ns   Loading data for %s from %ss   %s missing, trying old caches
   %s missingRT  i    s   Loading %s failed with error %ss   Traceback: R   (   R4   RZ   R   RL   RR   RQ   R)   R   R[   RP   R&   R(   RG  RK  RU  R   R   RV  R   t   sysR   R   R+   (   RN  RV  RO  RZ   R   R   t   excepterror(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   load_admin  s.    	
c         C   sj   t  j j |   }  |  d k r+ t t t f S|  d k rD t t t f S|  d k r] t t t f St t t f S(   Ni    i   i   (   R#   t	   interfacet   int_convRH   R(   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   pp_to_opts  s       c         C   sG   |  d  k r d  Sd } |  r% d } n  | r4 d } n  | rC d } n  | S(   Ni    i   i   i   (   R&   (   R   t   unpackt   deleteR   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt
   opts_to_pp  s     	 	 	c          C   sV   t  j j t j j   t  }  y* t |  d  } | j d  | j	   Wn n Xd  S(   Nt   ws   
(
   R4   RZ   R   RL   RR   RQ   t   REPAIR_REQUESTRG  R   R   (   RZ   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   request_repair  s    c          C   sS   t  j j t j j   t  }  t  j j |   rO y t  j |   Wn n Xt	 St
 S(   N(   R4   RZ   R   RL   RR   RQ   Rd  R[   RV  R(   RH   (   RZ   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR     s    c         C   s   t  j j |  |  S(   N(   R#   R!  t   SimpleRarExtract(   t   rarfilet   fn(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRf    s    c           C   s  t  s t r t St j j j   s4 t j d  t	 St
 j j   sT t j d  t	 St j j   st t j d  t	 St
 j j   t
 j j   t j j   s t j d  t j j   n  t j j   s t j d  t j j   n  t j j   st j d  t j j   n  t j j   s>t j d  t j j   n  t j j   s}t j d  t j j   t j j
 j j   n  t j j   t j j j j   t S(	   Ns+   Restarting because of crashed postprocessors(   Restarting because of crashed downloaders'   Restarting because of crashed assemblers   Restarting crashed dirscanners   Restarting crashed urlgrabbers   Restarting crashed newzbins   Restarting crashed ratings   Restarting crashed scheduler(   RI   RG   R(   R#   R   R   t   isAliveR)   R   RH   R   R   t   wakeupt   check_timersR   t   __init__R   R   R   R   t   sched_checkR   R   t   unblock_allt   pause_checkt   nzbqueueR   t   stop_idle_jobs(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   check_all_tasks  s@    c         C   s   t  j s[ |  r: |  j d  r: t j j |  d |  a q[ | r[ | j d  r[ | a q[ n  t r yJ | r t t d  } | j d t j	    | j
   n t j t  Wq t j d t  q Xn  d  S(   NR   s   sabnzbd-%s.pidRc  s   %d
s   Cannot access PID file %s(   R#   R$   t
   startswithR4   RZ   R   t   DIR_PIDRG  R   t   getpidR   RV  R)   R*   (   t   pid_pathR2   t   portR   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR2   1  s    	c          C   s   t  j j   }  t j t  j j   |   r t j d t  j    t  j   k rp t  j j t j	 j
 |  d   q t  j j d  n  d  S(   Nt   Xt
   incomplete(   RL   t   complete_dirRQ   RN   t	   same_fileRU   t	   real_pathRV   R4   RZ   R   (   t   complete(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR   G  s
    $"c           C   s4   x- t  j j   s/ t j d  t j d  q Wd  S(   Ns   Waiting for "incomplete" folderg       @(   RL   RU   t	   test_pathR)   R   R0   R1   (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyRT   S  s    c           C   s   t  j j j j   S(   N(   R#   R   R   R   t   active_primaries(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyR  [  s    c         C   s"   t  j j |  | | | | | |  S(   N(   R#   R!  t	   pre_queue(   t   nameR   R   R   R   t   sizet   groups(    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   proxy_pre_queue_  s    c           C   s   t  j j   S(   N(   R#   R   t   build_history(    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   proxy_build_historyb  s    c         C   s   t  j j j j |   S(   N(   R#   t
   urlgrabberR   R   t   rm_bookmark(   R   (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   proxy_rm_bookmarkf  s    (   t   sabnzbd.versionR    R   t   __configversion__t   __queueversion__R4   R)   t   datetimeR   RK  RI  t   zipfilet   globR   R#  R0   R;   RZ  t	   threadingR   R   R   R   R.  t   ImportErrorR&   RH   R$   R   t   DARWIN_INTELt   POSIXt
   FOUNDATIONt   WIN64R-  R  R(   R1  t   windllt   LoadLibraryt   umaskt	   ORG_UMASKt   platformt   systemR   t
   Foundationt   machinet   mac_verR>  RB  t   intt	   DARWIN_YSt	   DARWIN_MLt   sabnzbd.nzbqueueR   t   sabnzbd.postprocR   t   sabnzbd.downloaderR   t   sabnzbd.assemblerR   t   sabnzbd.newzbinR   R   t   sabnzbd.ratingR   t   sabnzbd.miscRN   t   sabnzbd.powersupR   t   sabnzbd.dirscannerR   R   R   t   sabnzbd.urlgrabberR   t   sabnzbd.schedulerR   t   sabnzbd.rssR   t   sabnzbd.emailerR9  t   sabnzbd.articlecacheR   t   sabnzbd.newsunpackR#   t   sabnzbd.encodingR   t   sabnzbd.configR   t   sabnzbd.bpsmeterR   t   sabnzbd.cfgRL   t   sabnzbd.databaset   sabnzbd.langR   t   sabnzbd.apit   sabnzbd.decoratorst   sabnzbd.constantst	   HAVE_DBUSt   LINUX_POWERt   nowt   STARTt   MY_NAMEt   MY_FULLNAMEt   NEW_VERSIONt   DIR_HOMEt   DIR_APPDATAt   DIR_LCLDATAt   DIR_PROGt   DIR_INTERFACESR   Rt  R  R  R  R'   t   LOGFILEt
   WEBLOGFILEt
   LOGHANDLERt
   GUIHANDLERt   LOG_ALLt   AMBI_LOCALHOSTt   WIN_SERVICEt   BROWSER_URLt   CMDLINEt   WEB_DIRt   WEB_DIR2t   WEB_DIRCt
   WIZARD_DIRt	   WEB_COLORt
   WEB_COLOR2R3   R   R   R   R  R.   t   WEBUI_READYRG   RI   R   R8   t	   INIT_LOCKR?   t   synchronizedR   R   R   R`   Rb   Rn   Rp   Rr   Rx   Rz   R}   R   R   R,   R   R   t   NZB_LOCKR   R   R   t   synchronized_CVt   NORMAL_PRIORITYR   R   R   R  R  R	  R
  R  R   R  R,  R/  R;  t   IO_LOCKRF  RS  RW  RX  RY  R\  R_  Rb  Re  R   Rf  Rr  R2   R   RT   R  R  R  R  (    (    (    s$   /var/www/SABnzbd/sabnzbd/__init__.pyt   <module>   sj  "

>A


	
			R												0									'	
							 		!	
		
			3					