audioform_randomdir.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import flask_wtf
  2. from wtforms import StringField, validators, SubmitField, IntegerField
  3. from larigira.formutils import AutocompleteStringField
  4. class Form(flask_wtf.Form):
  5. nick = StringField('Audio nick', validators=[validators.required()],
  6. description='A simple name to recognize this audio')
  7. path = AutocompleteStringField('dl-suggested-dirs',
  8. 'Path', validators=[validators.required()],
  9. description='Full path to source directory')
  10. howmany = IntegerField('Number', validators=[validators.optional()],
  11. default=1,
  12. description='How many songs to be picked'
  13. 'from this dir; defaults to 1')
  14. submit = SubmitField('Submit')
  15. def populate_from_audiospec(self, audiospec):
  16. if 'nick' in audiospec:
  17. self.nick.data = audiospec['nick']
  18. if 'paths' in audiospec:
  19. self.path.data = audiospec['paths'][0]
  20. if 'howmany' in audiospec:
  21. self.howmany.data = audiospec['howmany']
  22. else:
  23. self.howmany.data = 1
  24. def receive(form):
  25. return {
  26. 'kind': 'randomdir',
  27. 'nick': form.nick.data,
  28. 'paths': [form.path.data],
  29. 'howmany': form.howmany.data or 1
  30. }