-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmain.py
62 lines (54 loc) · 2.02 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import gc
import os
import time
import machine
import api
import qr204
gc.enable()
# Для того, чтобы печатались фото нужно указать адрес сайта в img_url
# lepeshka.pythonanywhere.com указан для примера и проверки работы
#
#tg = api.TelegramBot('API-KEY',
# img_url='lepeshka.pythonanywhere.com')
tg = api.TelegramBot('API-KEY')
printer = qr204.QR204(machine.UART(2, 9600, tx=17, rx=16))
def convert_time(s):
date = time.gmtime(s - 946674000)
fmt = '{:04}/{:02}/{:02} {:02}:{:02}'
return fmt.format(*date[:5])
def message_handler(messages):
for message in messages:
if message[2] == '/start':
tg.send(message[0], 'This bot prints messages to thermal printer')
elif message[2] == '/info':
tg.send(message[0], 'My IP: ' + sta_if.ifconfig()[0])
else:
printer.awake()
if not printer.paper():
tg.send(message[0], 'No paper')
else:
printer.font_b()
printer.write('Sender: ')
printer.write(message[1])
printer.newline(1)
printer.write('Date: ')
printer.write(convert_time(message[3]))
printer.newline(1)
printer.font_a()
printer.bold_enbl()
printer.write('_ ' * 16)
printer.bold_dsbl()
printer.newline(1)
if 'data.bin' in os.listdir():
printer.print_image()
os.remove('data.bin')
else:
printer.write(message[2])
printer.newline(1)
printer.bold_enbl()
printer.write('_ ' * 16)
printer.bold_dsbl()
printer.newline()
printer.sleep()
printer.sleep()
tg.listen(message_handler)