Beispiel #1
0
def static(filename):
    if filename.startswith("/"):
        return abort(404)

    from findex_gui.web import themes

    filename = filename.replace("..", "")
    filename = filename.replace("./", "")

    if filename.startswith("meta/posters/"):
        _cwd = cwd()
        filename = filename[13:]
        directory = "%s/meta/posters/" % _cwd
        if os.path.isfile("%s%s" % (directory, filename)):
            return send_from_directory(directory, filename)

    search_dirs = ["static/"]

    if filename.startswith("themes/"):
        spl = filename.split("/")

        if len(spl) >= 3 and spl[2] == "static":
            filename = "/".join(spl[3:])
            search_dirs.insert(0, "themes/%s/static/" % spl[1])

    for search_dir in search_dirs:
        directory = "%s/%s" % (app.config["dir_base"], search_dir)

        if os.path.isfile(directory + filename):
            return send_from_directory(directory, filename)

    return themes.render("errors/404", status_code=404)
Beispiel #2
0
def admin_scheduler_overview():
    has_cron = CronController.has_cronjob()
    generated_cron = CronController.generate_cronjob()
    return themes.render("main/scheduler/overview",
                         theme="_admin",
                         has_cron=has_cron,
                         generated_cron=generated_cron)
Beispiel #3
0
def error(e):
    if request.method != "GET" or request.headers.get(
            "Content-Type", "") == "application/json":
        return jsonify({"data": str(e)}), 404

    from findex_gui.web import themes
    return themes.render("main/error", msg=str(e))
Beispiel #4
0
def admin_server_add():
    server_add = FormServerAdd(request.form)
    server_options = FormServerAddOptions(request.form)
    server_auth = FormServerAddAuthentication(request.form)
    return themes.render("main/server/add",
                         theme="_admin",
                         form_add=server_add,
                         form_auth=server_auth,
                         form_options=server_options)
Beispiel #5
0
def browse(args):
    resource, f, path, filename = args

    _browse = Browse()
    if not filename:
        browser = _browse.browse(resource, path, filename)
        return themes.render("main/browse_dir", browser=browser)

    browser = _browse.browse(resource, path, "")

    imdb = None
    if f.meta_movie:
        imdb = db.session.query(MetaMovies).filter(
            MetaMovies.id == f.meta_movie).first()

    return themes.render(
        "main/file_viewer/viewer",
        f=f,
        browser=browser,
        resource=resource,
        imdb=imdb,
        get_relay_category_by_extension=ReverseRelayController.
        get_relay_category)
Beispiel #6
0
def login():
    if get_current_user_data():
        return redirect('/', 302)
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if UserController.authenticate_and_session(username, password):
            flash(gettext('You were successfully logged in'))
            if request.referrer.endswith('/login'):
                return redirect(url_for('root'))
            return redirect(redirect_url())
        else:
            error = gettext('Invalid credentials')
    return themes.render('main/login', error=error)
Beispiel #7
0
def user_cp_resource_detail(resource_id):
    # @TODO redo
    from findex_gui.controllers.resources.resources import ResourceController
    from findex_gui.orm.models import Resource
    from findex_gui.web import db
    try:
        resource = db.session.query(Resource).filter(
            Resource.id == resource_id).first()
    except:
        db.session.rollback()
        return "error"

    if not resource or isinstance(resource, Exception):
        raise Exception("None found")
    return themes.render('main/user_cp/_service_detail', resource=resource)
Beispiel #8
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)
Beispiel #9
0
def admin_metadata():
    if request.method == 'POST':
        from findex_gui.bin.utils import log_msg
        from findex_gui.controllers.meta.controller import MetaController
        try:
            MetaController.load_new_db()
        except Exception as ex:
            log_msg(str(ex), category="meta_import", level=3)

        return redirect(request.url)

    meta_movies_count = db.session.execute(
        "SELECT COUNT(*) FROM meta_movies;").fetchone()
    if meta_movies_count:
        meta_movies_count = meta_movies_count[0]

    meta_version = OptionsController.get("meta")
    if meta_version:
        meta_version = meta_version.val

    return themes.render("main/metadata",
                         theme="_admin",
                         meta_movies_count=meta_movies_count,
                         meta_version=meta_version)
Beispiel #10
0
def meta_popcorn_director(path):
    results = MetaPopcornController.get_director_directed(path)
    return themes.render("main/meta/person",
                         results=results,
                         person=path,
                         title="director")
Beispiel #11
0
def meta_popcorn():
    results = MetaPopcornController.search()
    return themes.render("main/meta/popcorn", results=results)
Beispiel #12
0
def meta_popcorn_search(parsed):
    results = MetaPopcornController.search(**parsed)
    return themes.render("main/meta/popcorn", results=results, filters=parsed)
Beispiel #13
0
def meta_popcorn_actor(path):
    results = MetaPopcornController.get_actor_played_in(path)
    return themes.render("main/meta/person",
                         results=results,
                         person=path,
                         title="actor")
Beispiel #14
0
def admin_status_database():
    results = AdminStatusController.database()
    return themes.render("main/status/items",
                         theme="_admin",
                         name="database",
                         data=results)
Beispiel #15
0
def news_home():
    posts = NewsController.get(limit=10, offset=0)
    return themes.render("main/news", posts=posts)
Beispiel #16
0
def admin_status_pip():
    results = AdminStatusController.pip()
    return themes.render("main/status/items",
                         theme="_admin",
                         name="python",
                         data=results)
Beispiel #17
0
def user_cp():
    form = LocalizationForm(request.form)
    form.language.choices = list(locales.items())
    form.language.data = UserController.locale_get()
    return themes.render('main/user_cp/_misc', form=form)
Beispiel #18
0
def admin_mq_overview():
    return themes.render("main/mq/overview", theme="_admin")
Beispiel #19
0
def admin_status_overview():
    results = AdminStatusController.overview()
    return themes.render("main/status/overview",
                         theme="_admin",
                         results=results)
Beispiel #20
0
def browse_home():
    resources = ResourceController.get_resources()
    resources = sorted(resources,
                       key=lambda k: k.meta.file_count,
                       reverse=True)
    return themes.render("main/browse", resources=resources)
Beispiel #21
0
def test_dyna():
    return themes.render("main/test")
Beispiel #22
0
def research():
    return themes.render("main/research")
Beispiel #23
0
def register():
    return themes.render('main/register')
Beispiel #24
0
def admin_server_edit(server_id):
    return themes.render("main/server/edit", theme="_admin")
Beispiel #25
0
def admin_status_system():
    results = AdminStatusController.system()
    return themes.render("main/status/items",
                         theme="_admin",
                         name="system",
                         data=results)
Beispiel #26
0
def admin_server_add_nmap():
    nmap_rule_add = NmapRuleAdd(request.form)
    return themes.render("main/server/add_nmap",
                         theme="_admin",
                         form_nmap_rule_add=nmap_rule_add)
Beispiel #27
0
def user_cp_resource_add():
    form = ResourceForm(request.form)
    return themes.render('main/user_cp/_service_add', form=form)
Beispiel #28
0
def admin_group_add():
    group_add = FormServerGroupAdd(request.form)
    return themes.render("main/server/add_group",
                         theme="_admin",
                         form_add=group_add)
Beispiel #29
0
def admin_server_overview():
    return themes.render("main/server/overview", theme="_admin")
Beispiel #30
0
def admin_mq_add():
    mq_add = FormMqAdd(request.form)
    return themes.render("main/mq/add", theme="_admin", form_add=mq_add)