Merged some nasty programs from softz.harvie.cz
[mirrors/Programs.git] / perl / kyberia / dist-probably-outdated / Kyberia.pl
diff --git a/perl/kyberia/dist-probably-outdated/Kyberia.pl b/perl/kyberia/dist-probably-outdated/Kyberia.pl
new file mode 100755 (executable)
index 0000000..99eaa3c
--- /dev/null
@@ -0,0 +1,79 @@
+#!/usr/bin/env perl
+#Kyberia client... (Harvie 2oo9)
+#THX2 ||
+
+use strict;
+use warnings;
+
+package Kyberia;
+       use LWP;
+       use HTML::Entities;
+
+       our $url;
+       our $browser;
+
+       sub new { #constructor
+               my ($self, $kurl) = @_;
+               $url = $kurl;
+    $browser = LWP::UserAgent->new( );
+    $browser->cookie_jar( {} );
+               return $self;
+       }
+
+       sub Login {
+               my ($self, $user, $pass) = @_;
+               my $response = $browser->post( $url,
+                       [ 'event' => 'login',
+                               'login' => $user,
+                               'password' => $pass,
+                               'login_type' => 'name',
+                       ]
+               );
+               return $response->is_success;
+       }
+
+       sub Logout {
+               my $response = $browser->post( $url,
+                       [ 'event' => 'logout'
+                       ]
+               );
+               return $response->is_success;
+       }
+
+       sub SendMail {
+               my ($self, $user, $message) = @_;
+               my $response = $browser->post( $url,
+                       [ 'event' => 'send',
+                               'mail_to' => $user,
+                               'mail_to_type' => 'name',
+                               'mail_text' => $message,
+                       ]
+               );
+               return $response->is_success;
+       }
+
+       sub GetNode {
+               my ($self, $id) = @_;
+               my $response = $browser->get("$url/id/$id/");
+               return $response->content;
+       }
+
+       sub ReadMail {
+               my $response = $browser->get("$url/id/2176597/");
+               my @mails = split(/\n/, $response->content); $response = '';
+               shift(@mails); #remove CSV header
+               foreach (@mails) {
+                       my ($MSG_ID, $FROM, $FROM_ID, $TO, $TO_ID, $TIME, $NEW, $TEXT) = split(/;/, $_, 8); #parse CSV
+                       $TEXT =~ s/\\n/\n/g; decode_entities($TEXT); #unescape message
+                       print("#$MSG_ID $FROM --> $TO ($TIME)\n\n$TEXT\n---------------------------------\n");
+               }
+               return $response->is_success;
+       }
+
+       sub CheckMail {
+               my $response = $browser->get("$url/ajax/check_new_mail.php");
+               my @mails = split(/;/, $response->content);
+               return ($mails[0], $mails[1], "You have $mails[0] unread mails, last from $mails[1].");
+       }
+
+       return 1;
This page took 0.223625 seconds and 4 git commands to generate.