From be6d1e18751ac6381e8dadfafc5ca5417948f598 2020-04-20 21:50:10 From: Tyler Durden Date: 2020-04-20 21:50:10 Subject: [PATCH] Deleted file filename1.pl via Kallithea --- diff --git a/filename1.pl b/filename1.pl deleted file mode 100644 index 63615c7b7c7cb88c9b2f1ecf74d291700d768c21..0000000000000000000000000000000000000000 --- a/filename1.pl +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; -use diagnostics; - -use YAML::Tiny; -use XML::LibXML; -use MIME::Base64; -use AnyEvent::XMLRPC; -use experimental 'smartmatch'; - -################################################################################################## -my ($YAMLoutput, $YAMLbase64); -my ($member, $memberstatus, $membercounter, $username); -my ($voting, $birthday, $address, $votingright, $votingrights); -my ($regularmember, $studentmember, $supportmember, $starvingmember); -my ($serv, $sharedsecret, $XMLparser, $XMLfile, $XMLquery, $XMLnode); -my ($chaosid, $lastname, $forename, $email, $status, $date, $paid, $userbox, $keyowner, $comment); -my (@members, @usernames, %usercontacts); -my @sharedsecrets = ('secret1', 'secret2'); -################################################################################################## - -$serv = AnyEvent::XMLRPC->new( - port => 9090, - uri => "/RPC2", - ssl => { - cert_file => "cert.pem", - key_file => "key.pem" - }, - methods => { - 'CHAOSID' => \&CHAOSID, - 'COUNTER' => \&COUNTER, - 'MEMBERINFO' => \&MEMBERINFO, - 'VOTINGRIGHT' => \&VOTINGRIGHT - }, - ); - - -sub CHAOSID { - ($sharedsecret, $chaosid) = ("none", 0); - ($sharedsecret, $chaosid) = @_; - return "FUCK OFF" unless ($sharedsecret ~~ @sharedsecrets); - return "NO CHAOS ID" unless (length $chaosid == 36); - - $XMLparser = XML::LibXML->new(); - $XMLfile = $XMLparser->parse_file('datebank'); - @members = $XMLfile->findnodes('/memberdatebank/memberen/member'); - - $username = 0; - - $XMLquery = "/memberdatebank/memberen/member[id/text() = '$chaosid']"; - foreach $XMLnode ($XMLfile->findnodes($XMLquery)) { - $username = $XMLnode->findnodes('./nick'); - } - - return "NO SUCH USER" unless $username; - - $YAMLoutput = YAML::Tiny->new( { ChaosID => "$chaosid", Username => "$username" } ); - chomp ($YAMLbase64 = encode_base64 $YAMLoutput->write_string); - return $YAMLbase64; -} - - -sub MEMBERINFO { - ($sharedsecret, $username) = ("none", 0); - ($sharedsecret, $username) = @_; - return "FUCK OFF" unless ($sharedsecret ~~ @sharedsecrets); - return "NO USER" unless $username; - - $XMLparser = XML::LibXML->new(); - $XMLfile = $XMLparser->parse_file('datebank'); - @members = $XMLfile->findnodes('/memberdatebank/memberen/member'); - - ($chaosid, $lastname, $forename, $email, $status, $date, $paid, $userbox, $keyowner, $comment) = 0; - - $XMLquery = "/memberdatebank/memberen/member[nick/text() = '$username']"; - foreach $XMLnode ($XMLfile->findnodes($XMLquery)) { - $chaosid = $XMLnode->findnodes('./id'); - $lastname = $XMLnode->findnodes('./numm'); - $forename = $XMLnode->findnodes('./nonumm'); - $birthday = $XMLnode->findnodes('./gebuertsdag'); - $address = $XMLnode->findnodes('./adress'); - $email = $XMLnode->findnodes('./email'); - $status = $XMLnode->findnodes('./status'); - $voting = int $XMLnode->findnodes('./stemmrecht'); - $date = $XMLnode->findnodes('./datum'); - $paid = int $XMLnode->findnodes('./bezuelt'); - $userbox = int $XMLnode->findnodes('./kescht'); - $keyowner = int $XMLnode->findnodes('./badge'); - $comment = $XMLnode->findnodes('./kommentar'); - } - - return "NO SUCH USER" unless $chaosid; - - $YAMLoutput = YAML::Tiny->new( { - ChaosID => "$chaosid", - Names => { - 'Forename' => "$forename", - 'Lastname' => "$lastname", - 'Username' => "$username" - }, - Email => "$email", - Status => "$status", - Voters => "$voting", - More => { - 'Address' => "$address", - 'Birthday' => "$birthday", - 'Storagebox' => "$userbox", - 'Payment' => "$date", - 'Paid' => "$paid", - 'Keyowner' => "$keyowner", - 'Comment' => "$comment" - } - } ); - - chomp ($YAMLbase64 = encode_base64 $YAMLoutput->write_string); - return $YAMLbase64; - -} - - -sub COUNTER { - $sharedsecret = shift||"none"; - return "FUCK OFF" unless ($sharedsecret ~~ @sharedsecrets); - - $XMLparser = XML::LibXML->new(); - $XMLfile = $XMLparser->parse_file('datebank'); - @members = $XMLfile->findnodes('/memberdatebank/memberen/member'); - - ($regularmember, $supportmember, $starvingmember, $votingrights) = 0; - - foreach $member (@members) { - $memberstatus = $member->findnodes('./status'); - $votingright = $member->findnodes('./stemmrecht'); - $votingrights++ if int $votingright; - $regularmember++ if ($memberstatus =~ /^Regular$/i); - $studentmember++ if ($memberstatus =~ /^Student$/i); - $supportmember++ if ($memberstatus =~ /^Supporter/i); - $starvingmember++ if ($memberstatus =~ /^Starving$/i); - } - - - $membercounter = scalar @members; - - $YAMLoutput = YAML::Tiny->new( { Counter => $membercounter, Voters => $votingrights, Regular => $regularmember, Student => $studentmember, Supporter => $supportmember, Starving => $starvingmember } ); - chomp ($YAMLbase64 = encode_base64 $YAMLoutput->write_string); - return $YAMLbase64; -} - - -sub VOTINGRIGHT { - $sharedsecret = shift||"none"; - return "FUCK OFF" unless ($sharedsecret ~~ @sharedsecrets); - - $XMLparser = XML::LibXML->new(); - $XMLfile = $XMLparser->parse_file('datebank'); - @members = $XMLfile->findnodes('/memberdatebank/memberen/member'); - $votingrights = 0; - - $XMLquery = "/memberdatebank/memberen/member[stemmrecht/text() = '1']"; - foreach $XMLnode ($XMLfile->findnodes($XMLquery)) { - ($username, $email) = ( $XMLnode->findnodes('./nick') . '', $XMLnode->findnodes('./email') . ''); # Don't know why but I have to add "nothing" to the string to make YAML::Tiny work with XML::LibXML - push @usernames, $username; - $usercontacts{$username} = $email; - $votingrights++; - } - - - $YAMLoutput = YAML::Tiny->new( { Voters => "$votingrights", Usernames => [@usernames], Contact => { %usercontacts } } ); - - chomp ($YAMLbase64 = encode_base64 $YAMLoutput->write_string); - undef @usernames; - return $YAMLbase64; -} - - -$serv->run;