Last change
on this file since cb463cd was
cb463cd,
checked in by Adam Glasgall <glasgall@mit.edu>, 7 years ago
|
first draft of zulip module
|
-
Property mode set to
100644
|
File size:
1.1 KB
|
Line | |
---|
1 | use strict; |
---|
2 | use warnings; |
---|
3 | |
---|
4 | package BarnOwl::Message::Zulip; |
---|
5 | use base qw(BarnOwl::Message); |
---|
6 | |
---|
7 | use BarnOwl::Module::Zulip qw(default_realm); |
---|
8 | |
---|
9 | |
---|
10 | sub strip_realm { |
---|
11 | my $sender = shift; |
---|
12 | my $realm = BarnOwl::Module::Zulip::default_realm(); |
---|
13 | $sender =~ s/\@\Q$realm\E$//; |
---|
14 | return $sender; |
---|
15 | } |
---|
16 | |
---|
17 | sub context { |
---|
18 | return shift->class; |
---|
19 | } |
---|
20 | |
---|
21 | sub subcontext { |
---|
22 | return shift->instance; |
---|
23 | } |
---|
24 | |
---|
25 | sub pretty_sender { |
---|
26 | my ($m) = @_; |
---|
27 | return strip_realm($m->sender); |
---|
28 | } |
---|
29 | |
---|
30 | sub pretty_recipient { |
---|
31 | my ($m) = @_; |
---|
32 | return strip_realm($m->recipient); |
---|
33 | } |
---|
34 | |
---|
35 | sub class { return shift->{"class"}; } |
---|
36 | sub instance { return shift->{"instance"}; } |
---|
37 | sub realm { return shift->{"realm"}; } |
---|
38 | sub long_sender { return shift->{"sender_full_name"}; } |
---|
39 | sub zid { return shift->{zid}; } |
---|
40 | |
---|
41 | sub replycmd { |
---|
42 | my $self = shift; |
---|
43 | if ($self->is_private) { |
---|
44 | return $self->replysendercmd; |
---|
45 | } else { |
---|
46 | return BarnOwl::quote("zulip:write", "-c", $self->class, |
---|
47 | "-i", $self->instance); |
---|
48 | } |
---|
49 | } |
---|
50 | |
---|
51 | sub replysendercmd { |
---|
52 | my $self = shift; |
---|
53 | return BarnOwl::quote("zulip:write", $self->sender); |
---|
54 | } |
---|
55 | |
---|
56 | 1; |
---|
Note: See
TracBrowser
for help on using the repository browser.