LINUX.ORG.RU

Как вернуть entry если срабатывает условие?

 ,


0

1

Всем доброго времени суток.

Подскажите хочу вернуть id пользователя из thunderbird. Но, не могу придумать как выцепить. Если делаю такой код в консоли, то возвращает нужное значение. TB же вообще не стартует когда условие используется. Если его закомментировать, то всё отлично и user_email возвращает. Возможно кто-то корячил что-то подобное.

var user = 'ppd.yandex'
var accounts = getPref("mail.accountmanager.accounts"); #получаем список аккаунтов account1,account2..
var arr_accounts = accounts.split(','); #делаем из строки список

#возвращаем все idшки, которые смогли найти
var id_user = arr_accounts.map(function(entry) {
    return id_accounts = getPref("mail.account."+entry+".identities");
})

#возвращаем email пользователя и вот тут если он содержит имя пользователя, то хочу вернуть саму id
var id_arr = id_user.forEach(function(entry) {
    user_email = getPref("mail.identity."+entry+".useremail");
    if(user_email.indexOf(user) !== -1) {
        return id_user_mail = entry;
    }
})

Или, возможно кто-то подскажет, как мне запустить консоль JS в самом thunderbird, по аналогии с firefox. Весь мозг себе сломал в попытке вернуть эту id.

В общем, вернуть entry не вышло. Возможно это ограничения Thunderbird, но выполнять условия в цикле он упорно не хочет. Обошел это костылем - отдаю массив в котором id:email, а там уже Python'ом беру нужное. Если вдруг кому-то взбредет в голову, то вот:

var user_id = [];
var accounts = getPref("mail.accountmanager.accounts");
var arr_accounts = accounts.split(',');
var id_user = arr_accounts.map(function(entry) {
    return id_accounts = getPref("mail.account."+entry+".identities");
})
id_user = id_user.filter(function(id) {return id});
id_user.forEach(function(entry) {
    user_email = getPref("mail.identity."+entry+".useremail");
    user_arr = entry + ":" + user_email;
    user_id.push(user_arr);
})
hanharr ()