-
Notifications
You must be signed in to change notification settings - Fork 0
/
telegrambot.py
117 lines (84 loc) · 3.23 KB
/
telegrambot.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# -*- coding: utf-8 -*-
import telepot
from telepot.loop import MessageLoop
#from telepot.namedtuple import ReplyKeyboardMarkup, KeyboardButton, ReplyKeyboardRemove
from main import process_img
import time
from skimage import io
from os import path, mkdir
import urllib
print('hello')
def handle(msg):
content_type, chat_type, chat_id = telepot.glance(msg)
print(content_type, chat_type, chat_id,msg['from']['first_name']+msg['from']['last_name'])
if content_type == 'photo':
message = " Let's see... "
bot.sendMessage(chat_id, message)
imdir = bot.getFile(msg["photo"][-1]["file_id"])
print imdir
num_proc = update_num_proc()
url = "https://api.telegram.org/file/bot"+ TOKEN +"/"+ imdir["file_path"]
print "URL of Image: ", url
imdir = ImageFolder+"/foto_"+str(num_proc)+".jpg"
urllib.urlretrieve(url, imdir)
im = io.imread(imdir)
text = process_img(im)
textdir = TextFolder+"/test_"+str(num_proc)+".txt"
if not path.isfile(textdir):
textfile = open(textdir, 'w+')
textfile.write(text)
textfile.close()
bot.sendMessage(chat_id,text)
elif content_type == 'text':
if msg['text'] == "/start":
message = 'Hello ' + msg['from']['first_name'] + ' ' + msg['from']['last_name'] + '\n'
message += 'I\'m OCR bot, a bot that will try to figure out'
message += 'letters in the images that you will send to me.\n'
message += 'Send me an image and let me read it for you!'
bot.sendMessage(chat_id, message)
elif msg['text'] == "Hola Carambola":
bot.sendMessage(chat_id, "hola pepsicola")
else:
bot.sendMessage(chat_id, "Sorry, I didn't understand you")
bot = telepot.Bot(TOKEN)
print(bot.getMe())
#==============================================================================
# im_num = 0
# filedir = 'telephoto/metadata.txt'
# with open(filedir, 'r') as myfile:
# data=myfile.read()
# myfile.close()
# print data
# im_num = int(data)
# with open(filedir, 'w') as myfile:
# myfile.write(im_num)
# myfile.close()
# foto_name = "telegram-photo"+str(im_num)+".jpg"
#==============================================================================
#Data options
ImageFolder = 'Telegram-Images'
TextFolder = 'Telegram-Text'
def update_num_proc():
#Creating root folder
if not path.exists(TextFolder):
mkdir(TextFolder)
#Creating metadata
if not path.isfile(TextFolder+"/metadata.txt"):
metadata = open(TextFolder+"/metadata.txt", 'w+')
metadata.write(str(1))
metadata.close()
metadata = open(TextFolder+"/metadata.txt", 'r+')
num_proc = int([x for x in metadata][0])
metadata.seek(0, 0);
metadata.write(str(num_proc+1))
metadata.close()
return num_proc
if not path.exists(ImageFolder):
mkdir(ImageFolder)
if not path.exists(TextFolder):
mkdir(TextFolder)
#===================================
MessageLoop(bot, handle).run_as_thread()
print('Listening ...')
while 1:
time.sleep(10)