Опубликовано 4 декабря 2010, 04:07 под Pendulum - Propane Nightmares

Накурившись сативы и возлюбив весь мир, решил начать юзать твиттер. Включил кросспостинг вконтакте, пару раз грязно выругался в тестовых целях1 — и пол-дела сделано, теперь Тина Канделаки сможет читать мои шутки про бусы и подоконники. А вот я не смогу — держать вкладку с твиттером постоянно открытой почему-то не сильно охота2, а десктопного клиента, чтобы был красивый и розовенький почему-то не нашлось.3 Попробовал Firefox + отдельный профиль + Hide GUI bars + оконным менеджером убрать заголовок и рамку + юзерскриптом выкинуть часть интерфейса — вроде норм получалось, но на середине процесса вспомнил, что ссылки надо будет открывать другим браузером, и почему-то эта проблема показалась мне неразрешимой4. Ну что же, всё к тому и шло: Qt + WebKit. Пишем собственный Twitter-клиент

В результате получилось вот что:

theTwitter 0.01a

Розовый, конечно, отлично подходит к обоям, системной теме и углу второго монитора, но саму идею можно считать реализованной. Клиент, скорее всего, уедет на третий монитор, коий наконец-то появилась реальная необходимость купить, рядом всуну такое же для μTorrent и ещё чего-нибудь, и будет ок. А теперь о неприятном.

Отображение твиттера в виде «виджета», не показываемого на панели задач, не сворачивающегося по Win+D и никак не мешающего другим окнам, реализовано путём вызова setWindowFlags(Qt::SplashScreen). Минус такого подхода (в Openbox; как в других WM и, тем более, под виндой, не знаю): в такое окно нельзя ничего писать — текстовые поля не будут получать фокус. Но контекстное меню работает и позволяет вставлять из буфера обмена — это, в частности, помогает залогиниться шестнадцатый раз за последнюю минуту: так-то логин идёт автоматом при входе, но после нескольких попыток, вне зависимости от их успешности, появляется капча. Это проблема номер один. Решена, подробнее в комментариях.

Проблема номер два: правая колонка. Каждый, у кого есть FireBug, может убедиться, что она лежит в <div class="dashboard">, и что если этот элемент удалить, она пропадёт, а всё остальное будет работать дальше. Но если мы то же самое проделаем в WebKit:

ui->webView->page()->mainFrame()->evaluateJavaScript("$('.dashboard').remove();");

то она всё равно будет отображаться, уехав под твиты. Что я только не пробовал — бесполезно! Проблема решена, подробнее в комментариях.

А так вроде круто всё. Если вы хотите поучаствовать, вот исходники. В mainwindow.cpp надо поправить местоположение виджета на экране и его размеры:

this->setGeometry(0, 40, 620, 1024);

логин и пароль:

ui->webView->page()->mainFrame()->evaluateJavaScript("$('#username').val('@_@'); $('#password').val('@_@'); $('#signin_submit').trigger('click');");

возможно, размеры #page-container и #page-outer для вашей темы. И можно юзать

Голова болит пиздец

[1] — Кое у кого телефон Fly, и когда с ним разговариваешь, слышно себя с секундной задержкой и довольно громко. То есть получается можно взглянуть на себя со стороны. Я ужасно разговариваю: не то, чтобы мат через слово — слово через мат, а то и через два.
[2] — И чем это интересно твиттер так принципиально отличается от GMail и Google Reader? А вот неохота и всё. Неудобно. Koromshuk
[3] — Точнее, я попробовал только один: TwitterDeck. Эта падла, будучи написанной на Air, отказалась нормально работать вне GNOME/KDE, при этом огромный, бесполезный и плохо отключаемый Welcome, появляющийся через 10 секунд после запуска, напомнил ICQ5. То, что не на Air, даже смотреть бесполезно: оно всё убогое, с нативными контролами. Хорошо если не падучее. В опере был хороший виджет когда-то давно, и, наверное, есть и сейчас, но с оперой мы попрощались. Даже не установлена.
[4] — Я просто уверен, что можно написать расширение. Так и не посмотрел в доке, когда уже смотреть, время без пятнадцати четыре!
Комментарии (5)
anonymous
4 декабря 2010, 05:22
S Q #1
А мне больше всего нравится в браузере)
Он меня как и комп и система почти никогда не отключается

зы полезно может будет читануть))
http://file.alice2k.ru/2010/twitter-1.png
http://file.alice2k.ru/2010/twitter-2.png
http://file.alice2k.ru/2010/twitter-3.png
А мне больше всего нравится в браузере) Он меня как и комп и система почти никогда не отключается ;) зы полезно может будет читануть)) <a href="http://file.alice2k.ru/2010/twitter-1.png">http://file.alice2k.ru/2010/twitter-1.png</a> <a href="http://file.alice2k.ru/2010/twitter-2.png">http://file.alice2k.ru/2010/twitter-2.png</a> <a href="http://file.alice2k.ru/2010/twitter-3.png">http://file.alice2k.ru/2010/twitter-3.png</a>
anonymous
4 декабря 2010, 06:54
S Q #2
Hotot, вроде, красивый и розовенький. Но я его так и не завёл.
Hotot, вроде, красивый и розовенький. Но я его так и не завёл.
osdohtem
4 декабря 2010, 07:23
S Q #3
Вова Плагин — Return!
Вова Плагин — Return!
vas3k
4 декабря 2010, 11:13
S Q #4
зы полезно может будет читануть))
Ну нахуя ты картинкой запостил, читать невозможно =\
Твой блог лег что-ли?


ВАВАН опять обдолбанный.

Добавлено через 4 минуты
http://file.alice2k.ru/2010/twitter-3.png
Почитал, меня нет, девушка моя есть.
Сука, не зря я тебя зобанил :3

Добавлено через 34 секунды
http://file.alice2k.ru/2010/twitter-1.png
Про кибика много всего рассказать могу как о человеке, но боюсь разочаровывать тебя

Добавлено через 31 секунду
Точно. Я тоже пойду переводить свой бложек на JPEG-формат. Этож круто. И верстка не едет :3
<quote>зы полезно может будет читануть))</quote> Ну нахуя ты картинкой запостил, читать невозможно =\ Твой блог лег что-ли? ВАВАН опять обдолбанный. *DRINK* Добавлено через 4 минуты <quote>http://file.alice2k.ru/2010/twitter-3.png</quote> Почитал, меня нет, девушка моя есть. Сука, не зря я тебя зобанил :3 Добавлено через 34 секунды <quote>http://file.alice2k.ru/2010/twitter-1.png</quote> Про кибика много всего рассказать могу как о человеке, но боюсь разочаровывать тебя :) Добавлено через 31 секунду Точно. Я тоже пойду переводить свой бложек на JPEG-формат. Этож круто. И верстка не едет :3
themylogin
4 декабря 2010, 15:58
S Q #5
Hotot, вроде, красивый и розовенький
http://www.hotot.org/gallery.html красивый, но Qt и беленький
ВАВАН опять обдолбанный.
На этот раз это всё были шутки
И верстка не едет :3
И в IE4 работает

Добавлено через 27 минут
меня нет, девушка моя есть.
Ты есть. На первой странице в интересных личностях.

Добавлено через 3 минуты
Меня нет

Добавлено через 3 минуты
А мне больше всего нравится в браузере)
Он меня как и комп и система почти никогда не отключается
Слова перепутал?
Тоже так хочу, но получится, скорее всего, только летом.

Добавлено через 38 секунд
Вова Плагин — Return!
Пошёл доделывать плагин

Добавлено через 2 часа 43 минуты
Проблема номер один решена: на webView повесили eventFilter, вызывающий activateWindow при наступлении QEvent::MouseButtonPress.

Проблема номер два тоже решена: <div class="dashboard">, оказывается, появляется после загрузки страницы, даже после document.ready. Копаться в JS твиттера, ища куда бы повесить свой обработчик, неохота, поэтому
.dashboard { display: none; }
Исходники обновил. Теперь надо GUI для настройки и закруглённые края.

Кстати, мне одному кажется, что маргины вокруг непосредственно твиттера неодинаковые? А они одинаковые в гимпе померил
<quote>Hotot, вроде, красивый и розовенький</quote><a href="http://www.hotot.org/gallery.html">http://www.hotot.org/gallery.html</a> красивый, но Qt и беленький :(<quote>ВАВАН опять обдолбанный. *DRINK*</quote>На этот раз это всё были шутки :-[<quote>И верстка не едет :3</quote>И в IE4 работает *THUMBS UP* Добавлено через 27 минут <quote>меня нет, девушка моя есть.</quote>Ты есть. На первой странице в интересных личностях. Добавлено через 3 минуты Меня нет ]:-> Добавлено через 3 минуты <quote>А мне больше всего нравится в браузере) Он меня как и комп и система почти никогда не отключается</quote>Слова перепутал? :) Тоже так хочу, но получится, скорее всего, только летом. Добавлено через 38 секунд <quote>Вова Плагин — Return!</quote>Пошёл доделывать плагин :( Добавлено через 2 часа 43 минуты Проблема номер один решена: на webView повесили eventFilter, вызывающий activateWindow при наступлении QEvent::MouseButtonPress. Проблема номер два тоже решена: &lt;div class="dashboard"&gt;, оказывается, появляется после загрузки страницы, даже после document.ready. Копаться в JS твиттера, ища куда бы повесить свой обработчик, неохота, поэтому<source>.dashboard { display: none; }</source>Исходники обновил. Теперь надо GUI для настройки и закруглённые края. Кстати, мне одному кажется, что маргины вокруг непосредственно твиттера неодинаковые? А они одинаковые :-\ в гимпе померил
Добавить комментарий
Войдите через  Доступные тэги: <b>, <i>, <s>, <u>, <a href="">, <img src="" /> (загрузить), <pre>, <quote>
Теги
1nsk C++ E-Business GNU/GPL-софт HTML/CSS ICQ KDE last.fm Linux Linuxnsk Live Lyceum game Microsoft Motivator MySQL P2P Party PHP Python Qt SEO Sibnet thelogin.ru Timelapse Web 2.0 Webstream Windows Wireless А я говорил! Авто Админ Аниме Атмосфера Безобразие Бизнес Блоги Боты Бред Быт Велосипед Весна Вечер Взлом Винил Винтаж Вконтакте Вода Воспоминания Гетто Гламур Гопота Горский Графити Грузовик Дача Двор Девушки Деньги Дизайн Домофон Драки Еда Железо Животные Затулинка Зима Игрушки Игры Идея Интересно Интернет Исследование История Казань Карикатура Квартира Класс Компьютеры Коромшук Коты КПК Кран Красиво Криминал Крыша Курение Лето Литература Лицей НГТУ Лохи Магнитофоны Маркса Мат Математика Машинный перевод Мегафон Менты Метро Мечты Мифы Мне стыдно Мобайл Можга МТС Музыка Мультикасса Мультики Мы помним Надписи Наука НГТУ Недвижимость Непоняятно Новосибирск Носители Ноутбуки Ночь Обидно Обман Образование Общественный транспорт Омск Опечатки Орфография Осень Парк Периферия Пиратство Плохо Погода Поезд Помойка Праздники Презрение Природа Провайдеры Программирование Протест Пьянки Радиотехника Растения Реклама Религия и вера Ретро Рисунок Руины Рэп Салют Серверы Сервис Сериалы Скринкаст Скриншоты Смешно СМИ Снег Собаки Совет Софт Спам Спасём Россию Спецтранспорт Стоп-ляп Страх Стройка Студяга Танцы ТВ Трамваи Транс Транспорт Уважаю Ужас Умный дом Утро Филдрепорты Философия Форум ФПМИ Хикки Хостинг Цитатник Школа 208 ЭГ Эксперимент Юго-Западный
Twitter 04-12-2010
Lorem Ipsum
Пишу Twitter-клиент :(
Lorem Ipsum
Дайте пододеяльник, я хочу в космос. Экспорт в twitter прошёл успешно.
Lorem Ipsum
Ехехе, трансформатор тоже накрыло!
Lorem Ipsum
Хуя уебало, пишу с потолка
Lorem Ipsum
Хакеры взломали главный хостинг, размещающий ProFTPD. В исходники был внедрен троян и машина каждого, кто скачивал приложение, получала "в нагрузку" закладку, открывающую доступ к системе. OPEN SOURCE.
Lorem Ipsum
Пришёл пацан. Вида гоповского, военника нет, нигде не работает, хочет кредит на 180 тысяч на 3 года.
Lorem Ipsum
Ипотека на 60 лет