-
Автор темы
- #1
Приветствую, написал я тут для себя любимого скрипт, он позволяет сохранять сообщения, которые вам отправляли.
Основная цель - если отправили текст, а потом удалили/изменили, то можно его посмотреть.
Примечания:
1. В логах не будут отображаться сообщения, если вы находитесь в открытом диалоге с пользователем. (Открытый диалог - общаетесь в данный момент времени и не переходите в диалог к другому пользователю).
2. Логи делаются каждые 0.5 сек.
3. Медиаконтент хранится в файле (ссылки на что-либо).
Скрипт стоял на хосте 2 дня, и падал только 1 раз, и то, из-за хоста.
---
Основная цель - если отправили текст, а потом удалили/изменили, то можно его посмотреть.
Примечания:
1. В логах не будут отображаться сообщения, если вы находитесь в открытом диалоге с пользователем. (Открытый диалог - общаетесь в данный момент времени и не переходите в диалог к другому пользователю).
2. Логи делаются каждые 0.5 сек.
3. Медиаконтент хранится в файле (ссылки на что-либо).
Скрипт стоял на хосте 2 дня, и падал только 1 раз, и то, из-за хоста.
---
Python:
from vk_api import vk_api
import datetime, time
new_id = '1'
new_text = '2'
old_id = '3'
old_text = '4'
vk_session = vk_api.VkApi(app_id=2274003, token='', scope='messages');
vk = vk_session.get_api()
while True:
time.sleep(0.5)
now = datetime.datetime.now()
month = '%d' % now.month
day = '%d' % now.day
hour = '%d' % now.hour
minute = '%d' % now.minute
second = '%d' % now.second
date = str(day) + '.' + str(month) + '|' + str(hour) + ':' + str(minute) + ':' + str(second)
massages = vk.messages.getDialogs(count = 20, unread = 1 )
try:
user_id = int(massages['items'][0]['message']['user_id'])
if user_id <0:
s = 0
else:
user_id = str(user_id)
s = 1
except:
pass
try:
if s == 0:
pass
else:
user_id = massages['items'][0]['message']['user_id']
text = massages['items'][0]['message']['body']
new_text = text
new_id = user_id
except:
continue
if new_id and new_text == old_text and old_id:
continue
else:
pass
if s == 0:
fullname = 'Сообщество'
else:
user = vk_session.method("users.get", {"user_ids": user_id})
fullname = user[0]['first_name'] + ' ' + user[0]['last_name']
try:
url = massages['items'][0]['message']['attachments']
except:
pass
if text == '':
print ('Пользователь: ' + str(fullname) + ' [ID:' + str(user_id) + '] | ' + 'Время: ' + '[' + str(date) + '] | ' + 'Текст: *URL* \n')
a = 'Пользователь: ' + str(fullname) + ' [ID:' + str(user_id) + '] | ' + 'Время: ' + '[' + str(date) + '] | ' + 'URL: \n' + str(url) + '\n'
file = open ('vk.txt', 'a', encoding="utf-8")
file.write(a)
file.close()
old_text = text
old_id = new_id
else:
b = 'Пользователь: ' + str(fullname) + ' [ID:' + str(user_id) + '] | ' + 'Время: ' + '[' + str(date) + '] | ' + 'Текст: \n' + str(text) + '\n'
print (b)
file = open ('vk.txt', 'a', encoding="utf-8")
file.write(b)
file.close()
old_text = text
old_id = new_id
Последнее редактирование: