Last change
on this file since 38c584e was
38c584e,
checked in by Alex Dehnert <adehnert@mit.edu>, 7 years ago
|
Fix quoting conventions for Twitter commands.
Two bugs here:
1. The documentation incorrectly implies that arguments can be
omitted, when really the argument parser is much dumber than that.
If there are two optional arguments, you can't omit the first one
and give the second one; that's ambiguous.
2. There is a codepath for replycmd when status_id is not set
(this should be impossible) which passed wrong arguments.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
-
Property mode set to
100644
|
File size:
1.5 KB
|
Line | |
---|
1 | use warnings; |
---|
2 | use strict; |
---|
3 | |
---|
4 | =head1 NAME |
---|
5 | |
---|
6 | BarnOwl::Message::Twitter |
---|
7 | |
---|
8 | =head1 DESCRIPTION |
---|
9 | |
---|
10 | =cut |
---|
11 | |
---|
12 | package BarnOwl::Message::Twitter; |
---|
13 | use base qw(BarnOwl::Message); |
---|
14 | |
---|
15 | sub context {'twitter'} |
---|
16 | sub subcontext {undef} |
---|
17 | sub service { return (shift->{"service"} || "http://twitter.com"); } |
---|
18 | sub account { return shift->{"account"}; } |
---|
19 | sub retweeted_by { shift->{retweeted_by}; } |
---|
20 | sub long_sender { |
---|
21 | my $self = shift; |
---|
22 | $self->service =~ m#^\s*(.*?://.*?)/.*$#; |
---|
23 | my $service = $1 || $self->service; |
---|
24 | my $long = $service . '/' . $self->sender; |
---|
25 | if ($self->retweeted_by) { |
---|
26 | $long = "(retweeted by " . $self->retweeted_by . ") $long"; |
---|
27 | } |
---|
28 | return $long; |
---|
29 | } |
---|
30 | |
---|
31 | sub replycmd { |
---|
32 | my $self = shift; |
---|
33 | if($self->is_private) { |
---|
34 | return $self->replysendercmd; |
---|
35 | } elsif(exists($self->{status_id})) { |
---|
36 | return BarnOwl::quote('twitter-atreply', $self->sender, $self->{status_id}, $self->account); |
---|
37 | } else { |
---|
38 | # Give a dummy status ID |
---|
39 | return BarnOwl::quote('twitter-atreply', $self->sender, '', $self->account); |
---|
40 | } |
---|
41 | } |
---|
42 | |
---|
43 | sub replysendercmd { |
---|
44 | my $self = shift; |
---|
45 | return BarnOwl::quote('twitter-direct', $self->sender, $self->account); |
---|
46 | } |
---|
47 | |
---|
48 | sub smartfilter { |
---|
49 | my $self = shift; |
---|
50 | my $inst = shift; |
---|
51 | my $filter; |
---|
52 | |
---|
53 | if($inst) { |
---|
54 | $filter = "twitter-" . $self->sender; |
---|
55 | BarnOwl::command("filter", $filter, |
---|
56 | qw{type ^twitter$ and sender}, '^'.$self->sender.'$'); |
---|
57 | } else { |
---|
58 | $filter = "twitter"; |
---|
59 | } |
---|
60 | return $filter; |
---|
61 | } |
---|
62 | |
---|
63 | 1; |
---|
Note: See
TracBrowser
for help on using the repository browser.