def get(self): search_keywords_query = SearchKeywords().all() search_keywords = search_keywords_query.fetch(30) for search_keyword in search_keywords: try: logging.info('Add taskqueue. keyword: %s' % search_keyword.keyword) taskqueue.add(url='/feed', method='GET', params={'keyword_id' : search_keyword.key().id()}) except (taskqueue.Error, apiproxy_errors.Error): logging.exception('Failed to add taskqueue.')
def post(self): from csrffilter import CSRFFilter user = users.get_current_user() mode = self.request.get('mode') #CSRF Protection filter = CSRFFilter(self, user) if not filter.checkCSRFToken(): return filter.redirectCSRFWarning() user_prefs_query = UserPrefs.all() user_prefs_query.filter("google_id =", user) user_prefs = user_prefs_query.get() if user_prefs is not None: logging.info('Mode: %s' % mode) if mode == 'add': keyword = self.request.get('keyword') search_keywords = SearchKeywords() search_keywords.user_id = user_prefs.key() search_keywords.keyword = keyword search_keywords.put() elif mode == 'delete': deletes = self.request.get_all('deletes[]') for delete in deletes: search_keywords = SearchKeywords.get_by_id(int(delete)) logging.info('Delete keyword: %s' % search_keywords.keyword) if search_keywords is not None: if search_keywords.user_id.key() == user_prefs.key(): search_keywords.delete() self.redirect('/config')
def get(self): search_keywords_query = SearchKeywords().all() search_keywords = search_keywords_query.fetch(30) for search_keyword in search_keywords: try: logging.info('Add taskqueue. keyword: %s' % search_keyword.keyword) taskqueue.add(url='/feed/keyword', method='GET', params={'keyword_id': search_keyword.key().id()}) except (taskqueue.Error, apiproxy_errors.Error): logging.exception('Failed to add taskqueue.')
def get(self): keyword_id = self.request.get('keyword_id') search_keywords = SearchKeywords.get_by_id(int(keyword_id)) if search_keywords is not None: logging.info('Feed: %s' % search_keywords.keyword) user_prefs = UserPrefs().get_by_id(search_keywords.user_id.key().id()) if user_prefs is not None: logging.info('Keyword owner name: %s' % user_prefs.google_id.nickname()) if user_prefs.oauth_access_token_key is not None: oauth_access_token = OAuthAccessToken.get_by_key_name(user_prefs.oauth_access_token_key.key().name()) if oauth_access_token is not None: logging.info('Twitter Account: %s' % user_prefs.oauth_access_token_key.specifier) try: client = OAuthClient('twitter', self) client.token = oauth_access_token results = client.get('/search', q=search_keywords.keyword.encode('utf-8')) for tweet_id in results['statuses']: try: logging.info('Add taskqueue. tweet_id: %s' % tweet_id) taskqueue.add(url='/feed/tweet', method='GET', params={'tweet_id' : tweet_id, 'keyword_id': keyword_id}) except (taskqueue.Error, apiproxy_errors.Error): logging.exception('Failed to add taskqueue.') except Exception, error: logging.error('Cache Failed: %s' % error)
def get(self): from csrffilter import CSRFFilter user = users.get_current_user() user_prefs_query = UserPrefs.all() user_prefs_query.filter("google_id =", user) user_prefs = user_prefs_query.get() mode = self.request.get('mode') if mode == 'add_twitter_account': self.redirect('/oauth/twitter/login') elif mode == 'delete_twitter_account': if user_prefs.oauth_access_token_key: oauth_access_token_query = OAuthAccessToken.get_by_key_name( user_prefs.oauth_access_token_key.key().name()) oauth_access_token_query.delete() user_prefs.oauth_access_token_key = None user_prefs.put() keywords = [] if user_prefs is not None: search_keywords_query = SearchKeywords.all() search_keywords_query.filter('user_id =', user_prefs.key()) search_keywords = search_keywords_query.fetch(30) for search_keyword in search_keywords: keywords.append({ 'id': search_keyword.key().id(), 'keyword': search_keyword.keyword }) template_values = { 'nickname': user.nickname(), 'user_prefs': user_prefs, 'keywords': keywords } path = os.path.join(os.path.dirname(__file__), 'templates/config.html') html = template.render(path, template_values) self.response.out.write(CSRFFilter(self, user).insertCSRFToken(html))
def get(self): keyword_id = self.request.get('keyword_id') search_keywords = SearchKeywords.get_by_id(int(keyword_id)) if search_keywords is not None: logging.info('Feed: %s' % search_keywords.keyword) user_prefs = UserPrefs().get_by_id( search_keywords.user_id.key().id()) if user_prefs is not None: logging.info('Keyword owner name: %s' % user_prefs.google_id.nickname()) if user_prefs.oauth_access_token_key is not None: oauth_access_token = OAuthAccessToken.get_by_key_name( user_prefs.oauth_access_token_key.key().name()) if oauth_access_token is not None: logging.info( 'Twitter Account: %s' % user_prefs.oauth_access_token_key.specifier) try: client = OAuthClient('twitter', self) client.token = oauth_access_token results = client.get( '/search', q=search_keywords.keyword.encode('utf-8')) for tweet_id in results['statuses']: try: logging.info( 'Add taskqueue. tweet_id: %s' % tweet_id) taskqueue.add(url='/feed/tweet', method='GET', params={ 'tweet_id': tweet_id, 'keyword_id': keyword_id }) except (taskqueue.Error, apiproxy_errors.Error): logging.exception( 'Failed to add taskqueue.') except Exception, error: logging.error('Cache Failed: %s' % error)
def get(self): tweet_id = self.request.get('tweet_id') keyword_id = self.request.get('keyword_id') search_keywords = SearchKeywords.get_by_id(int(keyword_id)) if search_keywords is not None: logging.info('Feed: %s' % search_keywords.keyword) user_prefs = UserPrefs().get_by_id(search_keywords.user_id.key().id()) if user_prefs is not None: logging.info('Keyword owner name: %s' % user_prefs.google_id.nickname()) if user_prefs.oauth_access_token_key is not None: oauth_access_token = OAuthAccessToken.get_by_key_name(user_prefs.oauth_access_token_key.key().name()) if oauth_access_token is not None: logging.info('Twitter Account: %s' % user_prefs.oauth_access_token_key.specifier) try: search_cache_query = SearchCache().all() search_cache_query.filter('tweet_id =', int(tweet_id)) search_cache_query.filter('keyword_key =', search_keywords.key()) if search_cache_query.get() is None: client = OAuthClient('twitter', self) client.token = oauth_access_token tweet = client.get('/statuses/show/%d' % int(tweet_id)) logging.info('Tweet: (%s) %s' % (tweet['user']['name'], tweet['text'])) logging.info(tweet['created_at']) search_cache = SearchCache() search_cache.tweet_id = int(tweet_id) search_cache.keyword_key = search_keywords.key() search_cache.name = tweet['user']['name'] search_cache.screen_name = tweet['user']['screen_name'] search_cache.profile_image_url = tweet['user']['profile_image_url'] search_cache.text = tweet['text'] search_cache.location = tweet['user']['location'] search_cache.time_zone = tweet['user']['time_zone'] search_cache.tweeted_at = datetime.datetime.strptime(tweet['created_at'], "%a %b %d %H:%M:%S +0000 %Y") search_cache.put() else: logging.info('Skip. tweet_id: %d' % int(tweet_id)) except Exception, error: logging.error('Cache Failed: %s' % error)
def get(self): from csrffilter import CSRFFilter user = users.get_current_user() user_prefs_query = UserPrefs.all() user_prefs_query.filter("google_id =", user) user_prefs = user_prefs_query.get() mode = self.request.get('mode') if mode == 'add_twitter_account': self.redirect('/oauth/twitter/login') elif mode == 'delete_twitter_account': if user_prefs.oauth_access_token_key: oauth_access_token_query = OAuthAccessToken.get_by_key_name(user_prefs.oauth_access_token_key.key().name()) oauth_access_token_query.delete() user_prefs.oauth_access_token_key = None user_prefs.put() keywords = [] if user_prefs is not None: search_keywords_query = SearchKeywords.all() search_keywords_query.filter('user_id =', user_prefs.key()) search_keywords = search_keywords_query.fetch(30) for search_keyword in search_keywords: keywords.append({'id': search_keyword.key().id(), 'keyword': search_keyword.keyword}) template_values = { 'nickname' : user.nickname(), 'user_prefs': user_prefs, 'keywords': keywords } path = os.path.join(os.path.dirname(__file__), 'templates/config.html') html = template.render(path, template_values) self.response.out.write(CSRFFilter(self, user).insertCSRFToken(html))
def get(self): tweet_id = self.request.get('tweet_id') keyword_id = self.request.get('keyword_id') search_keywords = SearchKeywords.get_by_id(int(keyword_id)) if search_keywords is not None: logging.info('Feed: %s' % search_keywords.keyword) user_prefs = UserPrefs().get_by_id( search_keywords.user_id.key().id()) if user_prefs is not None: logging.info('Keyword owner name: %s' % user_prefs.google_id.nickname()) if user_prefs.oauth_access_token_key is not None: oauth_access_token = OAuthAccessToken.get_by_key_name( user_prefs.oauth_access_token_key.key().name()) if oauth_access_token is not None: logging.info( 'Twitter Account: %s' % user_prefs.oauth_access_token_key.specifier) try: search_cache_query = SearchCache().all() search_cache_query.filter('tweet_id =', int(tweet_id)) search_cache_query.filter('keyword_key =', search_keywords.key()) if search_cache_query.get() is None: client = OAuthClient('twitter', self) client.token = oauth_access_token tweet = client.get('/statuses/show/%d' % int(tweet_id)) logging.info( 'Tweet: (%s) %s' % (tweet['user']['name'], tweet['text'])) logging.info(tweet['created_at']) search_cache = SearchCache() search_cache.tweet_id = int(tweet_id) search_cache.keyword_key = search_keywords.key( ) search_cache.name = tweet['user']['name'] search_cache.screen_name = tweet['user'][ 'screen_name'] search_cache.profile_image_url = tweet['user'][ 'profile_image_url'] search_cache.text = tweet['text'] search_cache.location = tweet['user'][ 'location'] search_cache.time_zone = tweet['user'][ 'time_zone'] search_cache.tweeted_at = datetime.datetime.strptime( tweet['created_at'], "%a %b %d %H:%M:%S +0000 %Y") search_cache.put() else: logging.info('Skip. tweet_id: %d' % int(tweet_id)) except Exception, error: logging.error('Cache Failed: %s' % error)