예제 #1
0
def boredRecommend(user_id, num=DEF_REC_NUM):
    recommendations = gae_cache.cache_get(user_id + 'boredrmd')
    if recommendations:
        return recommendations

    expertise = ExUserInfo.gql('WHERE user_id = :1', user_id).get().expertise
    diff_expertise = set(data_models.EXPERTISES.keys())
    diff_expertise.difference_update(set(expertise))

    if not diff_expertise:
        return None
    query1 = URLStorage.gql('WHERE topic IN :1', list(diff_expertise))
    #    url_recs = [item for item in query1]
    #    logging.info('number of bored rmds: ' + str(len(url_recs)))
    #    li = [random.randint(0, len(url_recs)-1) for i in range(2*num)]
    query2 = Rating.gql('WHERE user_id = :1', user_id)
    rated = [item.url for item in query2]
    recommendations = []
    for url_rec in query1:
        if url_rec.url not in rated:
            recommendations.append(url_rec)
            if len(recommendations) >= num:
                break

    gae_cache.cache_put(user_id + 'boredrmd', recommendations)
    return recommendations
예제 #2
0
def boredRecommend(user_id, num = DEF_REC_NUM):
    recommendations = gae_cache.cache_get(user_id + 'boredrmd')
    if recommendations:
        return recommendations
    
    expertise = ExUserInfo.gql('WHERE user_id = :1', user_id).get().expertise
    diff_expertise = set(data_models.EXPERTISES.keys())
    diff_expertise.difference_update(set(expertise))
    
    if not diff_expertise:
        return None
    query1 = URLStorage.gql('WHERE topic IN :1', list(diff_expertise))
#    url_recs = [item for item in query1]
#    logging.info('number of bored rmds: ' + str(len(url_recs)))
#    li = [random.randint(0, len(url_recs)-1) for i in range(2*num)]
    query2 = Rating.gql('WHERE user_id = :1', user_id)
    rated = [item.url for item in query2]
    recommendations = []
    for url_rec in query1:
        if url_rec.url not in rated:
            recommendations.append(url_rec)
            if len(recommendations) >= num:
                break
    
    gae_cache.cache_put(user_id+'boredrmd', recommendations)
    return recommendations
예제 #3
0
    def post(self):
        cw_profile = ExUserInfo.gql('WHERE user_id = :1', self.user.user_id).get()
        self.user.firstname = self.request.get('firstname').capitalize()
        self.user.lastname = self.request.get('lastname').capitalize()
        self.user.realname = self.user.firstname + ' ' + self.user.lastname
#
#        
#        cw_profile.email = self.request.get('email')
        cw_profile.website = self.request.get('website')
        cw_profile.location = self.request.get('location')
        cw_profile.expertise = self.request.get_all('expertise')
        
        photo = self.request.get('photo')
        if photo:
            if conf.WEB_SERVER == 'http://credibleweb.appspot.com':
                photo = images.resize(photo, 100, 100)
            cw_profile.photo = db.Blob(photo)
            self.user.picture = '/img?img_id=%s' % cw_profile.key()
        
        self.user.put()
        cw_profile.put()
        
#       retrieve social network profiles
        fb_profile = None
        if self.user.facebook_id:
            fb_profile = FacebookProfile.gql('WHERE facebook_id = :1', self.user.facebook_id).get()
        tw_profile = None
        if self.user.twitter_id:
            tw_profile = TwitterProfile.gql('WHERE twitter_id = :1', self.user.twitter_id).get()
        self.render('profile.html',
                    cw_profile = cw_profile,
                    fb_profile = fb_profile,
                    tw_profile = tw_profile,
                    success = True)
예제 #4
0
 def get(self):
     cw_profile = ExUserInfo.gql('WHERE user_id = :1', self.user.user_id).get()
     fb_profile = None
     if self.user.facebook_id:
         fb_profile = FacebookProfile.gql('WHERE facebook_id = :1', self.user.facebook_id).get()
     tw_profile = None
     if self.user.twitter_id:
         tw_profile = TwitterProfile.gql('WHERE twitter_id = :1', self.user.twitter_id).get()
     self.render('profile.html',
                 cw_profile = cw_profile,
                 fb_profile = fb_profile,
                 tw_profile = tw_profile,
                 success = False)
예제 #5
0
 def get(self, id):
     m_user =  User.gql('WHERE user_id = :1', id).get()
     cw_profile = ExUserInfo.gql('WHERE user_id = :1', m_user.user_id).get()
     fb_profile = None
     if m_user.facebook_id:
         fb_profile = FacebookProfile.gql('WHERE facebook_id = :1', m_user.facebook_id).get()
     tw_profile = None
     if m_user.twitter_id:
         tw_profile = TwitterProfile.gql('WHERE twitter_id = :1', m_user.twitter_id).get()
     self.render('user_profile.html',
                 user = m_user,
                 cw_profile = cw_profile,
                 fb_profile = fb_profile,
                 tw_profile = tw_profile,
                 is_friend = self.is_friend(id))
예제 #6
0
 def get(self):
     cw_profile = ExUserInfo.gql('WHERE user_id = :1',
                                 self.user.user_id).get()
     fb_profile = None
     if self.user.facebook_id:
         fb_profile = FacebookProfile.gql('WHERE facebook_id = :1',
                                          self.user.facebook_id).get()
     tw_profile = None
     if self.user.twitter_id:
         tw_profile = TwitterProfile.gql('WHERE twitter_id = :1',
                                         self.user.twitter_id).get()
     self.render('profile.html',
                 cw_profile=cw_profile,
                 fb_profile=fb_profile,
                 tw_profile=tw_profile,
                 success=False)
예제 #7
0
 def get(self, id):
     m_user = User.gql('WHERE user_id = :1', id).get()
     cw_profile = ExUserInfo.gql('WHERE user_id = :1', m_user.user_id).get()
     fb_profile = None
     if m_user.facebook_id:
         fb_profile = FacebookProfile.gql('WHERE facebook_id = :1',
                                          m_user.facebook_id).get()
     tw_profile = None
     if m_user.twitter_id:
         tw_profile = TwitterProfile.gql('WHERE twitter_id = :1',
                                         m_user.twitter_id).get()
     self.render('user_profile.html',
                 user=m_user,
                 cw_profile=cw_profile,
                 fb_profile=fb_profile,
                 tw_profile=tw_profile,
                 is_friend=self.is_friend(id))
예제 #8
0
    def post(self):
        cw_profile = ExUserInfo.gql('WHERE user_id = :1',
                                    self.user.user_id).get()
        self.user.firstname = self.request.get('firstname').capitalize()
        self.user.lastname = self.request.get('lastname').capitalize()
        self.user.realname = self.user.firstname + ' ' + self.user.lastname
        #
        #
        #        cw_profile.email = self.request.get('email')
        cw_profile.website = self.request.get('website')
        cw_profile.location = self.request.get('location')
        cw_profile.expertise = self.request.get_all('expertise')

        photo = self.request.get('photo')
        if photo:
            if conf.WEB_SERVER == 'http://credibleweb.appspot.com':
                photo = images.resize(photo, 100, 100)
            cw_profile.photo = db.Blob(photo)
            self.user.picture = '/img?img_id=%s' % cw_profile.key()

        self.user.put()
        cw_profile.put()

        #       retrieve social network profiles
        fb_profile = None
        if self.user.facebook_id:
            fb_profile = FacebookProfile.gql('WHERE facebook_id = :1',
                                             self.user.facebook_id).get()
        tw_profile = None
        if self.user.twitter_id:
            tw_profile = TwitterProfile.gql('WHERE twitter_id = :1',
                                            self.user.twitter_id).get()
        self.render('profile.html',
                    cw_profile=cw_profile,
                    fb_profile=fb_profile,
                    tw_profile=tw_profile,
                    success=True)
예제 #9
0
def expertiseRecommend(user_id, num=DEF_REC_NUM):
    recommendations = gae_cache.cache_get(user_id + 'expertisermd')
    if recommendations:
        return recommendations

    expertise = ExUserInfo.gql('WHERE user_id = :1', user_id).get().expertise
    if not expertise:
        return None
    query1 = URLStorage.gql('WHERE topic IN :1', expertise)
    #    url_keys = [item for item in query1.run(keys_only=True)]
    #    logging.info('number of expertise rmds: ' + str(len(url_keys)))
    #    li = [random.randint(0, len(url_keys)-1) for i in range(2*num)]
    query2 = db.GqlQuery('SELECT url from Rating WHERE user_id = :1', user_id)
    rated = [item.url for item in query2]
    recommendations = []
    for url_rec in query1:
        #        url_rec = URLStorage.get(url_keys[i])
        if url_rec.url not in rated:
            recommendations.append(url_rec)
            if len(recommendations) >= num:
                break

    gae_cache.cache_put(user_id + 'expertisermd', recommendations)
    return recommendations
예제 #10
0
def expertiseRecommend(user_id, num = DEF_REC_NUM):
    recommendations = gae_cache.cache_get(user_id + 'expertisermd')
    if recommendations:
        return recommendations
    
    expertise = ExUserInfo.gql('WHERE user_id = :1', user_id).get().expertise
    if not expertise:
        return None
    query1 = URLStorage.gql('WHERE topic IN :1', expertise)
#    url_keys = [item for item in query1.run(keys_only=True)]
#    logging.info('number of expertise rmds: ' + str(len(url_keys)))
#    li = [random.randint(0, len(url_keys)-1) for i in range(2*num)]
    query2 = db.GqlQuery('SELECT url from Rating WHERE user_id = :1', user_id)
    rated = [item.url for item in query2]
    recommendations = []
    for url_rec in query1:
#        url_rec = URLStorage.get(url_keys[i])
        if url_rec.url not in rated:
            recommendations.append(url_rec)
            if len(recommendations) >= num:
                break
            
    gae_cache.cache_put(user_id+'expertisermd', recommendations)
    return recommendations
예제 #11
0
 def get(self):
     cw_profile = ExUserInfo.gql('WHERE user_id = :1',
                                 self.user.user_id).get()
     self.render('edit_cwprofile.html', cw_profile=cw_profile)
예제 #12
0
 def get(self):
     cw_profile = ExUserInfo.gql('WHERE user_id = :1', self.user.user_id).get()
     self.render('edit_cwprofile.html',
                 cw_profile = cw_profile)