def del_fav_snippet(request, snippet_id): userPref = UserPref.get_or_insert_by_user(users.get_current_user()) if not userPref: return JsonResponse(-1) snippet = Snippet.get_by_id(int(snippet_id)) if not snippet: return JsonResponse(-2) UserFavSnippet.objects.del_fav(userPref, snippet) return JsonResponse(1)
def api_key(request): userPref = UserPref.get_or_insert_by_user(users.get_current_user()) if not userPref.api_key: userPref.api_key = md5.new(md5.new(str(userPref.key())).hexdigest()).hexdigest() userPref.put() return render_to_response( "support/api_key.html", {"API_KEY": userPref.api_key}, context_instance=RequestContext(request) )
def user_favorites(request, user_id): user = UserPref.get_by_id(int(user_id)) if not user: raise Http404 favorites = UserFavSnippet.all().filter('user', user.key()).order('-inserted_at') favorites_count = favorites.count() snippets_count = Snippet.all().filter('author', user.key()).count() rev_tags, rev_languages = get_relevent_lang_tags(user) return object_list(request, queryset=favorites, allow_empty=True, template_name='account/user_favorites.html', extra_context={'CURRENT_USER': user, 'CURRENT_PAGE': 'user_snippets', 'RELEVENT_TAGS': rev_tags, 'RELEVENT_LANGUAGES':rev_languages, 'CURRENT_USER_SNIPPERS_COUNT':snippets_count, 'CURRENT_USER_FAVORITES_COUNT':favorites_count}, paginate_by=settings.SNIPPET_LIST_PAGE_SIZE)
def user_tag_snippets(request, tag_name, tag_id, user_id): user = UserPref.get_by_id(int(user_id)) if not user: raise Http404 tag = Tag.get_by_id(int(tag_id)) if not tag: raise Http404 snippets = Tag.objects.snippets(tag) snippets = snippets.filter('author', user.key()).order('-published_at') snippets_count = Snippet.all().filter('author', user.key()).count() rev_tags, rev_languages = get_relevent_lang_tags(user) return object_list(request, queryset=snippets, allow_empty=True, template_name='account/user_detail.html', extra_context={'CURRENT_USER': user, 'CURRENT_PAGE': 'user_snippets', 'CURRENT_TAG': tag, 'RELEVENT_TAGS': rev_tags, 'RELEVENT_LANGUAGES':rev_languages, 'CURRENT_USER_SNIPPERS_COUNT': snippets_count}, paginate_by=settings.SNIPPET_LIST_PAGE_SIZE)
def process_request(self, request): request.SUPPORT_LANGUAGES = settings.SUPPORT_LANGUAGES request.SITE_NAME = settings.SITE_NAME request.SITE_DOMAIN = settings.SITE_DOMAIN request.IS_ADMIN = is_admin() current_user = users.get_current_user() if current_user: request.current_user = UserPref.get_or_insert_by_user(current_user) return None
def tag_list(request, user_id): user = UserPref.get_by_id(int(user_id)) if not user: raise Http404 tmp_tags = UserTag.all().filter('user', user.key()) tags = [] for ut in tmp_tags: try: tags.append(ut.tag) except: pass return object_list(request, queryset=tags, allow_empty=True, template_name='account/tag_list.html', extra_context={'CURRENT_USER': user, 'CURRENT_PAGE': 'user_tag_list'}, paginate_by=settings.TAG_LIST_PAGE_SIZE)
def language_tags(request, language, user_id): user = UserPref.get_by_id(int(user_id)) if not user: raise Http404 tmp_tags = UserTag.all().filter('user', user.key()) tags = [] for ut in tmp_tags: if language in ut.tag.languages: tags.append(ut.tag) for l, v in settings.SUPPORT_LANGUAGES.items(): if l == language: current_language = {'name':v, 'key':l} break; return object_list(request, queryset=tags, allow_empty=True, template_name='account/tag_list.html', extra_context={'CURRENT_USER': user, 'CURRENT_LANGUAGE': current_language, 'CURRENT_PAGE': 'user_tag_list'}, paginate_by=settings.TAG_LIST_PAGE_SIZE)
def user_language_snippets(request, language, user_id): user = UserPref.get_by_id(int(user_id)) if not user: raise Http404 snippets = Snippet.all().filter('author', user.key()).order('-published_at') snippets_count = snippets.count() snippets = snippets.filter('language', language).order('-published_at') rev_tags, rev_languages = get_relevent_lang_tags(user, language) for l, v in settings.SUPPORT_LANGUAGES.items(): if l == language: current_language = {'name':v, 'key':l} break; return object_list(request, queryset=snippets, allow_empty=True, template_name='account/user_detail.html', extra_context={'CURRENT_USER': user, 'CURRENT_PAGE': 'user_snippets', 'CURRENT_LANGUAGE': current_language, 'RELEVENT_TAGS': rev_tags, 'RELEVENT_LANGUAGES':rev_languages, 'CURRENT_USER_SNIPPERS_COUNT': snippets_count}, paginate_by=settings.SNIPPET_LIST_PAGE_SIZE)
def add_comment(self, message): comment = Comment() comment.content = message comment.author = UserPref.get_or_insert_by_user(users.get_current_user()) comment.subversion = self comment.snippet = self.snippet comment.put() mail.send_mail(sender="*****@*****.**", to=self.author.email, subject=(u'Syd, your snippet %s version r%d has a new comment.'%(self.title, self.key().id())).encode('utf8'), body=(u'''%s write a message under your snippet %s version r%d: %s 点击这个链接回复: %s''' %(comment.author, self.title, self.key().id(), comment.content, settings.SITE_DOMAIN + self.get_absolute_url())).encode('utf8') ) return comment
def add_comment(self, message): comment = Comment() comment.content = message comment.author = UserPref.get_or_insert_by_user(users.get_current_user()) comment.snippet = self comment.subversion = Subversion.all().filter('snippet', self).order('-published_at').get() comment.put() mail.send_mail(sender=settings.DEFAULT_FROM_EMAIL, to=self.author.email, subject=(u'Syd, your snippet %s has a new comment.'%self.title).encode('utf8'), body=(u'''%s write a message under your snippet %s: %s Click here to give response: %s''' %(comment.author, self.title, comment.content, settings.SITE_DOMAIN + self.get_absolute_url())).encode('utf8') ) return comment
def add_snippet(self, title, language, comment, url, tags, code, private, profile_callback=None): snippet = Snippet(title=title, language=language, code=code) if comment: snippet.comment = comment if private: snippet.private = True if url: snippet.url = url snippet.author = UserPref.get_or_insert_by_user(users.get_current_user()) if tags: for t in tags.split(','): t = t.strip() if not t: continue tag = Tag.objects.get_by_name(name=t) if not tag: tag = Tag(name=t) tag.languages.append(language) tag.put() userTag = UserTag(user=snippet.author, tag=tag) else: tag.number += 1 if language not in tag.languages: tag.languages.append(language) tag.put() res = UserTag.gql("WHERE user=:1 and tag=:2", snippet.author, tag) userTag = res.get() if userTag: userTag.number += 1 else: userTag = UserTag(user=snippet.author, tag=tag) userTag.put() snippet.tags.append(tag.key()) snippet.put() subversion = Subversion(snippet=snippet, title=snippet.title, language=snippet.language, code=snippet.code) if comment: subversion.comment = comment if url: subversion.url = url subversion.put() return snippet
def log(self, snippet): visitor = UserPref.get_or_insert_by_user(users.get_current_user()) if not visitor: return None svl = SnippetVisitLog(visitor=visitor, snippet=snippet) svl.put()
def is_fav(self): userPref = UserPref.get_or_insert_by_user(users.get_current_user()) if not userPref: return None return UserFavSnippet.gql("WHERE user=:1 and snippet=:2", userPref, self).count()
def get_object(self, user_ids): if len(user_ids) != 1: raise ObjectDoesNotExist return UserPref.get_by_id(int(user_ids[0]))