Unable to load image

Perl script to grab all Marsey's off of this website and make it Pleroma friendly

use strict;
use warnings;
use experimental 'smartmatch';

use Data::Dumper;
use JSON::XS;
use LWP::UserAgent;
use HTTP::Request;
my $json = JSON::XS->new->utf8->allow_nonref;
my $request = HTTP::Request->new(GET => 'https://rdrama.net/marsey_list.json');
my $ua = LWP::UserAgent->new;
$ua->agent("Mozillacels stay losing");

my $response = $ua->request($request);
die "Failed to fetch" unless defined $response;

sub contents_to_file($$)
{
        my ($filename, $content) = @_;
        open(my $fh, '>', $filename) or die "Couldn't open file $filename: $!";
        print $fh $$content;
        close $fh;
}

# Get emojis
my $emojos = $json->decode($response->content);
my %pack = (
        'files' => {},
        # empty?
        pack => {},
        files_count => 0,
);

# Case sensitive: 'Marsey', 'Misc', 'Wojak', 'Classic', 'Tay', 'Wolf', 'Marsey Alphabet', 'Platy', 'Marsey Flags', 'Rage', 'Flags', 'Sets'
my @categories = ('Marsey');

foreach my $emojo (@{$emojos})
{
        if ($emojo->{class} ~~ @categories)
        {
                $pack{'files'}->{$emojo->{name}} = $emojo->{name} . '.webp';
        }
}

$pack{files_count} = keys %{$pack{files}};

my $output = $json->encode(\%pack);
# Write content to file
contents_to_file 'pack.json', \$output;

I wrote it because I setup an Apache Reverse Proxy where I created a "fake" emoji-pack, where all the requests where Pleroma expects them just redirect to /e/{emojiname}.webp here :#marsey57:

Just felt like sharing, incase any of you want to read Perl

It allows me to steal emojis here without manually submitting them all like I was before.

22
Jump in the discussion.

No email address required.

->new

:#marseyyikes:

Jump in the discussion.

No email address required.

Perl OOP is a cheesy hack based on a concept of "Blessings" (object properties), ->new is a function that takes no args, it's just a general standard

the -> actually means to call generalized new subroutine (function), as in, it's just a function called new but the -> makes the first argument :marseyairquotes: of the subroutine the actual name of the data type (if blessed).

It's a shitty concept (funny concept, but still kinda weird) although I barely write OOP in Perl at all and I haven't worked in this language much so I may be wrong, but it sure is quirky


History fact: the term "blessed" is indeed as funny as it is, it basically "blesses" (gives blessings to, makes it stand out, i.e) a regular datatype (perl hash in 99% of cases since its similar in design to OOP) with special properties.

Jump in the discussion.

No email address required.

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.