Ejemplo n.º 1
0
def api_search_post(key: str,
                    file_categories: list = None,
                    file_extensions: list = None,
                    file_size: list = None,
                    file_type: str = "both",
                    page: int = 0,
                    per_page: int = 30,
                    lazy_search=False,
                    autocomplete: bool = False):
    """
    Search!
    :param key: the search key
    :param file_categories: unknown, documents, movies, music, images
    :param file_extensions: A list of file extensions, without the dot.
    :param file_type: files, dirs, both
    :param file_size: 2-length integer list representing the range in size as bytes
    :param page: Determines the paging
    :param per_page: Determines the amount of results
    :param lazy_search: Set to true for better search performance but less accuracy. Most suited
    for auto-complete on the front-end.
    :param autocomplete: this is the same as setting `lazy_search` to True and `per_page` to 5
    :return:
    """
    controller = SearchController()
    result = controller.search(key=key,
                               file_categories=file_categories,
                               file_extensions=file_extensions,
                               file_size=file_size,
                               file_type=file_type,
                               page=page,
                               per_page=per_page,
                               autocomplete=autocomplete,
                               lazy_search=lazy_search)
    return result.get_json()
Ejemplo n.º 2
0
    def post(self, key):
        # ---- make decorator of this with try catch oin parse_args (it can fail)
        args = self.reqparse.parse_args()

        args = {k: v for k, v in args.items() if v is not None}
        # ----

        try:
            controller = SearchController()
            result = controller.search(key, **args)
        except Exception as ex:
            return abort(404, message=str(ex))

        return flask.jsonify(**result.make_dict())
Ejemplo n.º 3
0
 def get_details(meta_movie_id):
     """returns movies given a movie_id"""
     from findex_gui.controllers.search.search import SearchController
     q = ZdbQuery(Files, session=db.session)
     q = q.filter(Files.meta_movie_id == meta_movie_id)
     results = q.all()
     results = MetaPopcornController._assign_meta(results)
     results = SearchController.assign_resource_objects(results)
     return results
Ejemplo n.º 4
0
def search(parsed):
    search = SearchController()

    errors = []
    results = []

    try:
        # @TO-DO: check theme whether to do REST API searching or flask->jinja2
        #results = search.search(**args)
        pass
    except Exception as ex:
        errors.append('error %s' % str(ex))

    return themes.render('main/search',
                         results=[],
                         errors=errors,
                         session=session)
Ejemplo n.º 5
0
    def get(self, key):
        controller = SearchController()
        result = controller.search(key=key)

        return flask.jsonify(**result.make_dict())
Ejemplo n.º 6
0
def api_search_get(key):
    controller = SearchController()
    result = controller.search(key=key)
    return flask.jsonify(**result.get_json())