ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/selection-pastebin
(Generate patch)

Comparing rxvt-unicode/src/perl/selection-pastebin (file contents):
Revision 1.5 by root, Wed Jan 18 10:11:03 2006 UTC vs.
Revision 1.13 by root, Mon Jan 23 23:13:03 2006 UTC

1#! perl 1#! perl
2 2
3my $timers = {};
4my $pastebin_cmd; 3my $pastebin_cmd;
5my $pastebin_url; 4my $pastebin_url;
6 5
7sub upload_paste { 6sub upload_paste {
8 my ($self) = @_; 7 my ($self) = @_;
12 my $txt = $self->selection; 11 my $txt = $self->selection;
13 my $filename = Digest::MD5::md5_hex ($txt) . ".txt"; 12 my $filename = Digest::MD5::md5_hex ($txt) . ".txt";
14 13
15 my $tmpfile = "/tmp/$filename"; 14 my $tmpfile = "/tmp/$filename";
16 15
17 my $msg = "uploaded $filename"; 16 my $msg = "uploaded as $filename";
18 17
19 if (open my $o, ">" . $tmpfile) { 18 if (open my $o, ">:utf-8", $tmpfile) {
19 chmod 0644, $tmpfile;
20 print $o $txt; 20 print $o $txt;
21 close $o; 21 close $o;
22 } else { 22 } else {
23 $msg = "couldn't write $tmpfile: $!"; 23 $msg = "couldn't write $tmpfile: $!";
24 } 24 }
35 $msg = "couldn't upload, '$cmd' failed"; 35 $msg = "couldn't upload, '$cmd' failed";
36 } 36 }
37 37
38 unlink $tmpfile; 38 unlink $tmpfile;
39 39
40 my $ov = $timers->{ov} = $self->overlay (-1, 0, length ($msg), 1, urxvt::OVERLAY_RSTYLE, 0); 40 my $ov = $self->overlay (-1, 0, length $msg, 1, urxvt::OVERLAY_RSTYLE, 0);
41 $ov->set (0, 0, $msg); 41 $ov->set (0, 0, $msg);
42 42
43 $timers->{t1} = 43 my $timer; $timer =
44 urxvt::timer 44 urxvt::timer
45 ->new 45 ->new
46 ->start ((int urxvt::NOW) + 5) # make sure we update "on" the second
47 ->interval (1) 46 ->after (5)
48 ->cb (sub { delete $timers->{ov}; delete $timers->{t1}; }); 47 ->cb (sub { undef $timer; undef $ov; });
49} 48}
50 49
51sub on_start { 50sub on_start {
52 my ($self) = @_; 51 my ($self) = @_;
52
53 $pastebin_cmd = $self->x_resource ("selection-pastebin.cmd") 53 $pastebin_cmd = $self->x_resource ("selection-pastebin.cmd")
54 || "scp -p % ruth:/var/www/www.ta-sa.org/files/txt/"; 54 || "rcp -p % ruth:/var/www/www.ta-sa.org/files/txt/";
55 55
56 $pastebin_url = $self->x_resource ("selection-pastebin.url") 56 $pastebin_url = $self->x_resource ("selection-pastebin.url")
57 || "http://www.ta-sa.org/files/txt/%"; 57 || "http://www.ta-sa.org/files/txt/%";
58 58
59 push @urxvt::ext::selection_popup::hook, sub { 59 push @{ $self->{term}{selection_popup_hook} }, sub {
60 ("pastebin upload" => sub { $self->upload_paste }) 60 ("pastebin upload" => sub { $self->upload_paste })
61 }; 61 };
62 62
63 () 63 ()
64} 64}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines