• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии
  • Все
  • Новости
  • События
  • Статьи
  • Блоги

Linq To Twitter: Считаем слова, хеш-теги и собеседников сами

Linq To Twitter: Считаем слова, хеш-теги и собеседников сами

outcoldman
03.12.2009 9:48

Недавно в сети начала гулять ссылка на проект http://tweetcloud.icodeforlove.com/, который мог подсчитать количество используемых слов в ваших сообщениях в twitter и нарисовать некий граф. Но у данного проекта было несколько больших недостатков: русские слова не считались, после подсчета он писал в tweet – спамил про себя. Может быть и еще какие то недостатки: первых двух мне хватило, чтобы не лезть смотреть этот проект. Но, вспомним чудесный продукт LinqToTwitter, о котором я уже как то писал в своем блоге. Ну и понятно, что подсчитать количество слов не составит особого труда.

Потому, берем WPF + LinqToTwitter, пару вечеров и наше облако тегов готово:

Capture

Сразу скажу, что пока писал меня вроде пару раз забанили на TwitterAPI (с ним, вроде, должен работать LinqToTwitter), я добавил Thread.Sleep(200) в промежутки запросов, чтобы хоть как то разгрузить, но проблемы остались – бывают реже, но бывают, так что учтите (не увлекайтесь). После бана около суток не будут работать клиенты. У меня 800 твиттов грузятся и обрабатываются около минуты, время рассчитайте сами – сколько вам потребуется, чтобы подсчитать ваши слова.

Программа

Теперь пару слов о самой программе и интерфейсе. В верхний правый угол вбиваем пользователя и пароль и жмем кнопку Create Cloud, пошел progress bar, который можно в любой момент остановить кнопкой Stop (справа от него). Если нужно вынести какие то слова из статистики вписываем их через запятую или пробел в поле Parasites words. Сначала сам хотел заполнить как можно большим набором таких слов, а потом подумал, что все таки интересно сколько слов паразитов я действительно использую, так что по умолчанию осталось там мало. Статистику по словам я разбил на три группы “Слова”, “Хеш-теги”, “Пользователи”. Так же программа рядом с собой кладет лог файл, в который пишет все твитты, которые она скачала.

После загрузки, да и вообще в любой момент, можете нажать на логотип twitter и сохранить скриншот программы в файл *.png.

Внутренности

Что пришлось и что использовал внутри. Ну само собой LinqToTwitter, который пришлось пересобрать самому и выкинуть зависимости на библиотеки DotNetOpenAuth.dll и Kerr.Credentials.dll, так как с ними у меня на Any CPU сборка не работала, точнее не подгружалась библиотека Kerr.Credentials.dll при запуске (машина x64). Для визуализации использовал WPF – потому что быстро и сердито. Для того чтобы поле PasswordBox можно было биндить – взял решение отсюда (учтите это небезопасное решение, не просто так PasswordBox сделали без возможности устанавливать Binding на поле Password). Задача по сбору статистики работает отдельным потоком, опять таки при помощи моего любимого BackgroundWorker. Ну а сохранение скриншота программы стало возможно благодаря вот этой заметке.

Разбивал на слова я так:

string[] words = tweet.Text.Split(new[] {' ', '.', ',', '?', '!'}, StringSplitOptions.RemoveEmptyEntries);

Потому если этих наборов символов вам не хватит – добавьте свои. ‘)’ и ‘(’ я использоваться не стал, сейчас думаю, что надо было бы еще добавить ‘-‘, наверное. При считывании твиттов, программа их складывает так же в лог рядом с собой по дате. Это на случай – если хочется посмотреть действительно ли это ваш твиттер.

В целом код там достаточно простой. Изначально я даже подумал добавить туда БД (Compact) для истории твиттов, чтобы второй раз уже не скачивать, так же сделать возможность поиска по скаченным твиттам, ну и еще какие то задумки… Но пока оставлю так, если у кого то есть желание что то подправить – код там прост и понятен – правьте. Вносите предложения, может в будущем и еще что то добавлю, если будет спрос. Удачи!

Ссылки

  • Скачать TwitterCloud v.1.0
  • Скачать TwitterCloud v.1.0 src
Progg it
Подписаться: rss
outcoldman
03.12.2009 9:48
Комментариев:0 RSS Просмотров:909
Теги: c#, linqtotwitter, src, twitter, twittercloud, wpf

Denis Gladkikh

outcoldman Developer, Модератор форума GotDotNet, MVP Client App Dev, MCPD: ASP.NET 3.5
(none)
  • Блог

Облако тегов

.net .net framework 4.0 0x80072ee2 aero glass aero pick appdev asp.net automapper awesomium azure c# certification cloud computing coderun cryptography cryptopro css hack ebook faq google gotdotnet hello world javascript jetbrains kb971092 linqtotwitter log system mbunit menuitem microsoft mvp nhibernate other programming sample schedule security servicecontract sleep mode ssl student tdd tips&tricks tls trustallcertificatepolicy t-sql twitter vista visual studio vs.net vs2010 wake-on-lan windows 7 wpf wpf 4.0 wsus xaml криптография сертификаты хеш-функция

Записи

Популярные
  • mezastel > Сокращенный генератор C# в стиле Zen Coding
  • Enrey > О поедании памяти DataTable
  • XaocCPS > Установка Visual Studio 2010 RC
  • serbelyakov > DataGridView
  • Sergey Grigorev > Pex как инструмент для автоматизиции тестирования в .NET
  • XaocCPS > Bundler : клиентская оптимизация JavaScript в ASP.NET
  • mbakirov > Must have плагины для Visual Studio 2010 RC
  • shapovalov > AtomicCms - новая система управления сайтом на база ASP.NET MVC
  • paxer > Kentico CMS как платформа для разработки веб приложений на ASP.NET
  • clevelus > Новая электронная книга о Visual Studio 2010
Все популярные записи
Обсуждаемые
  • Enrey > О поедании памяти DataTable
  • sos > Работа на двух экранах - повышение производительно­сти или рассредоточение внимания?
  • paxer > Kentico CMS как платформа для разработки веб приложений на ASP.NET
  • serbelyakov > DataGridView
  • shapovalov > AtomicCms - новая система управления сайтом на база ASP.NET MVC
  • SergeyT. > Что нового в третьем издании книги Джеффри Рихтера "CLR via C#"
  • spugachev > Создание внебраузерных Silverlight приложений. Часть 1.
  • XaocCPS > Bundler : клиентская оптимизация JavaScript в ASP.NET
  • RaveNoX > Экспорт функции из .Net dll или пишем managed функцию для rundll32
  • ~44-ый > Немного о юзабилити. Веб-сайты.
Все обсуждаемые записи

Блоги

Новые
  • desco> Случайные записи
  • sashaeve> Блог Microsoft .NET User Group Винница
  • lukesky> Новости технологии NitrosBase
  • RaveNoX> Arthur Kraev
  • Rockie> Gennady G.(Rockie)
  • Новатор> SharePoint. Шаг за шагом.
  • ivanoff> Denis Ivanov
  • paxer> Программировани­е - как страсть
  • Realist> Build Your Web
  • veleslav> veleslav
Обсуждаемые
  • mihailik> Олег Михайлик
  • ceo> Нотатник Вiктора Шатохiна [MSFT]
  • gaidar> Gaidar Magdanurov
  • MikhailChernomo­rdikov> Mikhail Chernomordikov [MSFT]
  • Alexander Lozhechkin [MSFT]> Alexander Lozhechkin
  • agladkik> Andrey Gladkikh: Microsoft Dynamics
  • beerbong> Bong Blog
  • sos> Dmitry Soshnikov [MSFT]
  • not-a-kernel-gu­y> Зеркало: Not a kernel guy
  • sergun> Sergey Zwezdin
О сайте   Свяжитесь с нами   Конфиденциальность   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru