def get(self): current_user = users.get_current_user() youtify_user = get_current_youtify_user() playlists = '[]'; if youtify_user is not None: playlists = get_playlists_json_for_user(youtify_user) youtify_user.device = str(random.random()) youtify_user.save() if (current_user is not None) and (youtify_user is None): youtify_user = create_youtify_user() ON_PRODUCTION = os.environ['SERVER_SOFTWARE'].startswith('Google App Engine') # http://stackoverflow.com/questions/1916579/in-python-how-can-i-test-if-im-in-google-app-engine-sdk # Find videotag and generate open graph meta tags match = re.compile(r'videos/(.*)').search(self.request.url) if match: og_tag = '<meta property="og:video" content="http://www.youtube.com/v/' + match.groups()[0] + '?version=3&autohide=1"/><meta property="og:video:type" content="application/x-shockwave-flash"/><meta property="og:video:width" content="396"/><meta property="og:video:height" content="297"/>' else: og_tag = '' lang = auto_detect_language(self.request) path = os.path.join(os.path.dirname(__file__), 'html', 'index.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8'; self.response.out.write(template.render(path, { 'user': current_user, 'is_admin': int(users.is_current_user_admin()), 'youtify_user': youtify_user, 'playlistsFromServer': playlists, 'autoDetectedLanguageByServer': lang, 'autoDetectedTranslations': get_deployed_translations_json(lang), 'accept_language_header': self.request.headers.get('Accept-Language', ''), # todo remove 'logged_in': int(current_user is not None), 'has_flattr_access_token': int(youtify_user is not None and youtify_user.flattr_access_token is not None), 'flattr_user_name': youtify_user is not None and youtify_user.flattr_user_name, 'login_url': users.create_login_url('/'), 'logout_url': users.create_logout_url('/'), 'toplist': get_or_create_toplist_json(), 'flattr_toplist': flattr_toplist.get_or_create_toplist_json(), 'ON_PRODUCTION': ON_PRODUCTION, 'ON_DEV': ON_PRODUCTION is False, 'USE_PRODUCTION_JAVASCRIPT': ON_PRODUCTION, 'languages': [lang for lang in get_languages() if lang['enabled_on_site']], #'USE_PRODUCTION_JAVASCRIPT': True, # Uncomment to try out production settings. Remember to build production.js with localhost:8080/minimizer 'url': self.request.url, 'og_tag': og_tag, }))
def get(self): my_followers_struct = [] my_followings_struct = [] settings_struct = {} youtify_user_struct = None current_user = users.get_current_user() youtify_user_model = get_current_youtify_user_model() if (current_user is not None) and (youtify_user_model is None): youtify_user_model = create_youtify_user_model() if youtify_user_model is not None: youtify_user_model.device = generate_device_token() youtify_user_model.last_login = datetime.now() youtify_user_struct = get_youtify_user_struct(youtify_user_model, include_private_data=True) # https://developers.google.com/appengine/docs/python/runtime#Request_Headers youtify_user_model.country = self.request.headers.get('X-AppEngine-Country', None) youtify_user_model.reqion = self.request.headers.get('X-AppEngine-Region', None) youtify_user_model.city = self.request.headers.get('X-AppEngine-City', None) youtify_user_model.latlon = self.request.headers.get('X-AppEngine-CityLatLong', None) youtify_user_model.save() my_followers_struct = get_followers_for_youtify_user_model(youtify_user_model) my_followings_struct = get_followings_for_youtify_user_model(youtify_user_model) settings_struct = get_settings_struct_for_youtify_user_model(youtify_user_model) lang_code = auto_detect_language(self.request) json = { 'ON_PRODUCTION': config.ON_PRODUCTION, 'SEARCH_STATS_URL': config.SEARCH_STATS_URL, 'languagesFromServer': [lang for lang in get_languages() if lang['enabled_on_site']], 'device': youtify_user_model is not None and youtify_user_model.device, 'user': youtify_user_struct, 'lastNotificationSeenTimestamp': youtify_user_model is not None and youtify_user_model.last_notification_seen_timestamp, 'myFollowers': my_followers_struct, 'myFollowings': my_followings_struct, 'settingsFromServer': settings_struct, 'autoDetectedLanguageByServer': lang_code, 'autoDetectedTranslations': get_deployed_translations_struct(lang_code), 'loginUrl': users.create_login_url('/'), 'logoutUrl': users.create_logout_url('/'), } self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json));
def get(self): current_user = users.get_current_user() youtify_user_model = get_current_youtify_user_model() youtify_user_struct = None playlists_struct = [] my_followers_struct = [] my_followings_struct = [] settings_struct = {} if (current_user is not None) and (youtify_user_model is None): youtify_user_model = create_youtify_user_model() if youtify_user_model is not None: youtify_user_model.device = str(random.random()) youtify_user_model.last_login = datetime.now() # https://developers.google.com/appengine/docs/python/runtime#Request_Headers youtify_user_model.country = self.request.headers.get('X-AppEngine-Country', None) youtify_user_model.reqion = self.request.headers.get('X-AppEngine-Region', None) youtify_user_model.city = self.request.headers.get('X-AppEngine-City', None) youtify_user_model.latlon = self.request.headers.get('X-AppEngine-CityLatLong', None) youtify_user_model.save() youtify_user_struct = get_youtify_user_struct(youtify_user_model, include_private_data=True) playlists_struct = get_playlist_structs_for_youtify_user_model(youtify_user_model, include_private_playlists=True) my_followers_struct = get_followers_for_youtify_user_model(youtify_user_model) my_followings_struct = get_followings_for_youtify_user_model(youtify_user_model) settings_struct = get_settings_struct_for_youtify_user_model(youtify_user_model) ON_PRODUCTION = os.environ['SERVER_SOFTWARE'].startswith('Google App Engine') # http://stackoverflow.com/questions/1916579/in-python-how-can-i-test-if-im-in-google-app-engine-sdk # Find videotag and generate open graph meta tags match = re.compile(r'tracks/youtube/(.*)').search(self.request.url) if match: og_tag = '<meta property="og:video" content="http://www.youtube.com/v/' + match.groups()[0] + '?version=3&autohide=1"/><meta property="og:video:type" content="application/x-shockwave-flash"/><meta property="og:video:width" content="396"/><meta property="og:video:height" content="297"/>' else: og_tag = '' # TODO add og_tag for SoundCloud & Official.fm tracks lang = auto_detect_language(self.request) path = os.path.join(os.path.dirname(__file__), 'html', 'index.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8'; self.response.out.write(template.render(path, { 'my_user_id': youtify_user_model is not None and youtify_user_model.key().id(), 'device': youtify_user_model is not None and youtify_user_model.device, 'USER': simplejson.dumps(youtify_user_struct), 'playlistsFromServer': simplejson.dumps(playlists_struct), 'myFollowers': simplejson.dumps(my_followers_struct), 'myFollowings': simplejson.dumps(my_followings_struct), 'settingsFromServer': simplejson.dumps(settings_struct), 'autoDetectedLanguageByServer': lang, 'autoDetectedTranslations': get_deployed_translations_json(lang), 'logged_in': int(current_user is not None), 'has_flattr_access_token': int(youtify_user_model is not None and youtify_user_model.flattr_access_token is not None), 'flattr_user_name': youtify_user_model is not None and youtify_user_model.flattr_user_name, 'login_url': users.create_login_url('/'), 'logout_url': users.create_logout_url('/'), 'youtubeTopList': get_youtube_toplist_json(), 'flattrTopList': get_flattr_toplist_json(), 'CURRENT_VERSION_ID': os.environ['CURRENT_VERSION_ID'], 'ON_PRODUCTION': ON_PRODUCTION, 'ON_DEV': ON_PRODUCTION is False, 'USE_PRODUCTION_JAVASCRIPT': ON_PRODUCTION, 'languages': [lang for lang in get_languages() if lang['enabled_on_site']], #'USE_PRODUCTION_JAVASCRIPT': True, # Uncomment to try out production settings. Remember to build production.js with localhost:8080/minimizer 'url': self.request.url, 'og_tag': og_tag, }))
def get(self): my_followers_struct = [] my_followings_struct = [] settings_struct = {} youtify_user_struct = None current_user = users.get_current_user() youtify_user_model = get_current_youtify_user_model() if (current_user is not None) and (youtify_user_model is None): youtify_user_model = create_youtify_user_model() if youtify_user_model is not None: youtify_user_model.device = generate_device_token() youtify_user_model.last_login = datetime.now() youtify_user_struct = get_youtify_user_struct( youtify_user_model, include_private_data=True) # https://developers.google.com/appengine/docs/python/runtime#Request_Headers youtify_user_model.country = self.request.headers.get( 'X-AppEngine-Country', None) youtify_user_model.reqion = self.request.headers.get( 'X-AppEngine-Region', None) youtify_user_model.city = self.request.headers.get( 'X-AppEngine-City', None) youtify_user_model.latlon = self.request.headers.get( 'X-AppEngine-CityLatLong', None) youtify_user_model.save() my_followers_struct = get_followers_for_youtify_user_model( youtify_user_model) my_followings_struct = get_followings_for_youtify_user_model( youtify_user_model) settings_struct = get_settings_struct_for_youtify_user_model( youtify_user_model) lang_code = auto_detect_language(self.request) json = { 'ON_PRODUCTION': config.ON_PRODUCTION, 'SEARCH_STATS_URL': config.SEARCH_STATS_URL, 'languagesFromServer': [lang for lang in get_languages() if lang['enabled_on_site']], 'device': youtify_user_model is not None and youtify_user_model.device, 'user': youtify_user_struct, 'lastNotificationSeenTimestamp': youtify_user_model is not None and youtify_user_model.last_notification_seen_timestamp, 'myFollowers': my_followers_struct, 'myFollowings': my_followings_struct, 'settingsFromServer': settings_struct, 'autoDetectedLanguageByServer': lang_code, 'autoDetectedTranslations': get_deployed_translations_struct(lang_code), 'loginUrl': users.create_login_url('/'), 'logoutUrl': users.create_logout_url('/'), } self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json))