def feed(request): current = 'feed' title = u'%s / 动态' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.FEED) recently_timestamp = feedAction.get_recently_timestamp( request.user.id, AttrKey.RECENTLY_TIME_FEED) raw_watch_users = feedAction.get_watch_users(request.user.id, 0, 100) watch_user_ids = [int(x[0]) for x in raw_watch_users] watch_user_ids.append(request.user.id) raw_watch_repos = feedAction.get_watch_repos(request.user.id, 0, 100) watch_repo_ids = [int(x[0]) for x in raw_watch_repos] feeds_as_json = multi_feeds_as_json(request, feedAction, watch_user_ids, watch_repo_ids) feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_FEED) response_dictionary = { 'current': current, 'title': title, 'feeds_as_json': feeds_as_json, 'recently_timestamp': recently_timestamp } return render_to_response('user/feed.html', response_dictionary, context_instance=RequestContext(request))
def get_common_user_dict(request, gsuser, gsuserprofile): feedAction = FeedAction() raw_watch_users = feedAction.get_watch_users(gsuser.id, 0, 10) raw_bewatch_users = feedAction.get_bewatch_users(gsuser.id, 0, 10) watch_user_ids = [int(x[0]) for x in raw_watch_users] bewatch_user_ids = [int(x[0]) for x in raw_bewatch_users] watch_users_map = GsuserManager.map_users(watch_user_ids) bewatch_users_map = GsuserManager.map_users(bewatch_user_ids) watch_users = [ watch_users_map[x] for x in watch_user_ids if x in watch_users_map ] bewatch_users = [ bewatch_users_map[x] for x in bewatch_user_ids if x in bewatch_users_map ] raw_recommends = GsuserManager.list_recommend_by_userid(gsuser.id, 0, 20) recommends = __conver_to_recommends_vo(raw_recommends) is_watched_user = False if request.user.is_authenticated(): is_watched_user = RepoManager.is_watched_user(request.user.id, gsuser.id) return { 'gsuser': gsuser, 'gsuserprofile': gsuserprofile, 'watch_users': watch_users, 'bewatch_users': bewatch_users, 'recommends': recommends, 'is_watched_user': is_watched_user, 'show_common': True }
def watch_user(request, user_name): title = u'%s / 关注的用户' % user_name gsuser = GsuserManager.get_user_by_name(user_name) if gsuser is None: raise Http404 gsuserprofile = GsuserManager.get_userprofile_by_id(gsuser.id) feedAction = FeedAction() raw_watch_users = feedAction.get_watch_users(gsuser.id, 0, 100) watch_user_ids = [int(x[0]) for x in raw_watch_users] watch_users_map = GsuserManager.map_users(watch_user_ids) watch_users = [watch_users_map[x] for x in watch_user_ids if x in watch_users_map] raw_bewatch_users = feedAction.get_bewatch_users(gsuser.id, 0, 100) bewatch_user_ids = [int(x[0]) for x in raw_bewatch_users] bewatch_users_map = GsuserManager.map_users(bewatch_user_ids) bewatch_users = [bewatch_users_map[x] for x in bewatch_user_ids if x in bewatch_users_map] # fixed on detect need_fix = False if len(watch_users) != gsuserprofile.watch: gsuserprofile.watch = len(watch_users) need_fix = True if len(bewatch_users) < 100 and len(bewatch_users) != gsuserprofile.be_watched: gsuserprofile.be_watched = len(bewatch_users) need_fix = True if need_fix: gsuserprofile.save() response_dictionary = {'mainnav': 'user', 'title': title, 'watch_users': watch_users, 'bewatch_users': bewatch_users} response_dictionary.update(get_common_user_dict(request, gsuser, gsuserprofile)) return render_to_response('user/watch_user.html', response_dictionary, context_instance=RequestContext(request))
def get_common_user_dict(request, gsuser, gsuserprofile): feedAction = FeedAction() raw_watch_users = feedAction.get_watch_users(gsuser.id, 0, 10) raw_bewatch_users = feedAction.get_bewatch_users(gsuser.id, 0, 10) watch_user_ids = [int(x[0]) for x in raw_watch_users] bewatch_user_ids = [int(x[0]) for x in raw_bewatch_users] watch_users_map = GsuserManager.map_users(watch_user_ids) bewatch_users_map = GsuserManager.map_users(bewatch_user_ids) watch_users = [watch_users_map[x] for x in watch_user_ids if x in watch_users_map] bewatch_users = [bewatch_users_map[x] for x in bewatch_user_ids if x in bewatch_users_map] raw_recommends = GsuserManager.list_recommend_by_userid(gsuser.id, 0, 20) recommends = __conver_to_recommends_vo(raw_recommends) is_watched_user = False if request.user.is_authenticated(): is_watched_user = RepoManager.is_watched_user(request.user.id, gsuser.id) return {'gsuser': gsuser, 'gsuserprofile': gsuserprofile, 'watch_users': watch_users, 'bewatch_users': bewatch_users, 'recommends': recommends, 'is_watched_user': is_watched_user, 'show_common': True}
def watch_user(request, user_name): title = u'%s / 关注的用户' % user_name gsuser = GsuserManager.get_user_by_name(user_name) if gsuser is None: raise Http404 gsuserprofile = GsuserManager.get_userprofile_by_id(gsuser.id) feedAction = FeedAction() raw_watch_users = feedAction.get_watch_users(gsuser.id, 0, 100) watch_user_ids = [int(x[0]) for x in raw_watch_users] watch_users_map = GsuserManager.map_users(watch_user_ids) watch_users = [ watch_users_map[x] for x in watch_user_ids if x in watch_users_map ] raw_bewatch_users = feedAction.get_bewatch_users(gsuser.id, 0, 100) bewatch_user_ids = [int(x[0]) for x in raw_bewatch_users] bewatch_users_map = GsuserManager.map_users(bewatch_user_ids) bewatch_users = [ bewatch_users_map[x] for x in bewatch_user_ids if x in bewatch_users_map ] # fixed on detect need_fix = False if len(watch_users) != gsuserprofile.watch: gsuserprofile.watch = len(watch_users) need_fix = True if len(bewatch_users) < 100 and len( bewatch_users) != gsuserprofile.be_watched: gsuserprofile.be_watched = len(bewatch_users) need_fix = True if need_fix: gsuserprofile.save() response_dictionary = { 'mainnav': 'user', 'title': title, 'watch_users': watch_users, 'bewatch_users': bewatch_users } response_dictionary.update( get_common_user_dict(request, gsuser, gsuserprofile)) return render_to_response('user/watch_user.html', response_dictionary, context_instance=RequestContext(request))