-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
80 lines (72 loc) · 3.13 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import utils as u
import vk_api as v
WAIT_TIME = u.WAIT_TIME
# Load myself and create dir
u.info("Загрузка текущего профиля")
me = v.get_user()
u.info("Текущий профиль:",v.gen_name(me))
done = u.done_read(me)
if done['uid'] == me['uid']:
u.warning("Найден файл сохранения для этого профиля.\nЕсли вам надо начать заново, просто удалите файл %s." % done['filename'])
dirname = v.gen_dir_name(me) #v.gen_name(me) + '_' + str(me['uid'])
else:
u.info("Создание директории")
dirname = v.gen_dir_name(me)
dirname = u.mklsdir(dirname)
u.info("Текущая директория:", dirname)
done['uid'] = me['uid']
u.info("Загрузка диалогов")
dialogs = v.get_dialogs()
u.info("Всего %d диалогов" % len(dialogs))
"Загрузка личных сообщений:"
for idx,dialog in enumerate(dialogs):
u.sleep(WAIT_TIME)
file = None
if dialog['uid'] <= 0: # Is group message
u.warning("Сообщения с группой (id={}) не поддерживаются".format(dialog['uid']))
elif 'chat_id' in dialog: # Is chat message
u.info("Беседа '%s'" % dialog['title'])
if dialog['chat_id'] in done['chat']:
u.info('Уже загружено')
continue
messages = v.get_group_messages(dialog['chat_id'])
u.info("Всего %d сообщений"%len(messages))
file = u.getlsfile(dirname,dialog['title'].replace(' ','_') + '_' + str(dialog['chat_id'])+'.html')
u.writeheader(file)
u.print_pb(0)
for i,message in enumerate(messages):
u.print_pb(i/len(messages))
user = v.get_user(message['uid'])
file.write(v.gen_div_by_message(message,user).encode("UTF-8"))
u.print_pb(1)
print()
u.writefooter(file)
file.close()
done['chat'].append(dialog['chat_id'])
else: # Is private message
user = v.get_user(dialog['uid'])
u.info("Личные сообщения с %s" % v.gen_name(user))
if dialog['uid'] in done['private']:
u.info('Уже загружено')
continue
messages = v.get_private_messages(user['uid'])
u.info("Всего {} сообщений".format(len(messages)))
file = u.getlsfile(dirname,v.gen_name(user) + '_' + str(user['uid'])+'.html')
u.writeheader(file)
u.print_pb(0)
for i,message in enumerate(messages):
u.print_pb(i/len(messages))
sender = None
if message['out'] == 1:
sender = me
else:
sender = user
file.write(v.gen_div_by_message(message,sender).encode("UTF-8"))
u.print_pb(1)
print()
u.writefooter(file)
file.close()
done['private'].append(dialog['uid'])
u.info("Загружено диалогов %d из %d (%d%%)" % (idx+1,len(dialogs),int(((idx+1)/len(dialogs))*100)))
u.done_write(done)
u.done_remove(done)