Example #1
0
def import_feed(request, pk):

	feed = RSS_Feed.objects.get(pk=pk)
	
	# add to queue
	last_imported = datetime.datetime.now()
	index_rss.apply_async( kwargs={ 'uri': feed.uri }, queue='tasks', priority=5 )

	# save new timestamp
	feed.last_imported = last_imported
	feed.save()

	
	return render(request, 'rss_manager/rss_feed_import.html', {'id': pk,})
Example #2
0
def queue_index_rss(request):
    uri = request.GET["uri"]

    result = index_rss.apply_async(kwargs={'uri': uri},
                                   queue='tasks',
                                   priority=5)

    return HttpResponse(json.dumps({'queue': result.id}),
                        content_type="application/json")
def queue_index_rss(request):

    uri = request.GET["uri"]

    from opensemanticetl.tasks import index_rss

    result = index_rss.apply_async(kwargs={'uri': uri},
                                   queue='open_semantic_etl_tasks',
                                   priority=5)

    return HttpResponse(json.dumps({'queue': result.id}),
                        content_type="application/json")
def import_feeds(request):

	verbose = True

	log = []
	count = 0
	count_queued = 0

	for feed in RSS_Feed.objects.all():

		count += 1

		if verbose:
			log.append( "Checking delta time of feed: {}".format(feed) ) 


		add_to_queue = True

		# If delta 0, no automatic import
		if not feed.delta:
			add_to_queue = False

		# If delta time, do not import this feed within this time by setting add_to_queue to false
		if feed.delta and feed.last_imported:

			# when next import allowed (because time delta passed)?
			next_import = feed.last_imported + timedelta(minutes=feed.delta)

			# don't check time delta if last import in future (i.e. if system time was wrong)
			if feed.last_imported < timezone.now():			

				# if time for next import not reached, do not index
				if timezone.now() < next_import:
					add_to_queue = False

			if verbose:
				log.append( "Last addition to queue: {}".format(feed.last_imported) )
				log.append( "Next addition to queue: {}".format(next_import) ) 


		if add_to_queue:
			
			if verbose:
				log.append( "Adding feed to queue: {}".format(feed) ) 

			# add to queue
			last_imported = datetime.datetime.now()

			from opensemanticetl.tasks import index_rss
			index_rss.apply_async( kwargs={ 'uri': feed.uri }, queue='open_semantic_etl_tasks', priority=5 )

			# save new timestamp
			feed.last_imported = last_imported
			feed.save()

			count_queued += 1
	
	#
 	# stats / log
 	#
 	
	response = "Feeds to queue: {} of {}".format(count_queued, count)

	if len(log) > 0:
		response += "\n\n" + "\n".join(log)
	
	#
	# return response
	#
	
	status = HttpResponse(response)
	status["Content-Type"] = "text/plain" 
	return status