def completed_icon_src(self): """ Returns the icon src for a special, "completed!" version of this topic badge to be used on the knowledge map only, for now. """ path = ("/images/power-mode/badges/%s-completed-40x40.png?6" % self.icon_filename) return url_util.absolute_url(path)
def test_detection_of_ka_urls(self): def is_ka_url(url): return url_util.is_khanacademy_url(url) self.stub_server_name("www.iktel.nl") print url_util.static_url("/images/foo") self.assertTrue(is_ka_url("/relative/url")) self.assertTrue(is_ka_url(url_util.absolute_url("/relative/url"))) self.assertTrue(is_ka_url(url_util.static_url("/images/foo"))) self.assertTrue(is_ka_url("http://www.iktel.nl")) self.assertTrue(is_ka_url("http://smarthistory.iktel.nl")) self.assertTrue(is_ka_url("http://www.iktel.nl/")) self.assertTrue(is_ka_url("http://www.iktel.nl/foo")) self.restore_server_name()
def test_detection_of_ka_urls(self): def is_ka_url(url): return url_util.is_khanacademy_url(url) self.stub_server_name("www.khanacademy.org") self.assertTrue(is_ka_url("/relative/url")) self.assertTrue(is_ka_url(url_util.absolute_url("/relative/url"))) self.assertTrue(is_ka_url(url_util.static_url("/images/foo"))) self.assertTrue(is_ka_url("http://www.khanacademy.org")) self.assertTrue(is_ka_url("http://smarthistory.khanacademy.org")) self.assertTrue(is_ka_url("http://www.khanacademy.org/")) self.assertTrue(is_ka_url("http://www.khanacademy.org/foo")) self.assertTrue(is_ka_url("https://khan-academy.appspot.com")) self.assertTrue(is_ka_url("http://non-default.khan-academy.appspot.com")) self.assertTrue(is_ka_url("https://non-default.khan-academy.appspot.com")) self.restore_server_name()
def topic_update_from_live(self, edit_version): layout.update_from_live(edit_version) try: if App.is_dev_server: topictree_url="http://khan-testing.appspot.com/topictree_test.json" else: topictree_url=url_util.absolute_url("/topictree.json") response = urlfetch.fetch( url=topictree_url, deadline=25) topictree = json.loads(response.content) logging.info("calling /_ah/queue/deferred_import") # importing the full topic tree can be too large so pickling and compressing deferred.defer(api.v1_utils.topictree_import_task, "edit", "root", True, zlib.compress(pickle_util.dump(topictree)), _queue="import-queue", _url="/_ah/queue/deferred_import") except urlfetch.Error, e: logging.exception("Failed to fetch content from khanacademy.org")
def update_from_live(edit_version): """ imports the latest version of the knowledgemap layout from the live site into the edit_version """ logging.info("importing knowledge map layout") if App.is_dev_server: maplayout_url="http://khan-testing.appspot.com/maplayout_test.json" else: maplayout_url=url_util.absolute_url("/maplayout.json") request = urllib2.Request(maplayout_url) try: opener = urllib2.build_opener() f = opener.open(request) map_layout_live = json.load(f) except urllib2.URLError: logging.exception("Failed to fetch knowledgemap layout from " "khanacademy.org") map_layout = MapLayout.get_for_version(edit_version) map_layout.layout = map_layout_live map_layout.put() logging.info("finished putting knowledge map layout")
def get_icon_src(category, suffix="-small"): name = BadgeCategory.get_icon_filename(category) return url_util.absolute_url("/images/badges/%s%s.png" % (name, suffix))
def absolute_url(self): return url_util.absolute_url(self.relative_url)
def large_icon_src(self): path = ("/images/power-mode/badges/%s-250x250.png?7" % self.icon_filename) return url_util.absolute_url(path)
def icon_src(self): path = "/images/power-mode/badges/%s-40x40.png?6" % self.icon_filename return url_util.absolute_url(path)
def to_absolute_url(relative_url, host=None): return url_util.absolute_url(relative_url)