чат бот для нейтрона

 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
#$ neutron_plugin 01
#-*- coding: utf-8 -*-
import pymetar
weatherpar = 'UUEE'
def chat_personal(type, source, body):
hellos = [u'Yo, ', u'Привет, ', u'Приветствую, ', u'Здарова, ', u'Доброго времени суток, ']
hello = random.choice(hellos)
str1 = u'Меня сейчас нет. За меня отвечет робот, который на службе уже: '
if source[1] == 'd.natxa@gmail.com' or source[1]== 'spalk@ya.ru':
dimons = [u'Дима', u'Dimon', u'Дмитрий']
nick = random.choice(dimons)
elif source[1] == 'butschster@gmail.com' or source[1]=='pavel@butsch.ru':
butschs = [u'Павел', u'Павлик', u'Павлик-Внучек', u'ButscH', u'Павлуша', u'Пал Юрич']
nick = random.choice(butschs)
else:
friends = [u'добрый человек', u'товарищ', u'друг']
nick = random.choice(friends)
endtime = time.time()
resulttime = endtime - BOOTUP_TIMESTAMP
sec = 0
min = 0
hour = 0
day = 0
if resulttime > 86400:
day = int(resulttime/86400)
hour = int ((resulttime - day * 86400)/3600)
min = int((resulttime - day * 86400 - hour * 3600)/60)
sec = int((resulttime - day * 86400 - hour * 3600 - min * 60)/60)
bottime = str(day) + u' дн. ' + str(hour) + u' ч. ' + str(min) + u' мин. ' + str(sec) + u' сек.\n'
elif resulttime > 3600:
hour = int (resulttime/3600)
min = int((resulttime - hour * 3600)/60)
sec = int(resulttime - hour * 3600 - min * 60)
bottime = str(hour) + u' ч. ' +str(min) + u' мин. ' + str(sec)+ u' сек.\n'
elif resulttime > 60:
min = int(resulttime /60)
sec = int((resulttime - min * 60))
bottime = str(min) + u' мин. ' + str(sec) + u' сек.\n'
else:
sec = int (resulttime)
bottime = str(sec) + u' мин.\n'
###Weather
info = pymetar.MetarReport(str(weatherpar).strip())
try:
location = info.getStationName()
celsius = str(round(info.getTemperatureCelsius(), 1))
#fahrenheit = str(round(info.getTemperatureFahrenheit(), 1))
#humidity = str(round(info.getHumidity(), 1))
#weather = location + ' - ' + str(info.getWeather()) + ': ' + celsius + 'C' #+ fahrenheit + 'F' + ' - ' + humidity + '% Humdity'
weather = u'Погода в Москве: ' + celsius + u'C, ' + str(info.getWeather())
except Exception, ex:
weather = u'Чё-т не могу погоду в Москве определить!'
reply = hello + nick + '!\n' + str1 + bottime + '\n' + weather
if type == 'public':
if source[1]:
smsg(type, source, reply)
elif type == 'private':
smsg(type, source, reply)
def handler_chat_message(type, source, body):
if type == 'public':
firstword = string.split(body)[0]
if string.split(string.split(firstword, '_')[0], ':')[0].lower() == 'neutron' and firstword[-1] == ':':
if len(string.split(body)) > 1:
parameters = body[(body.find(' ') + 1):]
else:
parameters = ''
chat_personal(type, source, parameters)
elif type == 'private':
if not COMMANDS.has_key(string.split(body)[0]):
chat_personal(type, source, body)
register_message_handler(handler_chat_message)