From a4cc90817a4613654d0e477749c27b3d3cfcdb84 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Mon, 12 Feb 2018 16:01:00 +0100 Subject: Fetch admin email from API if we have logged in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johannes Löthberg --- bin/archweb-login.pl | 24 ++++++++++++++++++++++++ bin/generate-mirror-mail.pl | 8 +++++--- settings.conf | 3 +++ 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100755 bin/archweb-login.pl create mode 100644 settings.conf diff --git a/bin/archweb-login.pl b/bin/archweb-login.pl new file mode 100755 index 0000000..d66ecff --- /dev/null +++ b/bin/archweb-login.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +use File::Basename; +use Config::Tiny; +use WWW::Mechanize; +use HTTP::Cookies; + +my $Config = Config::Tiny->new(); +$Config = Config::Tiny->read(dirname($0) . "/../settings.conf"); + +my $cookie_jar = HTTP::Cookies->new(file => dirname($0) . "/../cookie_jar", autosave => 1); +my $mech = WWW::Mechanize->new(agent => "arch-mirror-tools", cookie_jar => $cookie_jar); + +$mech->get("https://www.archlinux.org/login/"); +my $res = $mech->submit_form( + form_id => "dev-login-form", + fields => { + username => $Config->{account}->{username}, + password => $Config->{account}->{password} + } +); diff --git a/bin/generate-mirror-mail.pl b/bin/generate-mirror-mail.pl index 302de25..f6efc44 100755 --- a/bin/generate-mirror-mail.pl +++ b/bin/generate-mirror-mail.pl @@ -1,7 +1,9 @@ #!/usr/bin/perl use warnings; use strict; +use File::Basename; use JSON; +use HTTP::Cookies; use WWW::Mechanize; use Date::Parse; use Date::Format; @@ -64,7 +66,8 @@ Florian }, ); -my $mech = WWW::Mechanize->new(cookie_jar => {}); +my $cookie_jar = HTTP::Cookies->new(file => dirname($0) . "/../cookie_jar", autosave => 1); +my $mech = WWW::Mechanize->new(cookie_jar => $cookie_jar); sub send_mail { my $to = shift; @@ -136,8 +139,7 @@ while () { my @last_sync = keys %{{ map { ${$_}{time} => 1 } @out_of_sync }}; my $sent_mail = 0; - # TODO: set $to - my $to = ''; + my $to = $json->{admin_email}; if (@out_of_sync) { my %values = ( diff --git a/settings.conf b/settings.conf new file mode 100644 index 0000000..6367e1f --- /dev/null +++ b/settings.conf @@ -0,0 +1,3 @@ +[account] +username=foo +password=bar -- cgit v1.2.3-24-g4f1b