Exemplo n.º 1
0
def handle_add_bookmark(request):

	put = request.REQUEST

	bm = models.Bookmark()
	is_public = put.get('is_public')
	if is_public == 'False':
		bm.is_public = False
	else:
		bm.is_public = True
	bm.description = put.get('description')
	bm.title = put.get('title')
	bm.user_id = int(put.get('user_id'))
	bm.username = put.get('username')

	try:
		bm.save()
	except Exception as e:
		logerror(e.message)
		return HttpResponseBadRequest

	if not bm.is_public:
		loginfo("Bookmark added")
		return HttpResponse(json.dumps({'bookmark_id': bm.id}))

	raw_tags = models.split_title_on_tags(bm.title)
	tags = models.get_tags(raw_tags)
	for tag in tags:
		bm_tag = models.BookmarkTag()
		bm_tag.tag = tag
		bm_tag.bookmark = bm
		bm_tag.save()

	loginfo("Bookmark added")
	return HttpResponse(json.dumps({'bookmark_id': bm.id}))
Exemplo n.º 2
0
def handle_add_bookmark(request):

    put = request.REQUEST

    bm = models.Bookmark()
    is_public = put.get('is_public')
    if is_public == 'False':
        bm.is_public = False
    else:
        bm.is_public = True
    bm.description = put.get('description')
    bm.title = put.get('title')
    bm.user_id = int(put.get('user_id'))
    bm.username = put.get('username')

    try:
        bm.save()
    except Exception as e:
        logerror(e.message)
        return HttpResponseBadRequest

    if not bm.is_public:
        loginfo("Bookmark added")
        return HttpResponse(json.dumps({'bookmark_id': bm.id}))

    raw_tags = models.split_title_on_tags(bm.title)
    tags = models.get_tags(raw_tags)
    for tag in tags:
        bm_tag = models.BookmarkTag()
        bm_tag.tag = tag
        bm_tag.bookmark = bm
        bm_tag.save()

    loginfo("Bookmark added")
    return HttpResponse(json.dumps({'bookmark_id': bm.id}))
Exemplo n.º 3
0
def handle_search_bookmarks(request):
	get = request.GET
	text = get.get('search_text')
	page = get.get('page')
	per_page = get.get('per_page')

	raw_tags = models.split_title_on_tags(text)
	tags = map(lambda x: models.find_tag(x), raw_tags)

	non_null_tags = []
	for x in tags:
		if x:
			non_null_tags.append(x)
	tags = non_null_tags

	if len(tags) == 0:
		data = {'cur_page': 1, 'pages': 1, 'objects':[]}
		return HttpResponse(json.dumps(data))

	objects = models.BookmarkTag.objects.filter(tag__in=tags)
	objects = objects.filter(bookmark__is_public=True)
	objects = objects.values('bookmark')
	objects = objects.annotate(num=Count('bookmark'))
	objects = objects.filter(num__gte=len(tags))
	objects = objects.order_by('bookmark__time')

	paginator = Paginator(objects, per_page)
	try:
		result = paginator.page(page)
	except PageNotAnInteger:
		page = 1
		result = paginator.page(page)
	except EmptyPage:
		page = paginator.num_pages
		result = paginator.page(paginator.num_pages)

	pages_count = paginator.num_pages

	objects=[]
	for x in result.object_list:
		bm = models.Bookmark.objects.get(pk=x['bookmark'])
		objects.append(bm.short_json())

	data = {'objects': objects, 'pages': pages_count, 'cur_page': page}
	data = json.dumps(data)

	return HttpResponse(data)
Exemplo n.º 4
0
def handle_search_bookmarks(request):
    get = request.GET
    text = get.get('search_text')
    page = get.get('page')
    per_page = get.get('per_page')

    raw_tags = models.split_title_on_tags(text)
    tags = map(lambda x: models.find_tag(x), raw_tags)

    non_null_tags = []
    for x in tags:
        if x:
            non_null_tags.append(x)
    tags = non_null_tags

    if len(tags) == 0:
        data = {'cur_page': 1, 'pages': 1, 'objects': []}
        return HttpResponse(json.dumps(data))

    objects = models.BookmarkTag.objects.filter(tag__in=tags)
    objects = objects.filter(bookmark__is_public=True)
    objects = objects.values('bookmark')
    objects = objects.annotate(num=Count('bookmark'))
    objects = objects.filter(num__gte=len(tags))
    objects = objects.order_by('bookmark__time')

    paginator = Paginator(objects, per_page)
    try:
        result = paginator.page(page)
    except PageNotAnInteger:
        page = 1
        result = paginator.page(page)
    except EmptyPage:
        page = paginator.num_pages
        result = paginator.page(paginator.num_pages)

    pages_count = paginator.num_pages

    objects = []
    for x in result.object_list:
        bm = models.Bookmark.objects.get(pk=x['bookmark'])
        objects.append(bm.short_json())

    data = {'objects': objects, 'pages': pages_count, 'cur_page': page}
    data = json.dumps(data)

    return HttpResponse(data)