-
Notifications
You must be signed in to change notification settings - Fork 0
/
text_converter.py
122 lines (101 loc) · 4.64 KB
/
text_converter.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
118
119
120
121
122
from bot.bot import text_handler
emoji_top = u'\U0001F4C8'
emoji_top_green = u'\U00002705'
emoji_down = u'\U0001F4C9'
emoji_down_red = u'\U0000274C'
def num_conversion(a):
"""
Приводим числа в денежный вид
:param a:
:return:
"""
return '{:,}'.format(int(a))
def clean(text):
"""
Отчищаем текст перед принятием
:param text:
:return:
"""
return text.replace('\t', '').replace('\n', '').strip()
def calculation_percent(price_old, price_new):
"""
Расчитываем процент между новой и старой ценой (для истории)
:param price_old:
:param price_new:
:return:
"""
if price_old > price_new:
percent_price_history = '- ' + str(round(((int(price_old) - int(price_new)) / int(price_new)) * 100, 2))
else:
percent_price_history = '+ ' + str(round(((int(price_new) - int(price_old)) / int(price_old)) * 100, 2))
return percent_price_history
def calculation_different_price(price_old, price_new):
"""
Расчитываем разницу между новой и старой ценой
:param price_old:
:param price_new:
:return:
"""
if price_old > price_new:
difference_price = '- ' + str(num_conversion(int(price_old) - int(price_new)))
else:
difference_price = '+ ' + str(num_conversion(int(price_new) - int(price_old)))
return difference_price
def send_mes_to_bot(item):
"""
Подготавливаем текст для телеграм бота
:param item:
:return:
"""
from main import log
first_row = '' # ID
second_row = '' # Name
third_row = '' # price
fours_row = '' # price_history
five_row = '' # address
six_row = '' # params
seven_row = '' # url
if item['type_update'] == 'update':
if item['item_price'] >= [(item['sql_price'],)]:
first_row = 'Обновилась цена id ' + str(item['sql_avito_id']) + ' ' + \
emoji_down + emoji_down + emoji_top_green + '\n\n'
third_row = 'Старая цена = ' + str(num_conversion(item['old_price'])) + ' руб. /' + \
' Новая цена = ' + str(num_conversion(item['sql_price'])) + ' руб.\n\n'
else:
first_row = 'Обновилась цена id ' + str(item['sql_avito_id']) + ' ' + \
emoji_top + emoji_top + emoji_down_red + '\n\n'
third_row = 'Старая цена = ' + str(num_conversion(item['item_price'][0][0])) + ' руб. /'+ \
' Новая цена = ' + str(num_conversion(item['sql_price'])) + ' руб.\n\n'
fours_row = 'Изменения цен \n' + str(item['price_history_srt']) + '\nРазница: ' + \
item['difference_price'] + ' (' + item['percent_difference_price'] + '%)\n\n'
elif item['type_update'] == 'new':
first_row = 'Новое объявление ' + str(item['sql_avito_id']) + '\n\n'
third_row = 'Цена: ' + str(item['sql_price']) + ' руб.\n\n'
else:
log.error('type_update = NONETYPE ' + str(item['sql_avito_id']))
second_row = str(item['sql_name']) + '\n\n'
five_row = 'Адрес: ' + str(item['sql_address']) + '\n\n'
six_row = 'Параметры: ' + str(item['sql_params']) + '\n\n'
seven_row = 'Ссылка ' + str(item['sql_url']) + '\n\n'
none_type_of = ['Личные вещи', 'Работа', 'Для дома и дачи', 'Предложение услуг', 'Электроника', 'Животные',
'Готовый бизнес и оборудование']
if item['sql_type_of'] == 'Недвижимость':
mes_to_bot = first_row + third_row + fours_row + five_row + seven_row
elif item['sql_type_of'] == 'Транспорт':
mes_to_bot = first_row + second_row + third_row + fours_row + six_row + seven_row
elif item['sql_type_of'] == 'Хобби и отдых':
mes_to_bot = first_row + second_row + third_row + fours_row + five_row + six_row + seven_row
elif item['sql_type_of'] in none_type_of:
mes_to_bot = first_row + second_row + third_row + fours_row + seven_row
else:
log.error('sql_type_of = NONETYPE ' + str(item['sql_avito_id']))
mes_to_bot = 'sql_type_of = NONETYPE ' + str(item['sql_avito_id'])
text_handler(item['sql_chat'], mes_to_bot)
def parse_items_to_send(items):
"""
Формируем данные для отправки в ТГ
:param items:
:return:
"""
for item in items:
send_mes_to_bot(item)