forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			948 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			948 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | if (!defined('GNUSOCIAL')) { exit(1); } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Poll a feed based on its urlhash, the full url is in the feedsub table | ||
|  |  * | ||
|  |  * @author Mikael Nordfeldth <mmn@hethane.se> | ||
|  |  */ | ||
|  | class FeedPollQueueHandler extends QueueHandler | ||
|  | { | ||
|  |     public function transport() | ||
|  |     { | ||
|  |         return FeedPoll::QUEUE_CHECK; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function handle($item) | ||
|  |     { | ||
|  |         $feedsub = FeedSub::getKV('id', $item['id']); | ||
|  |         if (!$feedsub instanceof FeedSub) { | ||
|  |             // Removed from the feedsub table I guess
 | ||
|  |             return true; | ||
|  |         } | ||
|  |         if (!$feedsub->sub_state == 'nohub') { | ||
|  |             // We're not supposed to poll this (either it's PuSH or it's unsubscribed)
 | ||
|  |             return true; | ||
|  |         } | ||
|  | 
 | ||
|  |         try { | ||
|  |             FeedPoll::checkUpdates($feedsub); | ||
|  |         } catch (Exception $e) { | ||
|  |             common_log(LOG_ERR, "Failed to check feedsub id= ".$feedsub->id.' ("'.$e->getMessage().'")'); | ||
|  |         } | ||
|  | 
 | ||
|  |         return true; | ||
|  |     } | ||
|  | } |