2011-04-01 15:10:54 -04:00
|
|
|
import os
|
2011-04-23 18:22:52 -04:00
|
|
|
import yaml
|
2015-08-05 19:33:19 -07:00
|
|
|
import redis
|
2011-04-01 15:10:54 -04:00
|
|
|
from django.conf import settings
|
|
|
|
from django.http import HttpResponse
|
|
|
|
from django.shortcuts import render_to_response
|
|
|
|
from django.template import RequestContext
|
2015-08-05 19:33:19 -07:00
|
|
|
from apps.rss_feeds.models import Feed, MStory
|
|
|
|
from apps.search.models import SearchFeed
|
2011-04-01 15:10:54 -04:00
|
|
|
from utils import log as logging
|
|
|
|
|
|
|
|
def about(request):
|
|
|
|
return render_to_response('static/about.xhtml', {},
|
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
|
|
|
def faq(request):
|
2011-04-23 23:15:44 -04:00
|
|
|
return render_to_response('static/faq.xhtml', {},
|
2011-04-01 15:10:54 -04:00
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
|
|
|
def api(request):
|
2011-04-23 23:15:44 -04:00
|
|
|
filename = settings.TEMPLATE_DIRS[0] + '/static/api.yml'
|
2011-04-23 18:22:52 -04:00
|
|
|
api_yml_file = open(filename).read()
|
2011-04-23 23:15:44 -04:00
|
|
|
data = yaml.load(api_yml_file)
|
|
|
|
|
|
|
|
return render_to_response('static/api.xhtml', {
|
2011-04-23 18:22:52 -04:00
|
|
|
'data': data
|
|
|
|
}, context_instance=RequestContext(request))
|
2011-04-01 15:10:54 -04:00
|
|
|
|
|
|
|
def press(request):
|
|
|
|
return render_to_response('static/press.xhtml', {},
|
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
2011-04-24 18:17:44 -04:00
|
|
|
def feedback(request):
|
|
|
|
return render_to_response('static/feedback.xhtml', {},
|
2011-04-01 15:10:54 -04:00
|
|
|
context_instance=RequestContext(request))
|
2011-12-06 17:57:02 -08:00
|
|
|
|
2012-04-21 18:31:22 -07:00
|
|
|
def firefox(request):
|
|
|
|
filename = settings.MEDIA_ROOT + '/extensions/firefox/manifest.json'
|
|
|
|
manifest = open(filename).read()
|
|
|
|
|
2012-08-22 20:04:58 -07:00
|
|
|
return HttpResponse(manifest, content_type='application/x-web-app-manifest+json')
|
|
|
|
|
|
|
|
def ios(request):
|
2012-08-28 16:32:08 -07:00
|
|
|
return render_to_response('static/ios.xhtml', {},
|
2012-08-22 20:04:58 -07:00
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
2012-10-18 13:11:36 -07:00
|
|
|
def android(request):
|
|
|
|
return render_to_response('static/android.xhtml', {},
|
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
2012-08-22 20:04:58 -07:00
|
|
|
def ios_download(request):
|
|
|
|
return render_to_response('static/ios_download.xhtml', {},
|
2012-08-22 20:48:34 -07:00
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
|
|
|
def ios_plist(request):
|
2013-07-05 17:12:26 -07:00
|
|
|
filename = os.path.join(settings.NEWSBLUR_DIR, 'clients/ios/NewsBlur.plist')
|
2012-08-22 20:48:34 -07:00
|
|
|
manifest = open(filename).read()
|
|
|
|
|
2012-08-22 20:52:37 -07:00
|
|
|
logging.user(request, "~SK~FR~BBDownloading NewsBlur.plist...")
|
2012-08-22 20:48:34 -07:00
|
|
|
return HttpResponse(manifest, content_type='text/xml')
|
|
|
|
|
|
|
|
def ios_ipa(request):
|
2013-07-05 17:11:18 -07:00
|
|
|
filename = os.path.join(settings.NEWSBLUR_DIR, 'clients/ios/NewsBlur.ipa')
|
2012-08-22 20:48:34 -07:00
|
|
|
manifest = open(filename).read()
|
|
|
|
|
|
|
|
logging.user(request, "~SK~FR~BBDownloading NewsBlur.ipa...")
|
|
|
|
return HttpResponse(manifest, content_type='application/octet-stream')
|
2013-07-30 18:13:09 -07:00
|
|
|
|
|
|
|
def haproxy_check(request):
|
|
|
|
return HttpResponse("OK")
|
2015-08-05 19:33:19 -07:00
|
|
|
|
|
|
|
def postgres_check(request):
|
|
|
|
feed = Feed.objects.latest('pk').pk
|
|
|
|
if feed:
|
|
|
|
return HttpResponse(unicode(feed))
|
|
|
|
assert False, "Cannot read from postgres database"
|
|
|
|
|
|
|
|
def mongo_check(request):
|
|
|
|
stories = MStory.objects.count()
|
|
|
|
if stories:
|
|
|
|
return HttpResponse(unicode(stories))
|
|
|
|
assert False, "Cannot read from mongo database"
|
|
|
|
|
|
|
|
def elasticsearch_check(request):
|
|
|
|
client = SearchFeed.ES()
|
|
|
|
if client.indices.exists_index(SearchFeed.index_name()):
|
|
|
|
return HttpResponse(SearchFeed.index_name())
|
|
|
|
assert False, "Cannot read from elasticsearch database"
|
|
|
|
|
|
|
|
def redis_check(request):
|
|
|
|
pool = request.GET['pool']
|
|
|
|
if pool == 'main':
|
|
|
|
r = redis.Redis(connection_pool=settings.REDIS_POOL)
|
|
|
|
elif pool == 'story':
|
|
|
|
r = redis.Redis(connection_pool=settings.REDIS_STORY_HASH_POOL)
|
|
|
|
elif pool == 'sessions':
|
|
|
|
r = redis.Redis(connection_pool=settings.REDIS_SESSION_POOL)
|
|
|
|
|
|
|
|
key = r.randomkey()
|
|
|
|
if key:
|
|
|
|
return HttpResponse(unicode(key))
|
|
|
|
assert False, "Cannot read from redis-%s database" % pool
|