³ò
šõÜNc           @   s   d  Z  d d k l Z d d k l Z e d ƒ Z d d „ Z d d d d d „ Z d „  Z	 d	 „  Z
 d
 d „ Z d d „ Z d S(   sj   
$Rev: 571 $
$LastChangedBy: satoon101 $
$LastChangedDate: 2011-10-24 01:05:16 -0400 (Mon, 24 Oct 2011) $
iÿÿÿÿ(   t	   ServerVar(   t   Databaset   gg_prune_databases   strftime("%s","now")c         C   s:   t  ƒ  } | i d d d |  | | | f ƒ| i ƒ  d S(   s0   
    Inserts a new entry into the database.
    s6   INSERT INTO gg_wins (name, uniqueid, wins, timestamp) s   VALUES(?, ?, ?, ?)t   valuesN(   R   t   _queryt   commit(   t   namet   uniqueidt   winst	   timestampt   ggDB(    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   insert_winner   s    		c      
   C   sÍ  d } |  p d Sn t  |  t ƒ p |  f }  n t  | t ƒ p | f } n t |  ƒ t | ƒ j o t d ƒ ‚ n x2 |  D]* } | | j o q n t d | ƒ ‚ q Wh  | d <| d <| d <| d <} d }	 g  }
 x] | D]U } | | oD t |	 ƒ p
 d	 }	 n |	 d
 7}	 |	 d | 7}	 |
 i | | ƒ qê qê Wd } x7 |  D]/ } t | ƒ o | d 7} n | d | 7} qPWd | |	 f } | t |
 ƒ 7} t ƒ  } | i | d | ƒ| i ƒ  d S(   sr   
    Updates the database for the columns in columnTuple with the values in
    valueTuple of the same index.
    R   R   R	   Ns2   columnTuple and valueTuple must be the same lengths,   Valid columnTuple entries are %s, %s, and %sR   t    t   WHEREs    ANDs    %s=?s   , s   %s=?s   UPDATE gg_wins SET %s %sR   (   s   names   winss	   timestamp(	   t
   isinstancet   tuplet   lent
   ValueErrort	   NameErrort   appendR   R   R   (   t   columnTuplet
   valueTupleR   R   R   R	   t   validEntriest   columnt   conditionParamst
   conditionst   conditionValuest	   conditiont   updateStringt   queryStringR
   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   update_winner&   sL      

 	c         C   sR   t  ƒ  } | i d d d |  ƒ } | d  j o d Sn | i d d d | ƒ d S(   Nt   gg_winsR   s   where uniqueid = "%s"iÿÿÿÿs   COUNT(*)s   WHERE ABS(wins) > %si   (   R   t   selectt   None(   R   R
   t   currentWins(    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   get_rankn   s    	c           C   s   t  ƒ  i d d ƒ S(   NR   s   COUNT(*)(   R   R    (    (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   get_winner_count}   s    i
   c         C   sj   t  |  ƒ i ƒ  p t d |  ƒ ‚ n t |  ƒ }  t ƒ  } | i d d d t |  ƒ } | o | Sn g  S(   sj   
    Returns an ordered list dicts of (n) player names in order from highest
    to lowest win count.
    s$   Expected digit, and got a str() (%s)R   R   R   R   s   ORDER BY ABS(wins) DESC(   s   names   uniqueids   wins(   t   strt   isdigitR   t   intR   R    t   True(   t   nR
   t   winner_list(    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   get_winners_list   s    	c         C   s^   |  p% t  t ƒ p d Sn t  t ƒ }  n t ƒ  } | i d d d |  f ƒ | i ƒ  d S(   sT   
    Prunes the database within n amount of days, defaults to gg_prune_database
    Ns   DELETE FROM gg_wins WHERE s,   timestamp < strftime("%s","now", "-%s days")s   %s(   R'   R   R   R   R   (   t   daysR
   (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pyt   prune_winners_db‘   s    		N(   t   __doc__t   esR    t   gungame51.core.sqlR   R   R   R!   R   R#   R$   R+   R-   (    (    (    sV   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/sql/shortcuts.pys   <module>   s   	G		