Twitter - IRC gateway, avagy hogyan twitteljünk irc protokollon

2009-06-05 09:51:47
Címkék: twitter , tircd , irc

Első megoldás: twitter2irc.pl

Az egész dolog lényege egy perl script, ami emulál nekünk egy IRC szervert, és a twitter contactjainkat felsorolja a nicklistben, illetve az általuk beírt szövegeket megírja nekünk.

Az eredmény: IRC szerver 6667-es porton, #twitter csatornával, jelszóval és egyéb dolgokkal védve.

Teendők egy Ubuntu 8.04 LTS Server operációs rendszeren viszonylag üres install esetén:

# apt-get update
# apt-get install make lynx ncftp ftp gcc build-essential
# cpan

Utóbbi parancs a cpan konfigurálása, ezt mindenki maga, az utasítások illetve a környezete szerint tegye.

# cpan JSON JSON::Any JSON::XS JSON::DWIW JSON::Syck YAML POE POE::Component::Client::Twitter POE::Component::Client::HTTP POE::Component::Server::IRC POE::Component::TSTP HTTP::Request::Common

Sajnos a Twitter modulnak nincs Install.pm-je (Can't locate inc/Module/Install.pm), ezért kézzel kell másolnunk:

# cp -r ~/.cpan/build/POE-Component-Client-Twitter-0.01/lib/POE /usr/local/share/perl/5.8.8

Majd ki is próbálhatjuk, ugyanis a modulhoz mellékelték is a gateway-t megvalósító scrpitet:

# cd ~/.cpan/build/POE-Component-Client-Twitter-0.01/example/
# ./twitter2ircd.pl
Usage: twitter2ircd.pl -c=config.yaml

A script végén pedig van egy példa, hogyan nézhet ki egy config.yaml, ezt testre kell szabni, és a fönti paranccsal máris lehet futtatni.

A scriptbe nem árt egy kicsit belenyúlni, ugyanis alapesetben vannak benne olyan kódsorok, amik minden belépésnél/kilépésnél kreálnak egy twittet, aminek én személy szerint nem látom sok értelmét. Ilyeneket kell keresni:

$heap->{twitter}->yield(update => 'twitter2irc.pl join');
...
$heap->{twitter}->yield(update => 'twitter2irc.pl part');
...
$heap->{twitter}->yield(update => 'twitter2irc.pl quit');

Sajnos a script egyelőre sok problémával küzd: nincs megfelelő input-ellenőrzés; többsoros posztok további sorai a státuszablakba íródnak; ha lefetcheli az újabb twitteket, akkor kiírja mindet, nem csak azt, ami a legutóbbi fetch óta érkezett...

Hátránya, hogy egy szerver csak egy felhasználót tud kiszolgálni.

Második megoldás: tircd.pl

Hasonlatos az előzőhöz, de egy másik eszközzel és modulokkal: kis leírással és letöltési linkkel

Teendők egy Ubuntu 8.04 LTS Server operációs rendszeren viszonylag üres install esetén:

# apt-get update
# apt-get install make lynx ncftp ftp gcc build-essential
# cpan

Utóbbi parancs a cpan konfigurálása, ezt mindenki maga, az utasítások illetve a környezete szerint tegye.

# wget http://tircd.googlecode.com/files/tircd_v0.7.tar.gz
# tar zxfv tircd_v0.7.tar.gz
# cd tircd
# chmod a+x tircd.pl
# cpan JSON JSON::Any JSON::XS JSON::DWIW JSON::Syck Moose MooseX::Traits URI::Escape namespace::autoclean Net::OAuth::Simple LWP::UserAgent B::Hooks::EndOfScope Module::Build Net::Twitter POE POE::Filter::IRCD

Ezek után a ./tircd.pl parancs remekül fog működni. Probléma lehet a magyar ékezetekkel, mivel a Net::Twitter modul az alap UTF-8-at még egyszer UTF-8-cá konvertálja, ezért elég olvashatatlan lesz az írásunk. A probléma elhárításához egy kis komment-jel kell az alábbi modulba: /usr/local/share/perl/5.8.8/Net/Twitter/API.pm

Ezt a sort:
utf8::upgrade $_ for values %$args;
Erre kell cserélni:
# utf8::upgrade $_ for values %$args;

A tircd.pl mellett található az alap config fájl is: tircd.cfg, ezt ízlés szerint módosítsuk.

Harmadik megoldás: tweet.im és bitlbee

A bitlbee nevű program alkalmas arra, hogy különféle IM programok protokolljait IRC-ként használhassuk. Tudja az MSN-t, Jabber-t (~Gtalk), ICQ-t (Oscar) és a Yahoo!-t.

A tweet.im nevű weboldalon összeköthetjük a Twitter-es accountunkat egy Jabber-essel, valamint a Jabber kontaktok közé fel kell venni a tweet.im felhasználóját. A Twittek ezentúl az ő üzeneteiként jelennek meg, és a neki írtakat pedig a nevünkben twitteli.

Hátránya, hogy elég gyakran elveszti a kapcsolatot, ezért órákon keresztül kimaradhatnak a posztok, illetve csak ki-be lépéssel oldható meg a probléma.

Konklúzió

Talán kiderült már, de én a második megoldást javasolnám, a tircd.pl-t, mivel egyrészt már kikísérleteztem az üzembe helyezés mikéntjét, másrészt több felhasználót képes kiszolgálni, illetve sokkal kidolgozottabb kóddal rendelkezik, mint az első változat. Nem kell hozzá külön másik account (mint a tweet.im-nél), megfelelően kezeli a be és kimenő forgalmat (eltekintve az UTF-8-as problémától, illetve az újsor-jelek problémáitól).


Hozzászólás

Olcsó asztali órás rádió Androidból

2017-04-14 22:36:00
14

Konzol kimenet színezés

2017-01-06 13:08:37
0

Windows Event Log bedolgozás MSSQL adatbázisba [update 1]

2015-04-30 22:23:52
0

Az internetadó margójára

2014-11-01 10:39:57
0

A C4nn0N logó

2014-07-26 20:50:32
0

Virtualizálás Xen 4.4-gyel Ubuntu 14.04 alatt (64 bit)

2014-04-30 09:46:38
1

Xen és XenServer előadás

2014-04-17 06:11:00
0

HLDS-V8: Javascripttel programozható HLDS (CS 1.6)

2014-03-15 09:33:53
0

Node.js lazy hibakezelés

2013-08-19 22:08:35
0

Office 2013 animáció kikapcsolása

2013-07-02 08:31:35
1

Node.js ékezetes szövegbevitel konzolból / parancssorból

2013-06-27 07:41:54
0

Egy Counter Strike szerver üzemeltetési tapasztalatai

2013-05-17 14:21:14
7

Hogyan tegyünk grafikus felületet Ubuntu 10.04 Serverre?

2013-05-07 08:19:05
2

Torrent tracker node.js-ben 65 sorban

2013-04-28 10:23:25
0

Hányadik vagyok a Google-ben?

2013-04-24 09:09:01
0

Virtualizálás Xen 4.1-gyel Ubuntu 12.04 alatt (64 bit)

2013-01-22 08:58:15
2

Cloud Backup - Ments a felhőbe

2012-05-02 21:46:13
0

VIP plugin CS 1.6-hoz

2012-04-22 16:35:07
7

Ki az az admin?

2012-03-17 23:45:04
0

Csináltam egy blogot

2011-12-09 15:32:11
2

Az IT szabályozásokról

2009-09-01 17:30:58
0

Twitter - IRC gateway, avagy hogyan twitteljünk irc protokollon

2009-06-05 09:51:47
0

Hogyan lehet blokkolhatatlan hirdetéseket elhelyezni egy weblapon?

2008-10-28 10:56:30
11

Virtualizálás Xen-nel Ubuntu 8.04.1 Server-en

2008-09-04 18:46:02
0

Hogyan tegyünk grafikus felületet Ubuntu 8.04 Serverre?

2008-05-19 20:02:29
0

FAR Manager kedvcsináló I.

2008-05-02 11:41:02
0

Far Manager 1.80 - Open Source

2008-01-04 21:11:19
0

IBM DB2 9.5 Express install Ubuntu 7.10 Serverre

2007-12-19 10:35:03
0

IBM Websphere Application Server 6.1.0.3 Express és WAS Plugin install Ubuntu 7.10 Serverre

2007-12-19 10:33:27
0

Hogyan tegyünk grafikus felületet Ubuntu 7.10 Serverre?

2007-12-11 22:00:17
0

Warezolás, gazemberség?

2007-11-20 21:01:00
0

iSCSI Target és Initiator installálása Ubuntu 6.06.1 LTS-re

2007-10-13 18:23:40
0

Oracle 11g R1 install Ubuntu 6.06.1-re

2007-08-18 14:13:04
0

How to install Oracle 11g R1 on Ubuntu 6.06.1 LTS

2007-08-18 14:13:04
0

Hogyan tegyünk grafikus felületet Ubuntu 6.06.1 Serverre?

2007-08-18 14:09:55
0

Apache2 - WebDAV - Ubuntu 6.06.1 - Windows XP kliens

2007-08-13 19:48:34
0

CVS beállítása Ubuntu 6.06.1-re

2007-05-21 19:39:32
0

IBM DB2 8.2 Express install Debian 4.0-ra (64 bit)

2007-05-15 20:21:33
0

IBM DB2 8.2 Express install Ubuntu 6.06.1-re

2007-05-09 20:47:34
0

Lemez olvasási/írási sebesség tesztelés linux alatt

2007-05-05 20:14:30
0

Oracle Applications tippek 1.

2007-05-03 20:47:55
0

Windows Event Log bedolgozás MSSQL adatbázisba

2007-04-30 21:06:33
0

Oracle tippek 1.

2007-04-30 17:20:25
0

MySQL automatikus backup készítés jelszó felfedése nélkül

2007-04-18 23:42:51
0

LVM - logikai lemezkezelés (skicc)

2007-04-15 19:28:33
0

Counter Strike 1.6 telepítése Ubuntu 6.06.1-re

2007-04-08 12:15:32
0