|
|
@ -29,6 +29,8 @@ logger = logging.getLogger(BASE_DIR.name) |
|
|
|
|
|
|
|
|
class TextExtractField(CharField): |
|
|
class TextExtractField(CharField): |
|
|
|
|
|
|
|
|
|
|
|
backend = None |
|
|
|
|
|
|
|
|
def __init__(self, **kwargs): |
|
|
def __init__(self, **kwargs): |
|
|
super().__init__(**kwargs) |
|
|
super().__init__(**kwargs) |
|
|
assert self.model_attr |
|
|
assert self.model_attr |
|
|
@ -37,11 +39,11 @@ class TextExtractField(CharField): |
|
|
self.model_attr = (self.model_attr, ) |
|
|
self.model_attr = (self.model_attr, ) |
|
|
|
|
|
|
|
|
def solr_extraction(self, arquivo): |
|
|
def solr_extraction(self, arquivo): |
|
|
backend = connections['default'].get_backend() |
|
|
if not self.backend: |
|
|
|
|
|
self.backend = connections['default'].get_backend() |
|
|
try: |
|
|
try: |
|
|
with open(arquivo.path, 'rb') as f: |
|
|
with open(arquivo.path, 'rb') as f: |
|
|
data = backend.extract_file_contents(f)['contents'] |
|
|
data = self.backend.extract_file_contents(f)['contents'] |
|
|
print('.') |
|
|
|
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
self.print_error(arquivo, e) |
|
|
self.print_error(arquivo, e) |
|
|
data = '' |
|
|
data = '' |
|
|
@ -126,7 +128,9 @@ class TextExtractField(CharField): |
|
|
value = getattr(obj, attr) |
|
|
value = getattr(obj, attr) |
|
|
if not value: |
|
|
if not value: |
|
|
continue |
|
|
continue |
|
|
data += getattr(self, func)(value) |
|
|
data += getattr(self, func)(value) + ' ' |
|
|
|
|
|
|
|
|
|
|
|
data = data.replace('\n', ' ') |
|
|
|
|
|
|
|
|
return data |
|
|
return data |
|
|
|
|
|
|
|
|
|