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)
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)
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))
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)
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)
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)
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)
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)
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)
def meta_popcorn_director(path): results = MetaPopcornController.get_director_directed(path) return themes.render("main/meta/person", results=results, person=path, title="director")
def meta_popcorn(): results = MetaPopcornController.search() return themes.render("main/meta/popcorn", results=results)
def meta_popcorn_search(parsed): results = MetaPopcornController.search(**parsed) return themes.render("main/meta/popcorn", results=results, filters=parsed)
def meta_popcorn_actor(path): results = MetaPopcornController.get_actor_played_in(path) return themes.render("main/meta/person", results=results, person=path, title="actor")
def admin_status_database(): results = AdminStatusController.database() return themes.render("main/status/items", theme="_admin", name="database", data=results)
def news_home(): posts = NewsController.get(limit=10, offset=0) return themes.render("main/news", posts=posts)
def admin_status_pip(): results = AdminStatusController.pip() return themes.render("main/status/items", theme="_admin", name="python", data=results)
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)
def admin_mq_overview(): return themes.render("main/mq/overview", theme="_admin")
def admin_status_overview(): results = AdminStatusController.overview() return themes.render("main/status/overview", theme="_admin", results=results)
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)
def test_dyna(): return themes.render("main/test")
def research(): return themes.render("main/research")
def register(): return themes.render('main/register')
def admin_server_edit(server_id): return themes.render("main/server/edit", theme="_admin")
def admin_status_system(): results = AdminStatusController.system() return themes.render("main/status/items", theme="_admin", name="system", data=results)
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)
def user_cp_resource_add(): form = ResourceForm(request.form) return themes.render('main/user_cp/_service_add', form=form)
def admin_group_add(): group_add = FormServerGroupAdd(request.form) return themes.render("main/server/add_group", theme="_admin", form_add=group_add)
def admin_server_overview(): return themes.render("main/server/overview", theme="_admin")
def admin_mq_add(): mq_add = FormMqAdd(request.form) return themes.render("main/mq/add", theme="_admin", form_add=mq_add)