суть того, чем я занимался отражена в заголовке - я написал программу, которая репостит твиты в статус во вконтакте.
задача довольно простая и совершенно неоригинальная. собственно началось с того, что я прочитал статью на Хабре о том, как это решается на python'е и аналогичную статью про php. в интернетах вроде бы даже какие-то онлайн сервисы есть специально для этой задачи. но тут весь цимус в том, чтобы решить эту несложную задачу самому, используя свои любимые инструменты. собственно решение на php появилось позже и с такой же целью.
ну и на чём же писал я? ответ очевиден - на haskell'е, natürlich!
в реализации решения мне помогли те две статьи и статья про репостинг из rss в livejournal на хаскелле.
сначала я хотел по-честному сделать работу с твиттером через twitter-api: потыкал соответствующую библиотечку из hackage, но она сходу не заработала и я её оставил - мне хотелось побыстрее получить результат и было лень копаться и разбираться, что не так. а поскольку твиттер транслируется по rss и чтение rss на haskell' е - уже решённая задача, я пошёл этим путём.
это первое отличие от уже имеющихся решений.
мнимый минус такого подхода в том, что это может медленнее работать, так как твиты получаются несколько опосредовано,, но поскольку срочности особой нету и счёт не идёт на секунды, этот минус отменяется.
второй мнимый минус в том, что так не получить доступ к закрытым страницам. если ваши твиты доступны только для ваших фоловеров, то по rss они не транслируются. но значит вам и не надо, чтобы такие твиты были во вконтакте! так что этот минус тоже отменяется.
плюс же состоит в том, что это более универсальное решение. можно транслировать любой rss-канал во вконтакт. для этого надо будет внести небольшие изменения. но важно то, что нынешняя заготовка даёт возможности для улучшений. можно даже сказать, что это не twitter2vkontakte, а rss2vkontakte.
втрое отличие: я пользовался vkontakte-api, а не парсил страницу в поисках статуса, как мои предшественники. и это правильно. это значит входить в дом через парадную дверь, а не через задний двор.
это было очень длинное вступление, которое можно было не читать (:
остальное - это literate haskell. то есть не код с комментариями, а подробные комментарии с кусочками кода, которые являются обычными исходниками на haskell'е.
Комментариев нет:
Отправить комментарий