2010-04-24 13:40:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  StatusNet  -  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2010 ,  StatusNet ,  Inc . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  it  under  the  terms  of  the  GNU  Affero  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  Free  Software  Foundation ,  either  version  3  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  Affero  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  Affero  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  along  with  this  program .   If  not ,  see  < http :// www . gnu . org / licenses />. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( ! defined ( 'STATUSNET' )  &&  ! defined ( 'LACONICA' ))  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-08-22 17:52:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  User_urlshortener_prefs  extends  Managed_DataObject  
						 
					
						
							
								
									
										
										
										
											2010-04-24 13:40:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ###START_AUTOCODE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* the code below is auto generated do not remove the above tag */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $__table  =  'user_urlshortener_prefs' ;          // table name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $user_id ;                          // int(4)  primary_key not_null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $urlshorteningservice ;             // varchar(50)   default_ur1.ca
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $maxurllength ;                     // int(4)   not_null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $maxnoticelength ;                  // int(4)   not_null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $created ;                          // datetime   not_null default_0000-00-00%2000%3A00%3A00
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $modified ;                         // timestamp   not_null default_CURRENT_TIMESTAMP
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* the code above is auto generated do not remove the tag below */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ###END_AUTOCODE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-08-22 17:52:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  function  schemaDef () 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-24 13:40:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-22 17:52:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            'fields'  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'user_id'  =>  array ( 'type'  =>  'int' ,  'not null'  =>  true ,  'description'  =>  'user' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'urlshorteningservice'  =>  array ( 'type'  =>  'varchar' ,  'length'  =>  50 ,  'default'  =>  'internal' ,  'description'  =>  'service to use for auto-shortening URLs' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'maxurllength'  =>  array ( 'type'  =>  'int' ,  'not null'  =>  true ,  'description'  =>  'urls greater than this length will be shortened, 0 = always, null = never' ), 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-25 22:48:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                'maxnoticelength'  =>  array ( 'type'  =>  'int' ,  'not null'  =>  true ,  'description'  =>  'notices with content greater than this value will have all urls shortened, 0 = always, -1 = only if notice text is longer than max allowed' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-22 17:52:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'created'  =>  array ( 'type'  =>  'datetime' ,  'not null'  =>  true ,  'description'  =>  'date this record was created' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'modified'  =>  array ( 'type'  =>  'timestamp' ,  'not null'  =>  true ,  'description'  =>  'date this record was modified' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            'primary key'  =>  array ( 'user_id' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            'foreign keys'  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'user_urlshortener_prefs_user_id_fkey'  =>  array ( 'user' ,  array ( 'user_id'  =>  'id' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-24 13:40:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:01:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  function  maxUrlLength ( $user ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-06 22:35:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $def  =  common_config ( 'url' ,  'maxurllength' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:01:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $prefs  =  self :: getPrefs ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( empty ( $prefs ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $prefs -> maxurllength ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    static  function  maxNoticeLength ( $user ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $def  =  common_config ( 'url' ,  'maxnoticelength' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $def  ==  - 1 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-25 22:48:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            /* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             *  maxContent == 0  means  infinite  length , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             *  but  maxNoticeLength == 0  means  " always shorten " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             *  so  if  maxContent == 0  we  must  set  this  to  - 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $def  =  Notice :: maxContent ()  ? :  - 1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:01:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $prefs  =  self :: getPrefs ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( empty ( $prefs ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $prefs -> maxnoticelength ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:37:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  function  urlShorteningService ( $user ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $def  =  common_config ( 'url' ,  'shortener' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $prefs  =  self :: getPrefs ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( empty ( $prefs ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! empty ( $user ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  $user -> urlshorteningservice ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $prefs -> urlshorteningservice ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:01:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    static  function  getPrefs ( $user ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( empty ( $user ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-18 13:04:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $prefs  =  User_urlshortener_prefs :: getKV ( 'user_id' ,  $user -> id ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-26 02:01:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $prefs ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-24 13:40:10 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}