@@ -12,6 +12,7 @@ def __init__(self, file_info, min_ref=1, max_ref=1000, headers_map=None):
1212 super ().__init__ (file_info )
1313 self .headers = []
1414 self .literature_header = None
15+ self .literature_reference_text = []
1516 self .name_pattern = r'список[ \t]*(использованных|использованной|)[ \t]*(источников|литературы)'
1617 if headers_map :
1718 self .config = headers_map
@@ -55,6 +56,10 @@ def check(self):
5556 if not number_of_sources :
5657 return answer (False ,
5758 f'В Списке использованных источников не найдено ни одного источника.<br><br>Проверьте корректность использования нумированного списка.' )
59+
60+ if not self .checking_duplicate_sources ():
61+ return answer (False , 'В списке используемых источников есть дублирующиеся источники.' )
62+
5863 references , ref_sequence = self .search_references (start_literature_par )
5964 all_numbers = set (range (1 , number_of_sources + 1 ))
6065 if len (references .symmetric_difference (all_numbers )) == 0 :
@@ -124,6 +129,12 @@ def add_references(self, k, prev_ref, array_of_references, ref_sequence):
124129 array_of_references .add (k )
125130 return prev_ref
126131
132+ def checking_duplicate_sources (self ):
133+ for source in self .literature_reference_text :
134+ if self .literature_reference_text .count (source ) >= 2 :
135+ return False
136+ return True
137+
127138 def find_start_paragraph (self ):
128139 start_index = 0
129140 for i in range (len (self .file .paragraphs )):
@@ -142,6 +153,7 @@ def count_sources_vkr(self, header):
142153 break
143154 # if re.search(f"дата обращения", child["text"].lower()):
144155 literature_counter += 1
156+ self .literature_reference_text .append (child ["text" ])
145157 return literature_counter
146158
147159 def count_sources (self ):
@@ -165,6 +177,7 @@ def count_sources(self):
165177 for ind in range (first_string + 1 , last_string ):
166178 if re .match (f"{ literature_counter + 1 } ." , one_page [ind ]):
167179 literature_counter += 1
180+ self .literature_reference_text .append (one_page [ind ])
168181 return literature_counter
169182
170183 def search_literature_start_pdf (self ):
0 commit comments