ミニふぁぼったー(みたいなもの)
30分プログラム、その571。特定のクラスタ向けふぁぼったー。
@banjunさんが、「ふぁぼったーみたいにTwitter全体での人気のある発言じゃなくて、もっと小さい集団での人気の発言が知りたい」と言っていたのでやってみた。
とりあえず同じ研究室の人の間で計算してみたけど、誰一人として同じ発言をふぁぼってなかった。これいらなくね?
使い方
$ perl fav.pl cho45: svn の終わりとハードボイルド git ワールド by Yuichirou mzp: @Yuichirou からSnowRabbitのバグレポートが来たので、ソースコードを渡しておいた。 by banjun mzp mzp: @banjun 好きなブランチ上でgit pull server:/Users/mzp/git/SnowRabbit masterでAPIでfriend listを 取得できるコードがマージできると思います by banjun
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # fav.pl - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/04/29 08:53:40 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use strict; use warnings; use XML::Feed; use Data::Dumper; sub fetch($) { my ($name) = @_; my $feed = XML::Feed->parse(URI->new("http://twitter.com/favorites/${name}.rss")); map { $_->author($name); $_; } $feed->entries; } sub union(@) { my (@entries) = @_; my %entries = (); foreach my $entry (@entries) { if (defined $entries{$entry->link}) { push @{$entries{$entry->link}->{'user'}},$entry->author; } else { $entries{$entry->link} = { user => [$entry->author], entry => $entry } } } sort { DateTime->compare($b->{'entry'}->issued,$a->{'entry'}->issued) } values %entries; } my @users = ('banjun','mzp','athos0220','Yuichirou','mallowlabs'); foreach my $x(union map { fetch $_ } @users){ print $x->{'entry'}->title(),"\n"; print "\t by ",join ' ',@{$x->{'user'}},"\n"; }