Files
photoassistant/ai.py

53 lines
2.2 KiB
Python

from wtforms import SubmitField, StringField, HiddenField, validators, Form
from flask_wtf import FlaskForm
from flask import request, render_template, redirect
from main import db, app, ma
from sqlalchemy import Sequence
from sqlalchemy.exc import SQLAlchemyError
from status import st, Status
from files import Entry, File, FileRefimgLink
from person import Person, PersonRefimgLink
from refimg import Refimg
from flask_login import login_required, current_user
from job import Job, JobExtra, Joblog, NewJob
# pylint: disable=no-member
################################################################################
# /aistats -> placholder for some sort of stats
################################################################################
@app.route("/aistats", methods=["GET", "POST"])
@login_required
def aistats():
tmp=db.session.query(Entry,Person).join(File).join(FileRefimgLink).join(Refimg).join(PersonRefimgLink).join(Person).filter(FileRefimgLink.matched==True).all()
entries=[]
last_fname=""
for e, p in tmp:
if last_fname != e.name:
entry = { 'name': e.name, 'people': [] }
entries.append( entry )
last_fname = e.name
entry['people'].append( { 'tag': p.tag } )
return render_template("aistats.html", page_title='Placeholder', entries=entries)
################################################################################
# /run_ai_on -> CAM: needs more thought (what actual params, e.g list of file -
# tick, but which face or faces? are we forcing a re-finding of unknown faces
# or just looking for matches? (maybe in the long run there are different
# routes, not params - stuff we will work out as we go)
################################################################################
@app.route("/run_ai_on", methods=["POST"])
@login_required
def run_ai_on():
jex=[]
for el in request.form:
jex.append( JobExtra( name=f"{el}", value=request.form[el] ) )
print( f"would create new job with extras={jex}" )
job=NewJob( "run_ai_on", 0, None, jex )
st.SetAlert("success")
st.SetMessage( f"Created&nbsp;<a href=/job/{job.id}>Job #{job.id}</a>&nbsp;to Look for face(s) in selected file(s)")
return render_template("base.html")