Długo czekałem z otworzeniem tego bloga, ale teraz jest okazja :)

Od niedawna mam przyjemność używania telefonu z systemem android, dzięki czemu cały czas jestem online. Nie będę się teraz rozpisywał nad zaletami i wadami telefonu/systemu tylko przejdę do rzeczy.

Mam konto na blipie i twitterze i do niedawna preferowałem twittera ze względu na ogromną ilość aplikacji i  serwisów, które go wykorzystują. Znajomych miałem niewielu na obu serwisach. W tym tygodniu ekipa Games Fanatic zawładnęła planszówkowym blipem a wraz z nimi przybylo sporo osób, które znam mniej lub bardziej.

Potrzebowałem komuniatora blipowego na androida. Znalazłem tylko Blipusia, ale nie chcę mieć włączonych kilku komunikatorów i obciążać systemu. Poza tym najczęściej korzystam z widgetu TwitterGadget, dzięki któremu mogę ćwierkać prosto z gmaila. Wynik był prosty – brakuje mi serwisu/skryptu/czegokolwiek, dzięki któremu pisząc na twitterze moje wiadomości pokażą się też na blipie.
Szukałem, szukałem i nic. Naprawdę. Byłem w szoku, bo takie rozwiązanie wydawało mi się oczywiste. Skorzystałem więc ze swoich nędznych umiejętności programistycznych i napisałem w php pewien skrypt. Ponieważ nie znam się na programowaniu wygląda on jak wygląda. Najważniejsze jest, że działa :)
Skorzystałem z dwóch bibliotek:

Niestety, jeżeli ktoś chce korzystać z tego skryptu musi uruchamiać go ze swojego serwera (używając Crona), ponieważ nie założyłem bazy danych, która musi być bardzo bezpieczna i nie da się z niej wyciągnąć haseł.

Jeśli jednak masz ochotę na jego użycie, to musisz założyć nowe konto na twitterze, które będzie botem wyświetlającym wpisy z blipa. Wpisy bota mają formę: ‘user: treść_wpisu_na_blipie’, czyli widać kto co napisał – wystarczy.

Następnie zapisujesz na serwerze plik z tym skryptem wraz z bibliotekami: blipową i twitterową oraz musisz utworzyć pliki, w których zapisywany będzie id ostatniej wiadomości z blipa i twittera. Potem tylko wystarczy uzupełnić odpowiednie dane w skrypcie i dodać zadanie do Crona :)

To jest tylko szkic. Mam nadzieję, że jacyś dobrzy (dobrzy-zawodowcy i dobrzy-przyjaźni) programiści zrobią z poniższego skryptu coś dużo lepszego. Jeśli nie, to może udało mi się za jakiś czas przystosować skrypt do obsługi wielu użytkowników.

W ogóle to nie wiem dlaczego blip nie zrobił odwrotnego skryptu, który ściagałby wiadomości z twittera na blipa. Proste i może część osób przeszłaby na blipa.

Skrypt:

// nie pokazuje moich wpisow
if ($blip_user != $blip_login) {
//przygotowuje wiadomosc
$update_twitt = $blip_user . ': ' . $blip_status;
// sprawdza dlugosc wysylanego tekstu (nie moze byc dluzszy niz 137 znakow)
$dlg_update = strlen($update_twitt);

$dlg_optimal='137';

//skraca status jesli potrzeba i wstawia trzy kropki na koncu '...'
if ($dlg_update>$dlg_optimal) {
$cut = $dlg_optimal-$dlg_update;
$update_twitt = substr($update_twitt, 0, $cut);
$update_twitt = $update_twitt . '...';
}
//wysyla wiadomosc na twittera :)
$twitter = new Twitter($twitter_botlogin, $twitter_botpass);
$twitter->send($update_twitt);

// zapisuje id w plik.txt
file_put_contents ('plik_z_zapisywanym_id_statusu_blipa.txt',$blip_id);
}
}

// PRZESYLANIE WIADOMOSCI NA BLIPA

//łączy się z twitterem
$twitter = new Twitter($twitter_login, $twitter_pass);
$tweets = $twitter->load(FALSE);

$testowa = $tweets->status;

$zero = 0;
//robi tablicę z id i statusami
foreach ($tweets->status as $tweet_status) {
$statusy[$zero]['id'] = $tweet_status->id;
$statusy[$zero]['tekst'] = $tweet_status->text;
++$zero;
}

// odwraca tablicę, żeby czytać od końca
$statusy_odwrocona = array_reverse($statusy);

//tworzy wiadomosc do wyslania
foreach ($statusy_odwrocona as $blipnij) {
$twit_id = (string) $blipnij[id];
$twit_tekst = strval($blipnij[tekst]);
$wyslij = $twit_tekst;

//nie wysyła statusów skierowanych do konkretnych osób na twitterze
if (preg_match("#^[^@]#",$wyslij)) {
if ($twit_id > $ostatni_post_twitter) {
$blipapi = new BlipApi ($blip_login, $blip_pass);
print_r ($blipapi->status_create ($wyslij));
file_put_contents ('plik_z_zapisywanym_id_statusu_twittera.txt',$twit_id);
}
}

}

?>

PS. Cannehal przed chwilą pokazał mi ping.fm. Może to jest alternatywne rozwiązanie?

»