diff --git a/readthedocs/core/views.py b/readthedocs/core/views.py index 958fd65a021..452abe6234a 100644 --- a/readthedocs/core/views.py +++ b/readthedocs/core/views.py @@ -88,6 +88,19 @@ def queue_info(request): return HttpResponse(resp) +def badge(request, project_slug, version_slug): + version = get_object_or_404(Version, project__slug=project_slug, + slug=version_slug) + last_build = version.builds.filter(type='html').order_by('-date')[0] + + color = 'green' + if not last_build.success: + color = 'red' + url = 'http://img.shields.io/badge/Docs-%s-%s.svg' % (version.slug, color) + import requests + response = requests.get(url, stream=True) + return HttpResponse(response.content, mimetype="image/svg+xml") + def live_builds(request): builds = Build.objects.filter(state='building')[:5] WEBSOCKET_HOST = getattr(settings, 'WEBSOCKET_HOST', 'localhost:8088') diff --git a/readthedocs/urls.py b/readthedocs/urls.py index f8e041c0310..a0dd5f30252 100644 --- a/readthedocs/urls.py +++ b/readthedocs/urls.py @@ -95,6 +95,9 @@ url(r'^wipe/(?P[-\w]+)/(?P[\w]{1}[-\w\.]+)/$', 'core.views.wipe_version', name='wipe_version'), + url(r'^badge/(?P[-\w]+)/(?P[\w]{1}[-\w\.]+)/$', + 'core.views.badge', + name='badge'), url(r'^profiles/create/', 'profiles.views.create_profile', {'form_class': UserProfileForm}, name='profiles_profile_create'),