source: perl/modules/Zulip/lib/BarnOwl/Message/Zulip.pm @ cb463cd

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 
1use strict;
2use warnings;
3
4package BarnOwl::Message::Zulip;
5use base qw(BarnOwl::Message);
6
7use BarnOwl::Module::Zulip qw(default_realm);
8
9
10sub 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
17sub context {
18    return shift->class;
19}
20
21sub subcontext {
22    return shift->instance;
23}
24
25sub pretty_sender {
26    my ($m) = @_;
27    return strip_realm($m->sender);
28}
29
30sub pretty_recipient {
31    my ($m) = @_;
32    return strip_realm($m->recipient);
33}
34
35sub class       { return shift->{"class"}; }
36sub instance    { return shift->{"instance"}; }
37sub realm       { return shift->{"realm"}; }
38sub long_sender        { return shift->{"sender_full_name"}; }
39sub zid { return shift->{zid}; }
40
41sub 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
51sub replysendercmd {
52    my $self = shift;
53    return BarnOwl::quote("zulip:write", $self->sender);
54}
55
561;
Note: See TracBrowser for help on using the repository browser.