Example #1
0
def get_tweets():
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(get_per_page_parameter(), type=int, default=20)
    start = page * per_page
    end = (page + 1) * per_page
    #Retrieving data from database, sorting and paginating
    tweets_data = col.find().sort('_id',
                                  pymongo.ASCENDING).skip(per_page).limit(end)
    tweets = tweets_data[start:end]

    #classifier instance
    sc = SentimentClassifier()
    tweet_data = []

    for tweet in tweets:
        #getting a text from a tweet
        text_data = tweet["text"]
        #Convert to a string
        text_data = str(text_data)
        #perform classification
        text_data = sc.classify(text_data)
        #total += 1
        tweet_data.append(text_data)
    #creating Pagination instance
    paginate = Pagination(page=page,
                          per_page=per_page,
                          per_page_parameter='per_page',
                          show_single_page=True,
                          total=tweets.count(),
                          css_framework='foundation',
                          record_name='tweets')
    return tweet_data, paginate, page, per_page
Example #2
0
def index(solar=""):
    search = False
    q = request.args.get('q')
    if q:
        search = True
    searched = get_papers(False)
    history = {
        'paper': searched.get('paperNumber', 1),
        'page': searched.get('pageNumber', 1)
    }
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(get_per_page_parameter(), type=int, default=20)
    total, papers = get_json_data(JSON_PATH, page, per_page)
    pagination = Pagination(page=page,
                            per_page=per_page,
                            total=total,
                            search=search,
                            record_name='papers',
                            css_framework='bootstrap4')

    return render_template('index.html',
                           fixed="",
                           solar=solar,
                           history=history,
                           papers=papers,
                           pagination=pagination)
Example #3
0
def general_pagination(posts):
    # pagination
    PER_PAGE_DEFAULT = 5
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(get_per_page_parameter(),
                                type=int,
                                default=PER_PAGE_DEFAULT)
    pagination = Pagination(page=page,
                            total=len(posts),
                            per_page=per_page,
                            search=False,
                            record_name='posts',
                            css_framework='bootstrap',
                            bs_version=4)
    begin = per_page * (page - 1)
    end = per_page * page
    if end > len(posts):
        end = len(posts)
    posts = posts[begin:end]
    return posts, pagination
Example #4
0
def search_bookmarks():
    arg_obj = request.form if request.method == 'DELETE' else request.args
    search_bookmarks_form = forms.SearchBookmarksForm(request.args)
    is_api_request_path = request.path.startswith('/api/')
    if is_api_request_path:
        keywords = arg_obj.getlist('keywords')
        all_keywords = arg_obj.get('all_keywords')
        deep = arg_obj.get('deep')
        regex = arg_obj.get('regex')
        # api request is more strict
        all_keywords = False if all_keywords is None else all_keywords
        deep = False if deep is None else deep
        regex = False if regex is None else regex
        all_keywords = (all_keywords if isinstance(all_keywords, bool) else
                        all_keywords.lower() == 'true')
        deep = deep if isinstance(deep, bool) else deep.lower() == 'true'
        regex = regex if isinstance(regex, bool) else regex.lower() == 'true'
    else:
        keywords = search_bookmarks_form.keywords.data
        all_keywords = search_bookmarks_form.all_keywords.data
        deep = search_bookmarks_form.deep.data
        regex = search_bookmarks_form.regex.data

    result = {'bookmarks': []}
    bukudb = getattr(flask.g, 'bukudb', get_bukudb())
    found_bookmarks = bukudb.searchdb(keywords, all_keywords, deep, regex)
    found_bookmarks = [] if found_bookmarks is None else found_bookmarks
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(get_per_page_parameter(),
                                type=int,
                                default=int(
                                    current_app.config.get(
                                        'BUKUSERVER_PER_PAGE',
                                        views.DEFAULT_PER_PAGE)))

    res = None
    if request.method == 'GET':
        if bookmarks is not None:
            for bookmark in found_bookmarks:
                result_bookmark = {
                    'id': bookmark[0],
                    'url': bookmark[1],
                    'title': bookmark[2],
                    'tags': list([_f for _f in bookmark[3].split(',') if _f]),
                    'description': bookmark[4]
                }
                result['bookmarks'].append(result_bookmark)
        current_app.logger.debug('total bookmarks:{}'.format(
            len(result['bookmarks'])))
        if is_api_request_path:
            res = jsonify(result)
        else:
            pagination_total = len(result['bookmarks'])
            bms = list(views.chunks(result['bookmarks'], per_page))
            try:
                result['bookmarks'] = bms[page - 1]
            except IndexError as err:
                current_app.logger.debug(
                    '{}:{}, result bookmarks:{}, page:{}'.format(
                        type(err), err, len(result['bookmarks']), page))
            pagination = Pagination(page=page,
                                    total=pagination_total,
                                    per_page=per_page,
                                    search=False,
                                    record_name='bookmarks',
                                    bs_version=3)
            res = render_template(
                'bukuserver/bookmarks.html',
                result=result,
                pagination=pagination,
                search_bookmarks_form=search_bookmarks_form,
                create_bookmarks_form=forms.BookmarkForm(),
            )
    elif request.method == 'DELETE':
        if found_bookmarks is not None:
            for bookmark in found_bookmarks:
                result_flag = bukudb.delete_rec(bookmark[0])
                if result_flag is False:
                    res = (jsonify(response.response_template['failure']),
                           status.HTTP_400_BAD_REQUEST, {
                               'ContentType': 'application/json'
                           })
        if res is None:
            res = (jsonify(response.response_template['success']),
                   status.HTTP_200_OK, {
                       'ContentType': 'application/json'
                   })
    return res
Example #5
0
def bookmarks():
    """Bookmarks."""
    res = None
    bukudb = getattr(flask.g, 'bukudb', get_bukudb())
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(get_per_page_parameter(),
                                type=int,
                                default=int(
                                    current_app.config.get(
                                        'BUKUSERVER_PER_PAGE',
                                        views.DEFAULT_PER_PAGE)))
    url_render_mode = current_app.config['BUKUSERVER_URL_RENDER_MODE']
    create_bookmarks_form = forms.BookmarkForm()
    if request.method == 'GET':
        all_bookmarks = bukudb.get_rec_all()
        result = {'bookmarks': []}
        for bookmark in all_bookmarks:
            result_bookmark = {
                'url': bookmark[1],
                'title': bookmark[2],
                'tags': list([_f for _f in bookmark[3].split(',') if _f]),
                'description': bookmark[4]
            }
            if not request.path.startswith('/api/'):
                result_bookmark['id'] = bookmark[0]
            result['bookmarks'].append(result_bookmark)
        if request.path.startswith('/api/'):
            res = jsonify(result)
        else:
            if request.args.getlist('tag'):
                tags = request.args.getlist('tag')
                result['bookmarks'] = [
                    x for x in result['bookmarks']
                    if set(tags).issubset(set(x['tags']))
                ]
            current_app.logger.debug('total bookmarks:{}'.format(
                len(result['bookmarks'])))
            current_app.logger.debug('per page:{}'.format(per_page))
            pagination_total = len(result['bookmarks'])
            bms = list(views.chunks(result['bookmarks'], per_page))
            try:
                result['bookmarks'] = bms[page - 1]
            except IndexError as err:
                current_app.logger.debug(
                    '{}:{}, result bookmarks:{}, page:{}'.format(
                        type(err), err, len(result['bookmarks']), page))
            pagination = Pagination(page=page,
                                    total=pagination_total,
                                    per_page=per_page,
                                    search=False,
                                    record_name='bookmarks',
                                    bs_version=3)
            res = render_template(
                'bukuserver/bookmarks.html',
                result=result,
                pagination=pagination,
                search_bookmarks_form=forms.SearchBookmarksForm(),
                create_bookmarks_form=create_bookmarks_form,
                url_render_mode=url_render_mode,
            )
    elif request.method == 'POST':
        url_data = create_bookmarks_form.url.data
        result_flag = bukudb.add_rec(url_data,
                                     create_bookmarks_form.title.data,
                                     create_bookmarks_form.tags.data,
                                     create_bookmarks_form.description.data)
        if request.path.startswith('/api/'):
            res = [
                jsonify(response.response_template['success']),
                status.HTTP_200_OK, {
                    'ContentType': 'application/json'
                }
            ] if result_flag != -1 else [
                jsonify(response.response_template['failure']),
                status.HTTP_400_BAD_REQUEST, {
                    'ContentType': 'application/json'
                }
            ]
        else:
            bm_text = '[<a href="{0}">{0}</a>]'.format(url_data)
            if result_flag != -1:
                flash(Markup('Success creating bookmark {}.'.format(bm_text)),
                      'success')
            else:
                flash(Markup('Failed creating bookmark {}.'.format(bm_text)),
                      'danger')
            return redirect(url_for('bookmarks-html'))
    elif request.method == 'DELETE':
        result_flag = bukudb.cleardb()
        res = [
            jsonify(response.response_template['success']), status.HTTP_200_OK,
            {
                'ContentType': 'application/json'
            }
        ] if result_flag else [
            jsonify(response.response_template['failure']),
            status.HTTP_400_BAD_REQUEST, {
                'ContentType': 'application/json'
            }
        ]
    return res
Example #6
0
def index():
    dianzans = DianZanModel.query.filter(DianZanModel.author == g.front_user)
    post_id_list = []
    for i in dianzans:
        post_id_list.append(i.post_id)
    boards = BoardsModel.query.all()
    posts = PostsModel.query.order_by(PostsModel.create_time.desc())
    # 分页
    page = request.args.get(get_per_page_parameter(), type=int, default=1)
    start = (page - 1) * config.PER_PAGE
    end = start + config.PER_PAGE
    totle = PostsModel.query.count()
    pagination = Pagination(page=page,
                            bs_version=3,
                            total=totle,
                            outer_window=1,
                            inner_window=2)
    st = request.args.get('st')
    if st == '2':
        posts = PostsModel.query.filter(PostsModel.highlight)
        context = {
            'boards': boards,
            'posts': posts,
            'pagination': pagination,
            'post_id_list': post_id_list
        }
        return render_template('front/index.html', **context)
    if st == '3':
        posts = PostsModel.query.order_by(
            PostsModel.dianzan_totle.desc()).slice(0, 10)
        context = {
            'boards': boards,
            'posts': posts,
            'pagination': pagination,
            'post_id_list': post_id_list
        }
        return render_template('front/index.html', **context)
    if st == '4':
        posts = PostsModel.query.order_by(
            PostsModel.common_totle.desc()).slice(0, 10)
        context = {
            'boards': boards,
            'posts': posts,
            'pagination': pagination,
            'post_id_list': post_id_list
        }
        return render_template('front/index.html', **context)
    board_id = request.args.get('board_id')
    if board_id:
        posts = PostsModel.query.filter(PostsModel.board_id == board_id)
        posts_totle = posts.slice(start, end)
        context = {
            'boards': boards,
            'posts': posts_totle,
            'pagination': pagination,
            'post_id_list': post_id_list
        }
        return render_template('front/index.html', **context)

    context = {
        'boards': boards,
        'posts': posts,
        'pagination': pagination,
        'post_id_list': post_id_list
    }

    return render_template('front/index.html', **context)
Example #7
0
def search_bookmarks():
    arg_obj = request.form if request.method == 'DELETE' else request.args
    search_bookmarks_form = forms.SearchBookmarksForm(request.args)
    is_api_request_path = request.path.startswith('/api/')
    if is_api_request_path:
        keywords = arg_obj.getlist('keywords')
        all_keywords = arg_obj.get('all_keywords')
        deep = arg_obj.get('deep')
        regex = arg_obj.get('regex')
        # api request is more strict
        all_keywords = False if all_keywords is None else all_keywords
        deep = False if deep is None else deep
        regex = False if regex is None else regex
        all_keywords = \
            all_keywords if type(all_keywords) == bool else all_keywords.lower() == 'true'
        deep = \
            deep if type(deep) == bool else deep.lower() == 'true'
        regex = \
            regex if type(regex) == bool else regex.lower() == 'true'
    else:
        keywords = search_bookmarks_form.keywords.data
        all_keywords = search_bookmarks_form.all_keywords.data
        deep = search_bookmarks_form.deep.data
        regex = search_bookmarks_form.regex.data

    result = {'bookmarks': []}
    bukudb = getattr(flask.g, 'bukudb', BukuDb())
    found_bookmarks = bukudb.searchdb(keywords, all_keywords, deep, regex)
    found_bookmarks = [] if found_bookmarks is None else found_bookmarks
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(
        get_per_page_parameter(),
        type=int,
        default=int(
            current_app.config.get('BUKUSERVER_PER_PAGE', views.DEFAULT_PER_PAGE))
    )

    res = None
    if request.method == 'GET':
        if bookmarks is not None:
            for bookmark in found_bookmarks:
                result_bookmark = {
                    'id': bookmark[0],
                    'url': bookmark[1],
                    'title': bookmark[2],
                    'tags': list([_f for _f in bookmark[3].split(',') if _f]),
                    'description': bookmark[4]
                }
                result['bookmarks'].append(result_bookmark)
        current_app.logger.debug('total bookmarks:{}'.format(len(result['bookmarks'])))
        if is_api_request_path:
            res = jsonify(result)
        else:
            pagination_total = len(result['bookmarks'])
            bms = list(views.chunks(result['bookmarks'], per_page))
            try:
                result['bookmarks'] = bms[page-1]
            except IndexError as err:
                current_app.logger.debug('{}:{}, result bookmarks:{}, page:{}'.format(
                    type(err), err, len(result['bookmarks']), page
                ))
            pagination = Pagination(
                page=page, total=pagination_total, per_page=per_page,
                search=False, record_name='bookmarks', bs_version=3
            )
            res = render_template(
                'bukuserver/bookmarks.html',
                result=result, pagination=pagination,
                search_bookmarks_form=search_bookmarks_form,
                create_bookmarks_form=forms.BookmarkForm(),
            )
    elif request.method == 'DELETE':
        if found_bookmarks is not None:
            for bookmark in found_bookmarks:
                result_flag = bukudb.delete_rec(bookmark[0])
                if result_flag is False:
                    res = jsonify(response.response_template['failure']), status.HTTP_400_BAD_REQUEST, {'ContentType': 'application/json'}
        if res is None:
            res = jsonify(response.response_template['success']), status.HTTP_200_OK, {'ContentType': 'application/json'}
    return res
Example #8
0
def bookmarks():
    """Bookmarks."""
    res = None
    bukudb = getattr(flask.g, 'bukudb', BukuDb())
    page = request.args.get(get_page_parameter(), type=int, default=1)
    per_page = request.args.get(
        get_per_page_parameter(),
        type=int,
        default=int(
            current_app.config.get('BUKUSERVER_PER_PAGE', views.DEFAULT_PER_PAGE))
    )
    url_render_mode = current_app.config['BUKUSERVER_URL_RENDER_MODE']
    create_bookmarks_form = forms.BookmarkForm()
    if request.method == 'GET':
        all_bookmarks = bukudb.get_rec_all()
        result = {
            'bookmarks': []
        }
        for bookmark in all_bookmarks:
            result_bookmark = {
                'url': bookmark[1],
                'title': bookmark[2],
                'tags': list([_f for _f in bookmark[3].split(',') if _f]),
                'description': bookmark[4]
            }
            if not request.path.startswith('/api/'):
                result_bookmark['id'] = bookmark[0]
            result['bookmarks'].append(result_bookmark)
        if request.path.startswith('/api/'):
            res = jsonify(result)
        else:
            if request.args.getlist('tag'):
                tags = request.args.getlist('tag')
                result['bookmarks'] = [
                    x for x in result['bookmarks']
                    if set(tags).issubset(set(x['tags']))
                ]
            current_app.logger.debug('total bookmarks:{}'.format(len(result['bookmarks'])))
            current_app.logger.debug('per page:{}'.format(per_page))
            pagination_total = len(result['bookmarks'])
            bms = list(views.chunks(result['bookmarks'], per_page))
            try:
                result['bookmarks'] = bms[page-1]
            except IndexError as err:
                current_app.logger.debug('{}:{}, result bookmarks:{}, page:{}'.format(
                    type(err), err, len(result['bookmarks']), page
                ))
            pagination = Pagination(
                page=page, total=pagination_total, per_page=per_page,
                search=False, record_name='bookmarks', bs_version=3
            )
            res = render_template(
                'bukuserver/bookmarks.html',
                result=result,
                pagination=pagination,
                search_bookmarks_form=forms.SearchBookmarksForm(),
                create_bookmarks_form=create_bookmarks_form,
                url_render_mode=url_render_mode,
            )
    elif request.method == 'POST':
        url_data = create_bookmarks_form.url.data
        result_flag = bukudb.add_rec(
            url_data,
            create_bookmarks_form.title.data,
            create_bookmarks_form.tags.data,
            create_bookmarks_form.description.data
        )
        if request.path.startswith('/api/'):
            res = [
                jsonify(response.response_template['success']), status.HTTP_200_OK,
                {'ContentType': 'application/json'}
            ] if result_flag != -1 else [
                jsonify(response.response_template['failure']), status.HTTP_400_BAD_REQUEST,
                {'ContentType': 'application/json'}
            ]
        else:
            bm_text = '[<a href="{0}">{0}</a>]'.format(url_data)
            if result_flag != -1:
                flash(Markup('Success creating bookmark {}.'.format(bm_text)), 'success')
            else:
                flash(Markup('Failed creating bookmark {}.'.format(bm_text)), 'danger')
            return redirect(url_for('bookmarks-html'))
    elif request.method == 'DELETE':
        result_flag = bukudb.cleardb()
        res = [
            jsonify(response.response_template['success']), status.HTTP_200_OK,
            {'ContentType': 'application/json'}
        ] if result_flag else [
            jsonify(response.response_template['failure']), status.HTTP_400_BAD_REQUEST,
            {'ContentType': 'application/json'}
        ]
    return res