"""Forms for manipulating markov data.""" import logging from django.forms import Form, CharField, ChoiceField, FileField, ModelChoiceField from markov.models import MarkovContext log = logging.getLogger('markov.forms') class LogUploadForm(Form): """Accept a file upload that will be imported into Markov stuff.""" FILE_FORMAT_WEECHAT = 'WEECHAT' FILE_FORMAT_RAW_TEXT = 'RAW' FILE_FORMAT_CHOICES = ( (FILE_FORMAT_WEECHAT, "Weechat"), (FILE_FORMAT_RAW_TEXT, "Raw text file"), ) text_file = FileField() text_file_format = ChoiceField(choices=FILE_FORMAT_CHOICES) context = ModelChoiceField(queryset=MarkovContext.objects.all()) ignore_nicks = CharField(help_text="Comma-separated list of nicks to ignore. For Weechat logs.", required=False) strip_prefixes = CharField(help_text="Space-separated list of line prefixes to strip. For Weechat logs.", required=False) class TeachLineForm(Form): """Accept a line that will be imported into Markov stuff.""" context = ModelChoiceField(queryset=MarkovContext.objects.all()) line = CharField() strip_prefixes = CharField(help_text="Space-separated list of line prefixes to strip.", required=False)