def fetch_exercise_metadata(request): exercise_url = request.GET.get("exercise_url", None) metadata = {"success": False} validate = URLValidator(verify_exists=True) try: validate(exercise_url) exercise = BaseExercise(service_url=exercise_url) exercise_page = exercise.get_page("") metadata["name"] = exercise_page.meta["title"] metadata["description"] = exercise_page.meta["description"] metadata["success"] = True except ValidationError as e: metadata["message"] = " ".join(e.messages) except Exception as e: metadata["message"] = "No metadata found." return HttpResponse(simplejson.dumps(metadata), content_type="application/json")