Markov: support ignoring prefixes in import/learn
this is so we can ignore/strip "botname: " ish lines
This commit is contained in:
		
							parent
							
								
									1fc13b011d
								
							
						
					
					
						commit
						c193b7f4be
					
				@ -18,8 +18,10 @@ class LogUploadForm(Form):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    log_file = FileField(help_text="Weechat log format.")
 | 
					    log_file = FileField(help_text="Weechat log format.")
 | 
				
			||||||
    context = ModelChoiceField(queryset=MarkovContext.objects.all())
 | 
					    context = ModelChoiceField(queryset=MarkovContext.objects.all())
 | 
				
			||||||
    ignore = CharField(help_text="Comma-separated list of nicks to ignore.",
 | 
					    ignore_nicks = CharField(help_text="Comma-separated list of nicks to ignore.",
 | 
				
			||||||
                       required=False)
 | 
					                             required=False)
 | 
				
			||||||
 | 
					    strip_prefixes = CharField(help_text="Space-separated list of line prefixes to strip.",
 | 
				
			||||||
 | 
					                               required=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TeachLineForm(Form):
 | 
					class TeachLineForm(Form):
 | 
				
			||||||
@ -28,5 +30,7 @@ class TeachLineForm(Form):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    context = ModelChoiceField(queryset=MarkovContext.objects.all())
 | 
					    context = ModelChoiceField(queryset=MarkovContext.objects.all())
 | 
				
			||||||
    line = CharField()
 | 
					    line = CharField()
 | 
				
			||||||
 | 
					    strip_prefixes = CharField(help_text="Space-separated list of line prefixes to strip.",
 | 
				
			||||||
 | 
					                               required=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# vi:tabstop=4:expandtab:autoindent
 | 
					# vi:tabstop=4:expandtab:autoindent
 | 
				
			||||||
 | 
				
			|||||||
@ -51,7 +51,8 @@ def import_file(request):
 | 
				
			|||||||
        if form.is_valid():
 | 
					        if form.is_valid():
 | 
				
			||||||
            log_file = request.FILES['log_file']
 | 
					            log_file = request.FILES['log_file']
 | 
				
			||||||
            context = form.cleaned_data['context']
 | 
					            context = form.cleaned_data['context']
 | 
				
			||||||
            ignores = form.cleaned_data['ignore'].split(',')
 | 
					            ignores = form.cleaned_data['ignore_nicks'].split(',')
 | 
				
			||||||
 | 
					            strips = form.cleaned_data['strip_prefixes'].split(' ')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            whos = []
 | 
					            whos = []
 | 
				
			||||||
            for line in log_file:
 | 
					            for line in log_file:
 | 
				
			||||||
@ -66,7 +67,8 @@ def import_file(request):
 | 
				
			|||||||
                whos.append(who)
 | 
					                whos.append(who)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # this is a line we probably care about now
 | 
					                # this is a line we probably care about now
 | 
				
			||||||
                _learn_line(what.rstrip(), context)
 | 
					                what = [x for x in what.rstrip().split(' ') if x not in strips]
 | 
				
			||||||
 | 
					                _learn_line(' '.join(what), context)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            log.debug(set(whos))
 | 
					            log.debug(set(whos))
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
@ -84,7 +86,9 @@ def teach_line(request):
 | 
				
			|||||||
        if form.is_valid():
 | 
					        if form.is_valid():
 | 
				
			||||||
            line = form.cleaned_data['line']
 | 
					            line = form.cleaned_data['line']
 | 
				
			||||||
            context = form.cleaned_data['context']
 | 
					            context = form.cleaned_data['context']
 | 
				
			||||||
            _learn_line(line.rstrip(), context)
 | 
					            strips = form.cleaned_data['strip_prefixes'].split(' ')
 | 
				
			||||||
 | 
					            what = [x for x in line.rstrip().split(' ') if x not in strips]
 | 
				
			||||||
 | 
					            _learn_line(' '.join(what), context)
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        form = TeachLineForm()
 | 
					        form = TeachLineForm()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user