Browse Source

making the printer print only 5 results/time

english-french
manetta 5 years ago
parent
commit
3a35965187
  1. 82
      printer.py
  2. 13
      start.py

82
printer.py

@ -40,30 +40,42 @@ def insert_linebreaks(string, linelength):
count = 0
return new
def printNow(query, results):
def printNow(query, results, results_count):
if connected == True:
print(escpos['reset'], file=stdout, flush=True)
print(escpos['init_printer'], file=stdout, flush=True)
print(escpos['select_international_character_set'], file=stdout, flush=True)
# print(escpos['select_international_character_set'], file=stdout, flush=True)
print(escpos['margin_left'], file=stdout, flush=True)
print(escpos['justify_center'], file=stdout, flush=True)
printed = False
if results_count == None:
results_count = 0
results_count_max = results_count + 5
current_count = 0
for x, document in results.items():
for n, sentence in enumerate(document['matches']):
sentence = str(sentence) # Turn Flask Markup object back to normal python string
sentence = sentence.replace('\n', ' ').replace(' ', ' ')
pattern = r'[\s\W\_]'+query+r'[\s\W\_\n]|^'+query+'|'+query+'$'
match = re.search(pattern, sentence, flags=re.IGNORECASE)
# print('match:', match)
if match:
match = match.group()
sentence_splitted = re.compile(match).split(sentence) # find the query in the sentence, and split the sentence up
# print('sentence splitted:', sentence_splitted)
for i, part in enumerate(sentence_splitted):
if n == 0: # first sentence of this document
if i == 0: # start of a new sentence
print('', file=stdout, flush=True)
linebreak = ''' **
print('current_count', current_count)
if current_count == results_count:
printed = True
if results_count < results_count_max:
print('results_count', results_count)
results_count += 1
sentence = str(sentence) # Turn Flask Markup object back to normal python string
sentence = sentence.replace('\n', ' ').replace(' ', ' ')
pattern = r'[\s\W\_]'+query+r'[\s\W\_\n]|^'+query+'|'+query+'$'
match = re.search(pattern, sentence, flags=re.IGNORECASE)
# print('match:', match)
if match:
match = match.group()
sentence_splitted = re.compile(match).split(sentence) # find the query in the sentence, and split the sentence up
# print('sentence splitted:', sentence_splitted)
for i, part in enumerate(sentence_splitted):
if n == 0: # first sentence of this document
if i == 0: # start of a new sentence
print('', file=stdout, flush=True)
linebreak = ''' **
** /** **
//** /** **
**************
@ -71,23 +83,24 @@ def printNow(query, results):
** /** //**
// /** //
// '''
print(linebreak, file=stdout, flush=True) # print line break ascii art
print('\n', file=stdout, flush=True)
title = insert_linebreaks(document['name'], 46)
print(title, file=stdout, flush=True) # print the document name
print('\n', file=stdout, flush=True)
print(linebreak, file=stdout, flush=True) # print line break ascii art
print('\n', file=stdout, flush=True)
title = insert_linebreaks(document['name'], 46)
print(title, file=stdout, flush=True) # print the document name
print('\n', file=stdout, flush=True)
# start of sentence
part = insert_linebreaks(part, 46)
print(part, escpos['bold'], file=stdout, flush=True) # print current part of sentence
# start of sentence
part = insert_linebreaks(part, 46)
print(part, escpos['bold'], file=stdout, flush=True) # print current part of sentence
if i + 1 != len(sentence_splitted): # if this part is not the last one
print(match, escpos['reset'], file=stdout, flush=True) # print query
if i + 1 != len(sentence_splitted): # if this part is not the last one
print(match, escpos['reset'], file=stdout, flush=True) # print query
# line breaker after each sentence
if i + 1 == len(sentence_splitted):
print('\n | \n', file=stdout, flush=True)
sleep(3)
# line breaker after each sentence
if i + 1 == len(sentence_splitted):
print('\n | \n', file=stdout, flush=True)
sleep(3)
current_count += 1
print(escpos['paperfeed_1l'], file=stdout, flush=True)
print(escpos['paperfeed_1l'], file=stdout, flush=True)
@ -96,8 +109,15 @@ def printNow(query, results):
print(escpos['papercut'], file=stdout, flush=True)
print(escpos['reset'], file=stdout, flush=True)
# reset when all results are printed
if printed == False:
results_count = 0
# printNow(query, results, results_count)
return results_count
# query = 'noise'
# results, _, _ = readings.request_results(query)
# pprint(results)
# printNow(query, results)
# printNow(query, results, 0)

13
start.py

@ -47,6 +47,13 @@ def index_lang(lang):
else:
connection = 'disconnected'
# Check if print command
if request.args.get('results_count', ''):
results_count = int(request.args.get('results_count', ''))
print('results_count', results_count)
else:
results_count = 0
if request.args.get('q', ''):
results, filenames, analytics = readings.request_results(query)
@ -54,9 +61,11 @@ def index_lang(lang):
if request.args.get('print', '') == 'now':
if connection == 'connected':
print('*print!*', file=stdout)
printer.printNow(query, results)
print('results_count (before)', results_count)
results_count = printer.printNow(query, results, results_count)
print('results_count (after)', results_count)
return flask.render_template(lang+'/results.html', query=query, results=results, filenames=filenames, connection=connection, suggestions=suggestions, analytics=analytics, lang=lang)
return flask.render_template(lang+'/results.html', query=query, results=results, filenames=filenames, connection=connection, suggestions=suggestions, analytics=analytics, lang=lang, results_count=results_count)
else:
index = readings.load_index()

Loading…
Cancel
Save