source: lib/BarnOwl/Message/Twitter.pm @ f93b81b

release-1.10release-1.7release-1.8release-1.9
Last change on this file since f93b81b was a0385ad3, checked in by Nelson Elhage <nelhage@mit.edu>, 15 years ago
Preliminary support for other Twitter-compatible microblogging services, eg. identi.ca. Adds an optional 'service' parameter to the configuration file, which points to the API root URL (defaults to Twitter's). Also adds optional 'apihost' and 'apirealm' parameters for the domain name and port of the site to connect to, and the name of the API realm, respectively (default to Twitters'; if service is not Twitter, attempt to guess sane defaults).
  • Property mode set to 100644
File size: 1.2 KB
Line 
1use warnings;
2use strict;
3
4=head1 NAME
5
6BarnOwl::Message::Twitter
7
8=head1 DESCRIPTION
9
10=cut
11
12package BarnOwl::Message::Twitter;
13use base qw(BarnOwl::Message);
14
15sub context {'twitter'}
16sub subcontext {undef}
17sub service { return (shift->{"service"} || "http://twitter.com"); }
18sub long_sender {
19    my $self = shift;
20    $self->service =~ m#^\s*(.*?://.*?)/.*$#;
21    my $service = $1 || $self->service;
22    return $service . '/' . $self->sender
23}
24
25sub replycmd {
26    my $self = shift;
27    if($self->is_private) {
28        return $self->replysendercmd;
29    } elsif(exists($self->{status_id})) {
30        return 'twitter-atreply ' . $self->sender . " " . $self->{status_id};
31    } else {
32        return 'twitter-atreply ' . $self->sender;
33    }
34}
35
36sub replysendercmd {
37    my $self = shift;
38    return 'twitter-direct ' . $self->sender;
39}
40
41sub smartfilter {
42    my $self = shift;
43    my $inst = shift;
44    my $filter;
45
46    if($inst) {
47        $filter = "twitter-" . $self->sender;
48        BarnOwl::command("filter", $filter,
49                         qw{type ^twitter$ and sender}, '^'.$self->sender.'$');
50    } else {
51        $filter = "twitter";
52    }
53    return $filter;
54}
55
56=head1 SEE ALSO
57
58Foo, Bar, Baz
59
60=cut
61
621;
Note: See TracBrowser for help on using the repository browser.