Greasy Fork

Greasy Fork is available in English.

VK-Gif

Gif на аватар VK

目前为 2017-02-28 提交的版本,查看 最新版本

// ==UserScript==
// @name VK-Gif
// @description Gif на аватар VK
// @author Last8Exile
// @license MIT
// @version 1.2
// @noframes
// @include *://vk.com/*
// @namespace http://greasyfork.icu/users/61164
// ==/UserScript==

(function() {
    'use strict';
    if (window.top != window.self)
        return;

    document.body.addEventListener("DOMNodeInserted",refresh);

    function refresh()
    {
        var profile = document.querySelector("#profile");
        var updated;
        if (profile === null)
            return;

        updated = profile.getAttribute("avatar");
        if (updated !== null)
            return;

        var statusBar = document.querySelector("span.current_text");
        if (statusBar === null)
            return;

        var statusText = statusBar.innerText;
        var pos = statusText.lastIndexOf("<!>");
        if (pos < 0)
        {
            profile.setAttribute("avatar","updated");
            return;
        }

        var link = statusText.slice(pos+3);
        var avatar = document.querySelector("img.page_avatar_img");
        if (avatar === null)
            return;

        var request = new XMLHttpRequest();

        var page = document.createElement("div");

        var qr = new XMLHttpRequest();
        qr.open('get',link);
        qr.send();
        qr.onreadystatechange=function()
        {
            if (this.responseText === "")
                return;
            updated = profile.getAttribute("avatar");
            if (updated !== null)
                return;

            page.innerHTML=this.responseText;
            var image = page.querySelector("img");
            var imageSrc = image.src;
            var questPos = imageSrc.lastIndexOf("?");
            var gifLink = imageSrc.slice(0,questPos);

            avatar.src = gifLink;
            statusBar.innerText = statusText.slice(0,pos); //Удалите эту строчку чтобы скрипт оставлял ссылку на картинку в статусе.
            profile.setAttribute("avatar","updated");
        };
    }
})();