From 366f740795a2b6e75287b1aa6697abe1210538e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20H=C3=A4rter?= Date: Wed, 12 Jul 2023 19:47:20 +0200 Subject: [PATCH] Added lovely quotes for certain users. --- F1DataBot.pm | 55 +++++++++++++++++++++++++++++++++++------- lovely_quotes.yml | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 lovely_quotes.yml diff --git a/F1DataBot.pm b/F1DataBot.pm index ea18351..808f54a 100644 --- a/F1DataBot.pm +++ b/F1DataBot.pm @@ -47,7 +47,7 @@ sub new { return $Self; } -=head1 Greet +=head1 greet Merely a dummy routine to test the bot's functionallity. Maybe using it for easter eggs or some kind of fun later. @@ -292,6 +292,38 @@ sub statistics { } +=head1 replyLoveQuote + + Reply with lovely text to special user id. + +=cut + +sub replyLoveQuote { + + my ( $Self, %Param ) = @_; + + return unless $Self->{Whitelist}->{$Param{Message}->{from}->{id}} eq 'Sarah' || $Self->{Whitelist}->{$Param{Message}->{from}->{id}} eq 'Stefan'; + + my $LoveQuotes = YAML::LoadFile("$FindBin::Bin/lovely_quotes.yml"); + + my %MessageData; + if ( ref $LoveQuotes eq 'ARRAY' ) { + + my $QuoteID = int( rand( $#{ $LoveQuotes } ) ); + + my $Message = $LoveQuotes->[$QuoteID]->{Text}; + $Message .= "\n\n - $LoveQuotes->[$QuoteID]->{Source}"; + + %MessageData = ( + text => $Message, + parse_mode => 'HTML', + ); + } + + return \%MessageData; + +} + =head1 processMessage Function which receives a single message and decides what to to based on message content and attributes. @@ -338,12 +370,19 @@ sub processMessage { else { $Self->{LogObject} ->debug( 'Command not recognized. Data: ' . $Param{Message}->{message}->{text} ); - $ResponseData->{text} = - "I'm sorry, " - . ( $Param{Message}->{message}->{chat}->{first_name} - ? $Param{Message}->{message}->{chat}->{first_name} - : $Param{Message}->{message}->{chat}->{username} ) - . ", I couldn't understand your request. Currently I can process the commands:\n\n\t\/greet\n\t\/statistics driver standings\n\t\/statistics constructor standings"; + if ( $Self->{Whitelist}->{$Param{Message}->{message}->{from}->{id}} eq 'Sarah' + || $Self->{Whitelist}->{$Param{Message}->{message}->{from}->{id}} eq 'Stefan' ) { + $ResponseData = $Self->replyLoveQuote( Message => $Param{Message}->{message} ); + } + else { + $ResponseData->{text} = + "I'm sorry, " + . ( $Param{Message}->{message}->{chat}->{first_name} + ? $Param{Message}->{message}->{chat}->{first_name} + : $Param{Message}->{message}->{chat}->{username} ) + . ", I couldn't understand your request. Currently I can process the commands:\n\n\t\/greet\n\t\/statistics driver standings\n\t\/statistics constructor standings"; + } + } my $ResponseResult = plain POST( @@ -392,7 +431,7 @@ sub fetchMessages { MESSAGE: for my $Message (@Messages) { - if ( $Self->{Whitelist}{$Message->{message}{from}{id}} ) { + if ( !$Self->{Whitelist}{$Message->{message}{from}{id}} ) { $Self->{LogObject} ->info( 'fetchMessages: User not whitelisted, skipping message ' . Dumper($MessageDataRaw) ); next MESSAGE; diff --git a/lovely_quotes.yml b/lovely_quotes.yml new file mode 100644 index 0000000..02781a1 --- /dev/null +++ b/lovely_quotes.yml @@ -0,0 +1,61 @@ +--- +- + Text: "Du bist schöner als die Menschenkinder; Gnade ist ausgegossen über deine Lippen; darum hat Gott dich gesegnet auf ewig." + Source: "Psalm 45,3" +- + Text: "Denn deine Liebe ist besser als Wein." + Source: "Hohelied 1,2b" +- + Text: "Wie schön ist deine Liebe, meine Schwester, meine Braut; wie viel besser ist deine Liebe als Wein, und der Duft deiner Salben als alle Wohlgerüche!" + Source: "Hohelied 4,10" +- + Text: "Denn die Liebe ist stark wie der Tod, und ihr Eifer unbezwinglich wie das Totenreich; ihre Glut ist Feuerglut, eine Flamme des Herrn. Große Wasser können die Liebe nicht auslöschen, und Ströme sie nicht ertränken." + Source: "Hohelied 8,6b-7a" +- + Text: "Denn an Liebe habe ich Wohlgefallen und nicht am Opfern, an der Gotteserkenntnis mehr als an Brandopfern." + Source: "Hosea 6,6" +- + Text: "Gleichwie mich der Vater liebt, so liebe ich euch; bleibt in meiner Liebe!" + Source: "Johannes 15,9" +- + Text: "Wenn ich in Sprachen der Menschen und der Engel redete, aber keine Liebe hätte, so wäre ich tönendes Erz oder eine klingende Schelle." + Source: "1. Korinther 13,1" +- + Text: "Und wenn ich Weissagung hätte und alle Geheimnisse wüsste und alle Erkenntnis, und wenn ich Glauben besäße, sodass ich Berge versetzte, aber keine Liebe hätte, so wäre ich nichts." + Source: "1. Korinther 13,2" +- + Text: "Die Liebe ist langmütig und gütig, die Liebe beneidet nicht, die Liebe prahlt nicht, sie bläht sich nicht auf; sie ist nicht unanständig, sie sucht nicht das Ihre, sie lässt sich nicht erbittern, sie rechnet das Böse nicht zu; sie freut sich nicht an der Ungerechtigkeit, sie freut sich aber an der Wahrheit; sie erträgt alles, sie glaubt alles, sie hofft alles, sie erduldet alles." + Source: "1. Korinther 13,4-7" +- + Text: "Lasst alles bei euch in Liebe geschehen!" + Source: "1. Korinther 16,14" +- + Text: "Die Frucht des Geistes aber ist Liebe, Freude, Friede, Langmut, Freundlichkeit, Güte, Treue, Sanftmut, Selbstbeherrschung," + Source: "Galater 5,22" +- + Text: "indem ihr mit aller Demut und Sanftmut, mit Langmut einander in Liebe ertragt" + Source: "Epheser 4,2" +- + Text: "Über dies alles aber zieht die Liebe an, die das Band der Vollkommenheit ist." + Source: "Kolosser 3,14" +- + Text: "Niemand verachte dich wegen deiner Jugend, sondern sei den Gläubigen ein Vorbild im Wort, im Wandel, in der Liebe, im Geist, im Glauben, in der Keuschheit!" + Source: "1. Timotheus 4,12" +- + Text: "denn Gott hat uns nicht einen Geist der Furchtsamkeit gegeben, sondern der Kraft und der Liebe und der Zucht." + Source: "2. Timotheus 1,7" +- + Text: "lasst uns aufeinander achtgeben, damit wir uns gegenseitig anspornen zur Liebe und zu guten Werken," + Source: "Hebräer 10,24" +- + Text: "Vor allem aber habt innige Liebe untereinander, denn die Liebe wird eine Menge von Sünden zudecken." + Source: "1. Petrus 4,8" +- + Text: "Geliebte, lasst uns einander lieben! Denn die Liebe ist aus Gott, und jeder, der liebt, ist aus Gott geboren und erkennt Gott." + Source: "1. Johannes 4,7" +- + Text: "Geliebte, wenn Gott uns geliebt hat, so sind auch wir es schuldig, einander zu lieben." + Source: "1. Johannes 4,11" +- + Text: "Und wir haben die Liebe erkannt und geglaubt, die Gott zu uns hat. Gott ist Liebe, und wer in der Liebe bleibt, der bleibt in Gott und Gott in ihm." + Source: "1. Johannes 4,16"