示例#1
0
    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))
示例#2
0
    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()
示例#4
0
    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()
示例#5
0
    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!')
示例#6
0
    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!')
示例#7
0
    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))
示例#10
0
 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)