Skip to content

Сохраняет ваш диалог с пользователем ВКонтакте.

Notifications You must be signed in to change notification settings

ap-Codkelden/yavg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 

Repository files navigation

Требования

Требует Python 3.x, под вторым не взлетит, так как некоторые модули в 3.0 были переименованы. Сохраняет ваш диалог с пользователем, id которого указывается при запуске.

Сохранение диалогов

Для начала работы с приложением необходимо:

  • создать standalone-приложение ВКонтакте и включить его;
  • предоставить этому приложению доступ к общей информации, информации о друзьях пользователя и сообщениям (если доступ ещё не предоставлялся, можно попробовать использовать параметр -authurl для показа URL, переход по которому вызовет диалог авторизации);
  • на странице настроек приложения узнать ID приложения;
  • использовать при запуске параметр appid c ID приложения (например appid 456789).

Возможности:

  • возможность сохранения диалогов с пользователем (параметр -uid), или многопользовательского диалога (параметр-chatid)

  • вывод списка вашего списка друзей с их id (параметр -f)

  • сохранение ваших диалогов с пользователями в файлыdialogs.txtи dialogs.json (на случай, если беседа велась с пользователем, которого нет у вас в друзьях), содержащий имена, id, дату и время последнего сообщения и начало беседы - этого должно хватить, чтобы вспомнить (параметр -d). Чтобы полученный JSON был сохранен как ASCII, следует указать параметр -ascii Замечание относительно использования параметра -d: В теории скрипт написан так, чтобы вытащить все диалоги, но так как у меня менее 200 диалогов, то возможности проверить, корректно ли обрабатывается случай, если диалогов более 200, не было.

  • при указании параметра -s по окончании работы будет выведено количество сохраненных сообщений.

    Диалоги отсортированы по дате от более ранних к более поздним.

Диалог сохраняется в XML-файл с именем conversation_<имя_собеседника>.xml

Структура XML-файла (отступы и переносы строк только для удобочитаемости, реальный XML будет в минифицированном виде):

<conversation friend="заголовок">
    <!-- 0 – полученное сообщение, 1 – отправленное сообщение, 2 - переслано -->
    <message datetime="дата и время сообщения" 
            direction="0|1|2" 
            author="Переслано|Вы|<имя_собеседника">текст сообщения
        <attachment type="photo" 
            url="URL_изображения"/>
        <attachment type="video" 
            duration="продолжительность, сек" 
            preview="URL_изображения_предпросмотра"/>заголовок_видео
            <description>описание видео</description></attachment>
        <attachment type="audio" 
            performer="исполнитель" 
            title="название" 
            url="URL_файла"/>
        <attachment type="doc" 
            size="размер, Кб" 
            url="URL_файла" 
            ext="расширение">заголовок_документа</attachment>
        <attachment type="wall" 
            owner="автор_записи" 
            from="кто_отправил" <!-- если запись со стены другого участника -->
            date="дата и время сообщения"/>текст_записи_на_стене
        <attachments type="тип_вложения"/></attachment>
    </message>
<conversation>

Примеры использования

Подразумевается, что в системе установлен Python 3, который вызывается командой python в терминале.

Пользователи Microsoft Windows вместо команды python могут использовать py -3, как описано тут.

  • py -3 vk.py -uid 12345 - сохранить диалог с пользователем, id которого 12345
  • py -3 vk.py -f - показать список своих друзей и их id
  • py -3 vk.py -d - сохранит список диалогов в файлы dialogs.txtи dialogs.json

Генерация HTML

Поскольку XML пригоден для дальнейшей обработки, но для чтения человеком не очень подходит, после генерации XML-файла можно воспользоваться прилагаемым примерным файлом XSLT vk.xsl и с помощью любого XSLT-парсера (например Saxon) сгенерировать HTML-файл.

Пример:

java -jar saxon9he.jar -xsl:vk.xsl conversation_%USERNAME%.xml -o:output.html

Известные недостатки

  • не во всех местах реализована обработка ошибок. :)

  • если пользователем в сообщение было вложено несколько фото, в файл попадает ссылка только на первое из них.

  • адреса URL в тескте не конвертируются в ссылки.

  • при использовании Microsoft Windows возможен некорректный вывод строк в терминале. Возможный способ её устранения — установка в терминале кодировки Windows-1251 командой

    chcp 1251
    

    однако это вызовет ошибку при попытке вывода символов Unicode, аналогов которых нет в Windows-1251

About

Сохраняет ваш диалог с пользователем ВКонтакте.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published