Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
    )
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
 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()
Ejemplo n.º 13
0
 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()
Ejemplo n.º 14
0
 def get_object(self, user_ids):
     if len(user_ids) != 1: raise ObjectDoesNotExist
     return UserPref.get_by_id(int(user_ids[0]))