App-LinkSite
view release on metacpan or search on metacpan
lib/App/LinkSite/Social.pm view on Meta::CPAN
=head1 NAME
App::LinkSite::Social
=head1 SYNOPIS
(You probably want to just look at the L<linksite> application.)
=head1 DESCRIPTION
A class to model a social link on a link site (part of App::LinkSite).
=cut
use Feature::Compat::Class;
class App::LinkSite::Social {
our $VERSION = '0.1.3';
use strict;
use warnings;
use feature qw[say signatures];
no if $] >= 5.038, 'warnings', qw[experimental::signatures experimental::class];
field $service :reader :param;
field $handle :reader :param;
field $url :reader :param = undef;
# TODO: This needs to be a class field.
field $urls = {
facebook => {
url => "https://facebook.com/",
name => 'Facebook',
},
'x-twitter' => {
# This is currently still the correct URL
url => "https://twitter.com/",
name => 'X/Twitter',
},
instagram => {
url => "https://instagram.com/",
name => 'Instagram',
},
tiktok => {
url => "https://tiktok.com/@",
name => 'TikTok',
},
linkedin => {
url => "https://linkedin.com/in/",
name => 'LinkedIn',
},
substack => {
url => "https://XXXX.substack.com/",
name => 'Substack',
},
github => {
url => "https://github.com/",
name => 'GitHub',
},
medium => {
url => "https://XXXX.medium.com/",
name => 'Medium',
},
reddit => {
url => "https://reddit.com/user/",
name => 'Reddit',
},
quora => {
url => "https://quora.com/profile/",
name => 'Quora',
},
mastodon => {
# Hmm...
url => "https://fosstodon.org/@",
name => 'Mastodon',
},
threads => {
url => "https://www.threads.net/@",
name => 'Threads',
},
bluesky => {
url => 'https://bsky.app/profile/',
( run in 1.411 second using v1.01-cache-2.11-cpan-302cb4679cc )