2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								var  topics  =  require ( '../topics' ) ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools  =  require ( '../threadTools' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									SocketTopics  =  { } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-11 16:15:50 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SocketTopics . post  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									if  ( sessionData . uid  <  1  &&  parseInt ( meta . config . allowGuestPosting ,  10 )  ===  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											title :  'Post Unsuccessful' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message :  'You don't seem to be logged in, so you cannot reply.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											type :  'danger' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											timeout :  2000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . post ( sessionData . uid ,  data . title ,  data . content ,  data . category _id ,  function ( err ,  result )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if ( err )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 	if  ( err . message  ===  'title-too-short' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 16:00:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												module . parent . exports . emitAlert ( socket ,  'Title too short' ,  'Please enter a longer title. At least '  +  meta . config . minimumTitleLength  +  ' characters.' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											}  else  if  ( err . message  ===  'title-too-long' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 16:00:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												module . parent . exports . emitAlert ( socket ,  'Title too long' ,  'Please enter a shorter title. Titles can\'t be longer than '  +  meta . config . maximumTitleLength  +  ' characters.' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											}  else  if  ( err . message  ===  'content-too-short' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 16:00:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												module . parent . exports . emitContentTooShortAlert ( socket ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											}  else  if  ( err . message  ===  'too-many-posts' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 16:00:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												module . parent . exports . emitTooManyPostsAlert ( socket ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											}  else  if  ( err . message  ===  'no-privileges' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													title :  'Unable to post' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													message :  'You do not have posting privileges in this category.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													type :  'danger' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													timeout :  7500 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													title :  'Error' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													message :  err . message , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													type :  'warning' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													timeout :  7500 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( result )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sessionData . server . sockets . in ( 'category_'  +  data . category _id ) . emit ( 'event:new_topic' ,  result . topicData ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sessionData . server . sockets . in ( 'recent_posts' ) . emit ( 'event:new_topic' ,  result . topicData ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sessionData . server . sockets . in ( 'user/'  +  sessionData . uid ) . emit ( 'event:new_post' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												posts :  result . postData 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											module . parent . exports . emitTopicPostStats ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											sessionData . socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												title :  'Thank you for posting' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												message :  'You have successfully posted. Click here to view your post.' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												type :  'success' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												timeout :  2000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-11 16:15:50 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											callback ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . postcount  =  function ( tid ,  callback )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . getTopicField ( tid ,  'postcount' ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . markAllRead  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . markAllRead ( sessionData . uid ,  function ( err ,  success )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  success )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											callback ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											callback ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . delete  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . delete ( data . tid ,  sessionData . uid ,  function ( err )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! err )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													module . parent . exports . emitTopicPostStats ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														callback ( 'api:topic.delete' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															status :  'ok' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															tid :  data . tid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . restore  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . restore ( data . tid ,  sessionData . uid ,  function ( err )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												module . parent . exports . emitTopicPostStats ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													callback ( 'api:topic.restore' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														status :  'ok' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														tid :  data . tid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . lock  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . lock ( data . tid ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . unlock  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . unlock ( data . tid ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . pin  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . pin ( data . tid ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . unpin  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . privileges ( data . tid ,  sessionData . uid ,  function ( err ,  privileges )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err  &&  privileges . editable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											threadTools . unpin ( data . tid ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . createTopicFromPosts  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if ( ! sessionData . uid )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											title :  'Can't fork' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message :  'Guests can't fork topics!' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											type :  'warning' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											timeout :  2000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . createTopicFromPosts ( sessionData . uid ,  data . title ,  data . pids ,  function ( err ,  data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( err ? { message : err . message } : null ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . movePost  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if ( ! sessionData . uid )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										socket . emit ( 'event:alert' ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											title :  'Can't fork' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message :  'Guests can't fork topics!' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											type :  'warning' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											timeout :  2000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . movePostToTopic ( data . pid ,  data . tid ,  function ( err ,  data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( err ? { message : err . message } : null ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-14 08:53:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SocketTopics . move  =  function ( data ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . move ( data . tid ,  data . cid ,  sessionData . socket ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-10 10:46:26 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . followCheck  =  function ( tid ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									threadTools . isFollowing ( tid ,  sessionData . uid ,  function ( following )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( following ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . follow  =  function ( tid ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( sessionData . uid  &&  sessionData . uid  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										threadTools . toggleFollow ( tid ,  sessionData . uid ,  function ( follow )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( follow . status  ===  'ok' )  callback ( follow ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											status :  'error' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											error :  'not-logged-in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . loadMore  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  start  =  data . after , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										end  =  start  +  9 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . getTopicPosts ( data . tid ,  start ,  end ,  sessionData . uid ,  function ( err ,  posts )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											posts :  posts 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . loadMoreRecentTopics  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  start  =  data . after , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										end  =  start  +  9 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . getLatestTopics ( sessionData . uid ,  start ,  end ,  data . term ,  function ( err ,  latestTopics )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! err )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											callback ( latestTopics ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											winston . error ( '[socket api:topics.loadMoreRecentTopics] '  +  err . message ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SocketTopics . loadMoreUnreadTopics  =  function ( data ,  callback ,  sessionData )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  start  =  data . after , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										end  =  start  +  9 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									topics . getUnreadTopics ( sessionData . uid ,  start ,  end ,  function ( unreadTopics )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										callback ( unreadTopics ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								module . exports  =  SocketTopics ;