diff --git a/printer.py b/printer.py index b6d88b1..da41ab1 100755 --- a/printer.py +++ b/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) \ No newline at end of file +# printNow(query, results, 0) \ No newline at end of file diff --git a/start.py b/start.py index d861bb5..99cf039 100644 --- a/start.py +++ b/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()