예제 #1
0
 def get(self):
     user = users.get_current_user()
     url_dict = model.check_if_login(self, user)
     stream_names = []
     for stream in model.search_stream(""):
         stream_names.append(str(stream.stream_name))
     template_input = {
         'stream_names': stream_names
     }
     template_values = model.merge_two_dicts(template_input, url_dict)
     template = JINJA_ENVIRONMENT.get_template('templates/main_login_page.html')
     self.response.write(template.render(template_values))
예제 #2
0
    def get(self):
        user = users.get_current_user()
        url_dict = model.check_if_login(self, user)
        stream_name = self.request.get('stream')
        loaded_photo = self.request.get('loaded', default_value='9')

        photos = model.get_photo_by_stream(stream_name)

        # adding fake gps information
        model.shuffle_stream_geo_info(stream_name)
        time.sleep(0.1)

        photos = sorted(photos, key=lambda x: x.last_update, reverse=True)

        current_date = datetime.datetime.utcnow().date()
        a_year_before = current_date + relativedelta(years=-1)
        more = loaded_photo < len(photos)
        photo_key = []
        for i in range(min(loaded_photo, len(photos))):
            photo_key.append(photos[i].blob_key)

        if user:
            is_owner = model.get_stream_by_name(stream_name).owner == model.get_user(user.user_id()).key
        else:
            is_owner = False
        model.add_view_counts(stream_name)

        stream_names = []
        for stream in model.search_stream(""):
            stream_names.append(str(stream.stream_name))

        upload_url = blobstore.create_upload_url('/upload_image')
        template_input = {
            'is_owner': is_owner,
            'img_ids': photo_key,
            'upload_url': upload_url,
            'more': more,
            'stream_name': stream_name,
            'loaded': loaded_photo,
            'stream_names': stream_names,
            'current_date': current_date.strftime("%Y, %m, %d"),
            'a_year_before': a_year_before.strftime("%Y, %m, %d")
        }

        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/view_one_page.html')
        self.response.write(template.render(template_values))
예제 #3
0
    def get(self):
        user = users.get_current_user()
        print(user.user_id)
        url_dict = model.check_if_login(self, user)
        streams = model.get_stream_list_by_user(user.user_id())
        sub_streams = model.get_subscribed_stream(user.user_id())
        stream_names = []
        for stream in model.search_stream(""):
            stream_names.append(str(stream.stream_name))

        template_input = {
            'streams': streams,
            'sub_streams': sub_streams,
            'stream_names': stream_names
        }
        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/manage_page.html')
        self.response.write(template.render(template_values))
예제 #4
0
    def get(self):
        user = users.get_current_user()
        url_dict = model.check_if_login(self, user)
        stream_name = self.request.get('stream')
        photo = self.request.get('photo')

        streams = model.search_stream("")
        stream_names = []
        for stream in streams:
            stream_names.append(str(stream.stream_name))
        template_input = {
            'error_message': 'stream name: ' + stream_name + ' is already occupied!',
            'stream_names': stream_names
        }
        if photo:
            template_input['error_message'] = 'photo ' + photo
        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/error_page.html')
        self.response.write(template.render(template_values))
예제 #5
0
    def get(self):
        user = users.get_current_user()
        url_dict = model.check_if_login(self, user)
        keyword = self.request.get('keyword')

        if keyword:
            stream_found = model.search_stream(keyword)
        else:
            stream_found = []

        streams = model.search_stream("")
        stream_names = []
        for stream in streams:
            stream_names.append(str(stream.stream_name))
        template_input = {
            'stream_list': stream_found,
            'stream_names': stream_names
        }
        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/search_page.html')
        self.response.write(template.render(template_values))
예제 #6
0
    def get(self):
        user = users.get_current_user()
        url_dict = model.check_if_login(self, user)
        stream_name = self.request.get('stream')

        photos = model.get_photo_by_stream(stream_name)
        geo_photo = photos

        # adding fake gps information
        model.shuffle_stream_geo_info(stream_name)
        time.sleep(0.1)

        current_date = datetime.datetime.utcnow().date()
        a_year_before = current_date + relativedelta(years=-1)

        if user:
            is_owner = model.get_stream_by_name(stream_name).owner == model.get_user(user.user_id()).key
        else:
            is_owner = False

        geo_info = []
        for photo in geo_photo:
            temp = {'geo_info': (photo.geo_info.lat, photo.geo_info.lon),
                    'last_update': photo.last_update.strftime("%Y, %m, %d"),
                    'key_url': photo.key.urlsafe(),
                    'key': str(photo.blob_key)}
            geo_info.append(temp)

        model.add_view_counts(stream_name)
        template_input = {
            'is_owner': is_owner,
            'stream_name': stream_name,
            'geo_photo': json.dumps(geo_info),
            'current_date': current_date.strftime("%Y, %m, %d"),
            'a_year_before': a_year_before.strftime("%Y, %m, %d")
        }
        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/geo_view.html')
        self.response.write(template.render(template_values))
예제 #7
0
    def get(self):
        user = users.get_current_user()
        url_dict = model.check_if_login(self, user)

        # model.update_views_in_past_hour() will run by cron.yaml every 5 min

        streams = model.get_all_recent_stream()
        sorted_streams = sorted(streams, key=lambda x: x.views_in_last_hour, reverse=True)
        num_of_streams = len(sorted_streams)
        if num_of_streams >= 3:
            num_of_streams = 3
            sorted_streams = sorted_streams[:3]

        streams = model.search_stream("")
        stream_names = []
        for stream in streams:
            stream_names.append(str(stream.stream_name))

        if user:
            trending_setting = model.get_trending_setting(user.user_id())
            logged_in = True
        else:
            trending_setting = "no"
            logged_in = False

        template_input = {
            'logged_in': logged_in,
            'trending_setting': trending_setting,
            'trending_streams': sorted_streams,
            'num_of_streams': num_of_streams,
            'stream_names': stream_names

        }
        template_values = model.merge_two_dicts(template_input, url_dict)
        template = JINJA_ENVIRONMENT.get_template('templates/trending_page.html')
        self.response.write(template.render(template_values))