twitter2vk — скрипт для автоматической перепубликации статусов из Твиттера во В Контакте. Например, если у вас остались старые друзья, которые никак не хотят уходить из В Контакте.
Преимущества
- Не хранит паролей, так что потеря файла настроек не будет столь страшна. В настройках хранятся только ID сессии В Контакте и данные для OAuth-входа в Твиттер. Особенно актуально для тех, кто использует один пароль для нескольких сервисов.
- Поддерживает ретвиты — публикует во В Контакте статусы других пользователей, которые вы отретвитили.
- Настройка формата статусов и ретвитов во В Контакте. Можно, например, заменять пользователей на ссылки на них или обрезать текст оставляя ссылку после него в полном виде: «Длинный текс… http//twitter.com/my/status/31337».
- Правила исключения статусов. Можно указывать, какие статусы не будут перепубликоваться во В Контакте (например, ответы другим пользователям Твиттера).
Установка
В идеале скрипт надо установить на сервер, которые постоянно работает, например на VPS или домашний тихий медиа-сервер. Но можно использовать и рабочую машину, но тогда статусу будут перепубликоваться только, когда она включена (впрочем теряться они не будут).
- Ставим Ruby и его менеджер пакетов RubyGems (команда для Ubuntu/Debian):
sudo aptitude install rubygems libopenssl-ruby ruby-dev
- Устанавливаем twitter2vk:
sudo gem install twitter2vk
- Запускаем мастер для создания настройки и задачи для cron:
twitter2vk
Если вы запустите мастер настройки ещё раз и укажите уже созданный файл настроек, то мастер не будет их затирать, а только обновит свойства для входа во В Контакте и Твиттер.
Мастер для создания настроек и скрипт перепубликации — разные пакеты, поэтому настройки можно создать на домашнем компьютере, а на сервера установить только скрипт перепубликации
sudo gem install twitter2vk_reposter
Чисто теоретически скрипт должен работать под Windows. Но тестировался только под ОС вида UNIX.
Настройка
Настройки сохранены в формате YAML, но он довольно прост.
Формат статуса
За формат статуса ответственны три свойства:
format
, retweet
, last
. В них можно использовать переменные:%status%
— текст статуса.%url%
— адрес статуса во Твиттере.%author%
— автор статуса. Имеет смысл использовать только в формате ретвита.
Свойства
format
и retweet
используются чтобы задавать вид обычного твитта и ретвитта, соответственно. После этого к ним добавится текст из last
. Если полученный в итоге статус больше допустимого во В Контакте (160 символов), то обрезается сначала
format
или retweet
. Поэтому в last
удобно помещать ссылку на твит, чтобы она не обрезалась («Длинный текс… http//twitter.com/my/status/31337»).format: "%status%" retweet: "♺ %author%: %status" last: " %url%"
Замены
Перед публикацией во В Контакте скрипт может заменить нужные слова. Например, убрать # перед хеш-тегами или вместо user вывести ссылку http://twitter.com/user.
Замены указываются в виде массива
[паттер, результат]
в массиве replace
. Можно использовать регулярные выражения. Вместо массива можно использовать код :user_to_url
для замены пользователей на ссылки.replace: - ["#nowplaying", "Сейчас играет: "] - [!ruby/regexp /#(\w)/, "\1"] - :user_to_url
Пропуск статусов
Скрипт использует чёрные и белый список паттернов, чтобы определить, публиковать ли очередной твит во В Контакте —
exclude
и include
, соответственно. В них вы указываете строку или регулярное выражение, которое должно содержаться в тексте твита.Есть коды для популярных задач:
:reply
— ответ другому пользователю Твиттера.:retweet
— ретвит.
По умолчанию, twitter2vk не перепубликует ответы и твиты содержащие «#novk» (например, «Когда же все мои одногруппники поймут какой же В Контакте отстой #novk»).
В белом списке по умолчанию «#vk», так что если вам надо чтобы твит был опубликован во В Контакте, несмотря на правила их
exclude
, то надо писать примерно так: « user Ты прав, В Контакте действительно серьёзно отстал от Facebook #vk».exclude: - :reply - "Facebook" - !ruby/regexp /\d\d\d\s?\$/ include: - :retweet - "В Контакте"
См. также
- Страница на GitHub — исходники и публикация отчётов об ошибках.
- @andrey_sitnik — твиттер автора, где публикуются обновления twitter2vk.
- rvk — Ruby-библиотека для работы с В Контакте