Linkedin Autoconnect With User роль - PullRequest
       6

Linkedin Autoconnect With User роль

0 голосов
/ 27 апреля 2018

Я пытаюсь исправить этот сценарий, чтобы автоматически связывать людей, которых вы, возможно, знаете в Linkedin, на основе ролей пользователей (CEO e.t.c), Может ли кто-нибудь помочь мне исправить это, Ниже приведен мой код; Я пробовал скрипт почти во всех браузерах, кто-нибудь, помогите исправить это.

 var userRole = [
    "CEO",
    "CIO"
    ];

    var inviter = {} || inviter;
    inviter.userList = [];
    inviter.className = 'button-secondary-small';

    inviter.refresh = function () {
        window.scrollTo(0, document.body.scrollHeight);
        window.scrollTo(document.body.scrollHeight, 0);
        window.scrollTo(0, document.body.scrollHeight);
    };

    inviter.initiate = function()
    {
        inviter.refresh();
        var connectBtns = $(".button-secondary-small:visible");
    // 

        if (connectBtns == null) {var connectBtns = inviter.initiate();}

        return connectBtns;
    };
    inviter.invite = function () {
        var connectBtns = inviter.initiate();
        var buttonLength = connectBtns.length;
        for (var i = 0; i < buttonLength; i++) {
            if (connectBtns != null && connectBtns[i] != null) {inviter.handleRepeat(connectBtns[i]);}
                //if there is a connect button and there is at least one that has not been pushed, repeat
            if (i == buttonLength - 1) {
                console.log("done: " + i);
                inviter.refresh();
            }
        }

    };


    inviter.handleRepeat = function(button)
    {
        var nameValue = button.children[1].textContent
        var name = nameValue.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

        function hasRole(role){
        for(var i = 0; i < role.length; i++) {
            // cannot read children of undefined
            var position = button.parentNode.parentNode.children[1].children[1].children[0].children[3].textContent;
            var formatedPosition = position.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
            var hasRole = formatedPosition.indexOf(role[i]) == -1 ? false : true;
            console.log('Has role: ' + role[i] + ' -> ' + hasRole);
            if (hasRole) {
                return hasRole;
                        }
                    }
                return false;
        }
        if(inviter.arrayContains(name))

        {
             console.log("canceled");
             var cancel = button.parentNode.parentNode.children[0];
             cancel.click();
        }
        else if (hasRole(userRole) == false) {
            console.log("cancel");
            var cancel = button.parentNode.parentNode.children[0];
            cancel.click();
            }
        else if (button.textContent.indexOf("Connect")<0){
            console.log("skipped");
            inviter.userList.push(name); // it's likely that this person didn't join linkedin in the meantime, so we'll ignore them
            var cancel = button.parentNode.parentNode.children[0];
            cancel.click();
        }
        else {
            console.log("added");
            inviter.userList.push(name);
            button.click();
        }
    };



    inviter.arrayContains = function(item)
    {
        return (inviter.userList.indexOf(item) > -1);
    };

    inviter.usersJson = {};

    inviter.loadResult = function()
    {

        var retrievedObject = localStorage.getItem('inviterList');
        var temp = JSON.stringify(retrievedObject);
        inviter.userList = JSON.parse(temp);
    };

    inviter.saveResult = function()
    {
        inviter.usersJson = JSON.stringify(inviter.userList);
        localStorage.setItem('inviterList', inviter.usersJson);
    };


    setInterval(function () { inviter.invite(); }, 5000);

`

Когда я пытаюсь выполнить это, я получаю следующую ошибку:

VM288:49 Uncaught TypeError: Cannot read property 'children' of undefined
    at hasRole (<anonymous>:49:71)
    at Object.inviter.handleRepeat (<anonymous>:66:11)
    at Object.inviter.invite (<anonymous>:30:69)
    at <anonymous>:108:35

Есть идеи, как это исправить?

...