def get(self): self.response.headers['Content-Type'] = 'application/json' user_id = self.request.get('user') stream_type = self.request.get('type') if stream_type == 'own': streams = Stream.query(Stream.owner == user_id) else: user = ConnexusUser.from_user_id(user_id) streams = user.get_subscribed_streams() stream_list = [] if streams is not None: for stream in streams: if stream is not None: date = stream.date date_string = date.strftime('%m/%d/%Y') stream_list.append({ 'id': stream.key.id(), 'name': stream.name, 'cover_url': stream.cover_url, 'date': date_string, 'photo_count': len(stream.photos), 'all_time_views': stream.views }) self.response.out.write(json.dumps(stream_list))
def post(self): user = users.get_current_user() user = ConnexusUser.from_user_id(user.user_id()) stream_delete = self.request.get_all('delete-stream') if len(stream_delete) > 0: delete_api_uri = self.uri_for('api-delete-stream', _full=True) result = urlfetch.fetch( url=delete_api_uri, payload=json.dumps(stream_delete), method=urlfetch.POST, headers={'Content-Type': 'application/json'}) streams_unsubscribe = self.request.get_all('unsubscribe-stream') if len(streams_unsubscribe) > 0: unsubscribe_url = self.uri_for('api-unsubscribe-stream', _full=True) subscription_data = { 'user_id': str(user.key.id()), 'stream_ids': streams_unsubscribe } result = urlfetch.fetch( url=unsubscribe_url, payload=json.dumps(subscription_data), method=urlfetch.POST, headers={'Content-Type': 'application/json'}) self.redirect(self.uri_for('manage'))
def post(self): json_string = self.request.body dict_object = json.loads(json_string) user_id = dict_object['user_id'] user_email = dict_object['user_email'] user_result = ConnexusUser.from_user_id(user_id) if not user_result: user = ConnexusUser(user_id=user_id, user_email=user_email, report=0, streams_subscribed=[]) user_key = user.put()
def post(self): json_string = self.request.body dict_object = json.loads(json_string) user_id = dict_object['user_id'] report_rate = int( dict_object['report_rate'] ) user_result = ConnexusUser.query(ConnexusUser.user_id == user_id).fetch() for user in user_result: user.report = report_rate user.put()
def post(self): json_string = self.request.body dict_object = json.loads(json_string) user_id = long(dict_object['user_id']) stream_id = long(dict_object['stream_id']) user = ConnexusUser.get_by_id(user_id) stream = Stream.get_by_id(stream_id) if user and stream.key not in user.streams_subscribed: user.streams_subscribed.append(stream.key) user.put() else: logging.error('User not found!')
def post(self): json_string = self.request.body dict_object = json.loads(json_string) user_id = long(dict_object['user_id']) stream_ids = dict_object['stream_ids'] stream_ids = [long(stream_id) for stream_id in stream_ids] user = ConnexusUser.get_by_id(user_id) if user: user.streams_subscribed = filter( lambda s: s.id() not in stream_ids, user.streams_subscribed) user.put() else: logging.error('User not found!')
def get(self): self.response.headers['Content-Type'] = 'application/json' rate = self.request.get('rate') report_rate = int(rate) email_address = "*****@*****.**" email_subject = "This is your requested digest for connexus" subscribers = ConnexusUser.query( ConnexusUser.report == report_rate).fetch() subs_emails = [] for subscriber in subscribers: subs_emails.append(subscriber.user_email) trending_api_uri = self.uri_for('api-trending', _full=True) result = urlfetch.fetch(url=trending_api_uri) if result.status_code == 200: trending_streams = json.loads(result.content) message = "These are the trending streams in the last hour:" html_message = "<h1>These are the trending streams in the last hour:</h1>" for trending_stream in trending_streams: message += "\n {0} ({1} views)".format( trending_stream['name'], trending_stream['views_list_count']) html_message += "<br> {0} (<b>{1}</b> views)".format( trending_stream['name'], trending_stream['views_list_count']) email_content = message html_email_content = html_message self.send_report(email_address, subs_emails, email_subject, email_content, html_email_content) res = {"msg": "msgs sent", "success": True} self.response.out.write(json.dumps(res))
def get(self): user = users.get_current_user() report_rate = 0 #TODO : Fetch the actual report rate for display purposes trending_api_uri = self.uri_for('api-trending', _full=True) result = urlfetch.fetch(url=trending_api_uri) if result.status_code == 200: logout_url = users.create_logout_url('/') user = ConnexusUser.from_user_id(user.user_id()) report_rate = user.get_report_rate() j = json.loads(result.content) page_data = { 'streams': j, 'user': user, 'report_rate': str(report_rate), 'logout_url': logout_url, 'page_name': 'trending' } template = JINJA_ENVIRONMENT.get_template('trending.html') self.response.write(template.render(page_data))
def post(self): user = users.get_current_user() user = ConnexusUser.from_user_id(user.user_id()) stream_id = self.request.get('stream_id') subscribe_api_uri = self.uri_for('api-unsubscribe-stream', _full=True) subscription_data = { 'user_id': str(user.key.id()), 'stream_ids': [stream_id] } result = urlfetch.fetch(url=subscribe_api_uri, payload=json.dumps(subscription_data), method=urlfetch.POST, headers={'Content-Type': 'application/json'}) if result.status_code == 200: self.redirect('{}?id={}'.format(self.uri_for('view', _full=True), stream_id)) else: logging.error( 'Impossible to unsubscribe. User: {}, Stream: {}'.format( user, stream_id))
def is_user_subscribed(self, stream_id): user = users.get_current_user() stream = Stream.get_by_id(stream_id) return ConnexusUser.is_subscribed(user.user_id(), stream.key)