Ejemplo n.º 1
0
def user_chapter(request, object_id, book_id, chapter_id=None):
    if request.GET:
        o = Chapter.objects.get(pk=int(chapter_id))
        result = {
            'id': o.id,
            'content': o.content,
            'abstract': o.abstract,
            'title': o.title,
            'date': o.modifydate.strftime("%b %d,%Y %I:%m %p")
        }
        return ajax.ajax_ok(result)
    else:
        v = ChapterValidator(request, book_id, chapter_id)
        if request.POST:
            flag, obj = v.validate_and_save(request)
            if flag:
                return ajax.ajax_ok(message=_("Success!"))
            return ajax.ajax_fail(obj, message=_("There are some errors!"))
        else:
            user = User.objects.get(pk=int(object_id))
            book = Book.objects.get(pk=int(book_id))
            chapter = Chapter.objects.get(pk=int(chapter_id))
            return render_template(request, 'users/user_chapter.html', {
                'person': user,
                'book': book,
                'chapter': chapter
            })
Ejemplo n.º 2
0
def monitor(request):
    s = []
    objs = Book.objects.filter(status__in=(0, 1))
    for o in objs:
        s.append({'id':o.id, 'title':o.name, 'url':o.url, 'finished':o.finished*100/o.count, 'status':o.status})
    return ajax_ok(s)
    
Ejemplo n.º 3
0
def user_login(request):
    v = LoginValidator()
    f, result = v.validate(request)
    if not f:
        return ajax.ajax_fail(result)
    
    username = result['username']
    password = result['password']
    user = authenticate(username=username, password=password)
    if user is None:
        message = {'_':_('Authentication is failed!')}
        if '@' in username:
            # Mistakenly entered e-mail address instead of username? Look it up.
            try:
                user = User.objects.get(email=username)
            except User.DoesNotExist:
                message['username'] = _("Usernames cannot contain the '@' character.")
            else:
                message['username'] = _("Your e-mail address is not your username. Try '%s' instead.") % user.username
        return ajax.ajax_fail(message)
    
    # The user data is correct; log in the user in and continue.
    else:
        if user.is_staff:
            login(request, user)
            user.last_login = datetime.datetime.now()
            user.save()
        return ajax.ajax_ok(True, next=request.POST.get('next', setting('URLROOT') + '/'))
Ejemplo n.º 4
0
def user_book_edit(request, object_id, book_id=None):
    user = request.user
    v = BookValidator(request, book_id)
    flag, obj = v.validate_and_save(request)
    if flag:
        return ajax.ajax_ok(message=_('Success!'))
    return ajax.ajax_fail(obj, message=_('Fail!'))
Ejemplo n.º 5
0
def user_books_delete(request, object_id):
    user = request.user
    ids = request.POST.getlist('book_id')
    if ids:
        for book in Book.objects.filter(id__in=ids):
            book.delete()
    return ajax.ajax_ok(_('Success!'))
Ejemplo n.º 6
0
def user_books_delete(request, object_id):
    user = request.user
    ids = request.POST.getlist('book_id')
    if ids:
        for book in Book.objects.filter(id__in=ids):
            book.delete()
    return ajax.ajax_ok(_('Success!'))
Ejemplo n.º 7
0
def user_book_edit(request, object_id, book_id=None):
    user = request.user
    v = BookValidator(request, book_id)
    flag , obj = v.validate_and_save(request)
    if flag:
        return ajax.ajax_ok(message=_('Success!'))
    return ajax.ajax_fail(obj,message=_('Fail!'))
Ejemplo n.º 8
0
def user_chapters_delete(request, object_id, book_id):
    ids = request.POST.getlist('chapter_id')
    if ids:
        for chapter in Chapter.objects.filter(id__in=ids):
            chapter.delete()
    return ajax.ajax_ok(next=setting('URLROOT') + '/user/%s/book/%s/' %
                        (object_id, book_id))
Ejemplo n.º 9
0
def user_chapter_comments(request, object_id, book_id, chapter_id):
    chapter = Chapter.objects.get(pk=int(chapter_id))
    objs = chapter.comment_set.all().order_by('comment_num', 'createtime')
    result = []
    for obj in objs:
        _get_comment_data(result, obj)
    
    return ajax.ajax_ok(result)
Ejemplo n.º 10
0
def user_chapter_comments(request, object_id, book_id, chapter_id):
    chapter = Chapter.objects.get(pk=int(chapter_id))
    objs = chapter.comment_set.all().order_by('comment_num', 'createtime')
    result = []
    for obj in objs:
        _get_comment_data(result, obj)

    return ajax.ajax_ok(result)
Ejemplo n.º 11
0
def chapter_num_comments(request, book_id, chapter_num, comment_num):
    book = Book.objects.get(pk=int(book_id))
    chapter = Chapter.objects.get(num=chapter_num, book=book)
    objs = chapter.comment_set.filter(comment_num=comment_num)
    result = []
    for obj in objs:
        _get_comment_data(result, obj)

    return ajax.ajax_ok(result)
Ejemplo n.º 12
0
def booklist(request):
    s = []
    pagenum = 60
    objs = Book.objects.all()
    page = Page(objs, request, paginate_by=pagenum)
    for o in page.object_list:
        s.append({'id':o.id, 'title':o.name, 'url':o.url, 'finished':o.finished*100/o.count})
    pages = (objs.count() + pagenum - 1) / pagenum
    cur = int(request.GET.get('page', 1))
    return ajax_ok((cur, pages, s))
Ejemplo n.º 13
0
def search(request):
    word = request.POST.get('search', '')
    s = []
    if word:
        objs = Book.objects.filter(name__icontains=word)
    else:
        objs = Book.objects.all()
    for o in objs:
        s.append({'id':o.id, 'title':o.name, 'url':o.url, 'finished':o.finished*100/o.count})
    return ajax_ok(s)
Ejemplo n.º 14
0
def user_chapter(request, object_id, book_id, chapter_id=None):
    if request.GET:
        o = Chapter.objects.get(pk=int(chapter_id))
        result = {'id':o.id, 'content':o.content, 'abstract':o.abstract,
            'title':o.title, 'date':o.modifydate.strftime("%b %d,%Y %I:%m %p")}
        return ajax.ajax_ok(result)
    else:
        v = ChapterValidator(request, book_id, chapter_id)
        if request.POST:
            flag, obj = v.validate_and_save(request)
            if flag:
                return ajax.ajax_ok(message=_("Success!"))
            return ajax.ajax_fail(obj, message=_("There are some errors!"))
        else:
            user = User.objects.get(pk=int(object_id))
            book = Book.objects.get(pk=int(book_id))
            chapter = Chapter.objects.get(pk=int(chapter_id))
            return render_template(request, 'users/user_chapter.html', 
                {'person':user, 'book':book, 'chapter':chapter})
Ejemplo n.º 15
0
def add_comment(request, book_id, chapter_num):
    m = AddCommentValidator(request, book_id, chapter_num)
    f, obj = m.validate_and_save(request)
    if f:
        response = ajax.ajax_ok(message='ok')
        set_cookie(response, 'username', request.REQUEST.get('username', ''))
        set_cookie(response, 'email', request.REQUEST.get('email', ''))
        set_cookie(response, 'website', request.REQUEST.get('website', ''))
        return response
    return ajax.ajax_fail(obj, message='error')
Ejemplo n.º 16
0
def user_edit(request, object_id):
    if request.POST:
        v = ChangeValidator(request, object_id)
        f, obj = v.validate_and_save(request)
        if f:
            return ajax.ajax_ok(message=_('User infomation updated successful!'))
        return ajax.ajax_fail(obj)
    else:
        user = User.objects.get(pk=int(object_id))
        d = {'person':user}
        return render_template(request, 'users/user_edit.html', d)
Ejemplo n.º 17
0
def refresh(request, book_id):
    try:
        book = Book.objects.get(pk=int(book_id))
    except Book.DoesNotExist:
        return ajax_fail(message="此书在数据库中不存在!")
    args = list(settings.PARAMS) + ['reget', book.url]
    try:
       os.spawnl(*args)
    except:
        traceback.print_exc()
    return ajax_ok(message="任务已经提交!请稍候下载。")
Ejemplo n.º 18
0
def user_book_chapters(request, object_id, book_id):
    user = User.objects.get(pk=int(object_id))
    book = Book.objects.get(pk=int(book_id))
    objs = book.chapter_set.all()
    result = []
    def _get_data(request, obj):
        checkbox = '<input type="checkbox" name="chapter_id" value="%d"/>' % obj.id
        return ({'id':obj.id, 'chapter_num':obj.num, 'title':obj.title, 
            'abstract':obj.abstract, 'checkbox':checkbox, 'date':obj.modifydate.strftime("%b %d,%Y %I:%m %p")})
    for o in objs:
        result.append(_get_data(request, o))
    return ajax.ajax_ok(result)
Ejemplo n.º 19
0
def user_edit(request, object_id):
    if request.POST:
        v = ChangeValidator(request, object_id)
        f, obj = v.validate_and_save(request)
        if f:
            return ajax.ajax_ok(
                message=_('User infomation updated successful!'))
        return ajax.ajax_fail(obj)
    else:
        user = User.objects.get(pk=int(object_id))
        d = {'person': user}
        return render_template(request, 'users/user_edit.html', d)
Ejemplo n.º 20
0
def chapter_comments_info(request, book_id, chapter_num):
    book = Book.objects.get(pk=int(book_id))
    chapter = Chapter.objects.get(num=chapter_num, book=book)
    objs = chapter.commentinfo_set.all()
    result = {}

    def _get_data(result, obj):
        result[obj.comment_num] = obj.count

    for obj in objs:
        _get_data(result, obj)

    return ajax.ajax_ok(result)
Ejemplo n.º 21
0
def user_register(request):
    v = RegisterValidator(request)
    if request.POST:
        f, obj = v.validate_and_save(request)
        if f:
            user = authenticate(username=obj.username, password=obj.password)
            if user and user.is_staff:
                login(request, user)
                user.last_login = datetime.datetime.now()
                user.save()
            return ajax.ajax_ok(True, next=setting('URLROOT') + '/')
        return ajax.ajax_fail(obj)
    else:
        return render_template(request, 'users/register.html')
Ejemplo n.º 22
0
def add(request, book_id=None):
    if book_id:
        try:
            book = Book.objects.get(pk=int(book_id))
        except Book.DoesNotExist:
            return ajax_fail(message="此书在数据库中不存在!")
        url = book.url
    else:
        url = request.POST.get('url', '')
    if url:
        args = list(settings.PARAMS) + ['get', url]
        try:
           os.spawnl(*args)
        except:
            traceback.print_exc()
        return ajax_ok(message="任务已经提交!请稍候下载。")
    return ajax_fail(message="请输入想下载书的目录URL")
Ejemplo n.º 23
0
def user_books_list(request, object_id):
    #because filtermiddleware guarantee the url match with request.user
    #so here don't need to get the user object, but just using request.user
    #    user = User.objects.get(pk=int(object_id))
    user = request.user
    pagenum = 10
    result = []
    #if the user is superuser, then all book will be shown
    if user.is_superuser:
        objs = Book.objects.all()
    else:
        objs = user.book_set.all()
    page = Page(objs, request, paginate_by=pagenum)
    for o in page.object_list:
        result.append(_get_data(request, o))
    pages = (objs.count() + pagenum - 1) / pagenum
    cur = int(request.GET.get('page', 1))
    return ajax.ajax_ok((cur, pages, result))
Ejemplo n.º 24
0
def user_books_list(request, object_id):
    #because filtermiddleware guarantee the url match with request.user
    #so here don't need to get the user object, but just using request.user
#    user = User.objects.get(pk=int(object_id))
    user = request.user
    pagenum = 10
    result = []
    #if the user is superuser, then all book will be shown
    if user.is_superuser:
        objs = Book.objects.all()
    else:
        objs = user.book_set.all()
    page = Page(objs, request, paginate_by=pagenum)
    for o in page.object_list:
        result.append(_get_data(request, o))
    pages = (objs.count() + pagenum - 1) / pagenum
    cur = int(request.GET.get('page', 1))
    return ajax.ajax_ok((cur, pages, result))
Ejemplo n.º 25
0
def user_book_chapters(request, object_id, book_id):
    user = User.objects.get(pk=int(object_id))
    book = Book.objects.get(pk=int(book_id))
    objs = book.chapter_set.all()
    result = []

    def _get_data(request, obj):
        checkbox = '<input type="checkbox" name="chapter_id" value="%d"/>' % obj.id
        return ({
            'id': obj.id,
            'chapter_num': obj.num,
            'title': obj.title,
            'abstract': obj.abstract,
            'checkbox': checkbox,
            'date': obj.modifydate.strftime("%b %d,%Y %I:%m %p")
        })

    for o in objs:
        result.append(_get_data(request, o))
    return ajax.ajax_ok(result)
Ejemplo n.º 26
0
def user_login(request):
    if request.method == "POST":

        login_form = loginform(request.POST)
        if login_form.is_valid():
            print(111)
            email = username = request.POST.get("email", "")
            password = request.POST.get("password", "")
            user = authenticate(username=username, password=password)
            if user:
                if user.is_staff:
                    # request.session["token"] = user.token
                    # response = render(request)
                    # response.set_cookie()
                    # login(request,user)
                    return ajax_ok(request)

                else:
                    return ajax_fail_data(message="用户未激活")
            else:
                return ajax_fail_data(message="用户名或者密碼錯誤")

        else:
            return ajax_fail_data(message="输入错误")
Ejemplo n.º 27
0
def user_book_authors(request, object_id, book_id):
    book = Book.objects.get(pk=int(book_id))
    result = []
    for obj in book.authors.all():
        result.append({'username': obj.username})
    return ajax.ajax_ok(result)
Ejemplo n.º 28
0
def user_book_addauthor(request, object_id, book_id):
    v = AddUserValidator(book_id)
    flag, obj = v.validate_and_save(request)
    if flag:
        return ajax.ajax_ok()
    return ajax.ajax_fail(obj)
Ejemplo n.º 29
0
def user_chapters_delete(request, object_id, book_id):
    ids = request.POST.getlist('chapter_id')
    if ids:
        for chapter in Chapter.objects.filter(id__in=ids):
            chapter.delete()
    return ajax.ajax_ok(next=setting('URLROOT') + '/user/%s/book/%s/' % (object_id, book_id))
Ejemplo n.º 30
0
def user_chapter_delcomment(request, object_id, book_id, chapter_id):
    obj = Comment.objects.get(pk=int(request.POST['comment_id']))
    obj.delete()
    return ajax.ajax_ok(message='ok')
Ejemplo n.º 31
0
def user_chapter_delcomment(request, object_id, book_id, chapter_id):
    obj = Comment.objects.get(pk=int(request.POST['comment_id']))
    obj.delete()
    return ajax.ajax_ok(message='ok')
Ejemplo n.º 32
0
def user_book_addauthor(request, object_id, book_id):
    v = AddUserValidator(book_id)
    flag, obj = v.validate_and_save(request)
    if flag:
        return ajax.ajax_ok()
    return ajax.ajax_fail(obj)
Ejemplo n.º 33
0
def user_book_authors(request, object_id, book_id):
    book = Book.objects.get(pk=int(book_id))
    result = []
    for obj in book.authors.all():
        result.append({'username':obj.username})
    return ajax.ajax_ok(result)