audioform_randomdir.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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(
  6. "Audio nick",
  7. validators=[validators.required()],
  8. description="A simple name to recognize this audio",
  9. )
  10. path = AutocompleteStringField(
  11. "dl-suggested-dirs",
  12. "Path",
  13. validators=[validators.required()],
  14. description="Full path to source directory",
  15. )
  16. howmany = IntegerField(
  17. "Number",
  18. validators=[validators.optional()],
  19. default=1,
  20. description="How many songs to be picked" "from this dir; defaults to 1",
  21. )
  22. submit = SubmitField("Submit")
  23. def populate_from_audiospec(self, audiospec):
  24. if "nick" in audiospec:
  25. self.nick.data = audiospec["nick"]
  26. if "paths" in audiospec:
  27. self.path.data = audiospec["paths"][0]
  28. if "howmany" in audiospec:
  29. self.howmany.data = audiospec["howmany"]
  30. else:
  31. self.howmany.data = 1
  32. def receive(form):
  33. return {
  34. "kind": "randomdir",
  35. "nick": form.nick.data,
  36. "paths": [form.path.data],
  37. "howmany": form.howmany.data or 1,
  38. }