import os import yaml import redis from django.conf import settings from django.http import HttpResponse from django.shortcuts import render from apps.rss_feeds.models import Feed, MStory from apps.search.models import SearchFeed from utils import log as logging def about(request): return render(request, 'static/about.xhtml') def faq(request): return render(request, 'static/faq.xhtml') def api(request): filename = settings.TEMPLATES[0]['DIRS'][0] + '/static/api.yml' api_yml_file = open(filename).read() data = yaml.load(api_yml_file) return render(request, 'static/api.xhtml', {'data': data}) def press(request): return render(request, 'static/press.xhtml') def privacy(request): return render(request, 'static/privacy.xhtml') def tos(request): return render(request, 'static/tos.xhtml') def webmanifest(request): filename = settings.MEDIA_ROOT + '/extensions/edge/manifest.json' manifest = open(filename).read() return HttpResponse(manifest, content_type='application/manifest+json') def apple_app_site_assoc(request): return render(request, 'static/apple_app_site_assoc.xhtml') def apple_developer_merchantid(request): return render(request, 'static/apple_developer_merchantid.xhtml') def feedback(request): return render(request, 'static/feedback.xhtml') def firefox(request): filename = settings.MEDIA_ROOT + '/extensions/firefox/manifest.json' manifest = open(filename).read() return HttpResponse(manifest, content_type='application/x-web-app-manifest+json') def ios(request): return render(request, 'static/ios.xhtml') def android(request): return render(request, 'static/android.xhtml') def ios_download(request): return render(request, 'static/ios_download.xhtml') def ios_plist(request): filename = os.path.join(settings.NEWSBLUR_DIR, 'clients/ios/NewsBlur.plist') manifest = open(filename).read() logging.user(request, "~SK~FR~BBDownloading NewsBlur.plist...") return HttpResponse(manifest, content_type='text/xml') def ios_ipa(request): filename = os.path.join(settings.NEWSBLUR_DIR, 'clients/ios/NewsBlur.ipa') manifest = open(filename).read() logging.user(request, "~SK~FR~BBDownloading NewsBlur.ipa...") return HttpResponse(manifest, content_type='application/octet-stream') def haproxy_check(request): return HttpResponse("OK") 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