Hide Mentions in Twitter Web Interface
Jan 24 2010Во время сессии вечно хочется сделать что-нибудь эдакое совсем бесполезное, лишь бы только не готовиться к экзаменам. Внезапно последний экзамен получился автоматом (был целиком на одной лекции), так что я решил попрактиковаться в JavaScript, вместо того, чтобы заниматься полезными делами.
Некоторые тви-фашисты (вроде меня) не слишком любят читать реплаи чужим людям. Порой хочется открыть веб-интерфейс, открыть чью-нибудь ленту и просто почитать. Благо, букв немного. А там закрадутся 100500 реплаев, которые вообще ну никак в картину мира не вписываются. Так вот, давно хотелось их выпилить. Сначала я хотел сделать расширение для Chromium, но не вышло потом подумалось, что недурно было бы сделать что-нибудь более универсальное, например закладку. Пользователь на неё клац — и реплаи исчезли/появились. Ну не чудесно ли? :)
Этот большой и сташный кусок непостигшие дао могут пропустить, листайте ниже. Написался следующий скрипт (лицензирую под GPL v3, к слову):
if (typeof toggleTwitterUserMentions == "undefined")
{
toggleTwitterUserMentions = function()
{
self = this;
if (self.knowSettings == undefined)
{
self.knowSettings = true;
self.hideMentions = true;
self.getTweetsWithMentions = function()
{
return $('#timeline>li.status>span.status-body>span.entry-content>a.username').parent().parent().parent();
}
self.toggle = function()
{
if (self.hideMentions)
{
self.getTweetsWithMentions().slideUp();
} else
{
self.getTweetsWithMentions().slideDown();
}
self.hideMentions = !self.hideMentions;
}
self.onPageChange = onPageChange;
self.calledInternalOnPageChange = false;
onPageChange = function()
{
if (!self.calledInternalOnPageChange)
{
self.calledInternalOnPageChange = true;
self.onPageChange();
} else
{
self.hideMentions = !self.hideMentions;
self.toggle();
}
}
}
this.toggle();
}
}
toggleTwitterUserMentions();
После долгих и мучительных попыток его минимизировать и при этом оставить в рабочем состоянии осталось только первое требование. Видимо, я слишком хитро написал, чтобы обфускатор правильно всё разбрал и потом собрал обратно. Ну и ладно. Тем не менее, всё, что нужно для использования — добавить на панель следующую ссылку:
javascript:if(typeof toggleTwitterUserMentions=="undefined"){toggleTwitterUserMentions=function(){self=this;if(self.knowSettings==undefined){self.knowSettings=true;self.hideMentions=true;self.getTweetsWithMentions=function(){return $("#timeline>li.status>span.status-body>span.entry-content>a.username").parent().parent().parent()};self.toggle=function(){if(self.hideMentions){self.getTweetsWithMentions().slideUp()}else{self.getTweetsWithMentions().slideDown()}self.hideMentions=!self.hideMentions};self.onPageChange=onPageChange;self.calledInternalOnPageChange=false;onPageChange=function(){if(!self.calledInternalOnPageChange){self.calledInternalOnPageChange=true;self.onPageChange()}else{self.hideMentions=!self.hideMentions;self.toggle()}}}this.toggle()}}toggleTwitterUserMentions();
Потом можно в веб-интерфейсе твиттере этой кнопочкой пользоваться. Что стоит учесть:
- Повторное нажатие вернёт все реплаи
- При использовании кнопки «more» настройка сохраняется и реплаи прячутся
- При переходе в DM, replies или другие меню реплаи тоже прячутся
- При появлении новых твиттов вверху страницы реплаи не прячутся, что логично (?)
Enjoy, как говорится. Распространение в твиттере приветствуется %)
Парфюмерия для вас и ваших любимых
Услуги colocation для тех, кто хочет иметь полный контроль за сервером за умеренные деньги
Бесплатные курсы Linux — красные глаза, бессонные ночи :)
{ Tags: chromium, javascript, jquery, twitter }




Recent Comments