audioform_script.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from flask_wtf import Form
  2. from wtforms import StringField, validators, SubmitField, ValidationError
  3. class ScriptAudioForm(Form):
  4. nick = StringField('Audio nick', validators=[validators.required()],
  5. description='A simple name to recognize this audio')
  6. name = StringField('Name', validators=[validators.required()],
  7. description='filename (NOT path) of the script')
  8. args = StringField('Arguments',
  9. description='arguments, separated by spaces')
  10. submit = SubmitField('Submit')
  11. def populate_from_audiospec(self, audiospec):
  12. if 'nick' in audiospec:
  13. self.nick.data = audiospec['nick']
  14. if 'name' in audiospec:
  15. self.name.data = audiospec['name']
  16. if 'args' in audiospec:
  17. self.args.data = audiospec['args']
  18. def validate_name(form, field):
  19. if '/' in field.data:
  20. raise ValidationError("Name cannot have slashes: "
  21. "it's a name, not a path")
  22. def scriptaudio_receive(form):
  23. return {
  24. 'kind': 'script',
  25. 'nick': form.nick.data,
  26. 'name': form.name.data,
  27. 'args': form.args.data
  28. }