Skip to content

Commit e790392

Browse files
committed
add irc links if included in metadata
1 parent 794f8a8 commit e790392

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

lib/MetaCPAN/Web/Controller/Release.pm

+2
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ sub view : Private {
102102
$c->res->last_modified( $out->{date} );
103103

104104
my $contribs = $self->groom_contributors( $c, $out );
105+
my $irc = $self->groom_irc( $c, $out );
105106

106107
$c->stash( $c->model('API::Favorite')->find_plussers($distribution) );
107108

@@ -124,6 +125,7 @@ sub view : Private {
124125
files => \@view_files,
125126

126127
contributors => $contribs,
128+
irc => $irc,
127129

128130
# TODO: Put this in a more general place.
129131
# Maybe make a hash for feature flags?

lib/MetaCPAN/Web/Role/ReleaseInfo.pm

+19
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,23 @@ sub groom_contributors {
111111
return \@contribs;
112112
}
113113

114+
sub groom_irc {
115+
my ( $self, $c, $release ) = @_;
116+
117+
my $irc = $release->{metadata}{resources}{x_IRC};
118+
my $irc_info = ref $irc ? {%$irc} : { url => $irc };
119+
$irc_info->{web} ||= $release->{metadata}{resources}{x_WebIRC};
120+
121+
if ( !$irc_info->{web} && $irc_info->{url} ) {
122+
if ( $irc_info->{url} =~ m{^irc://freenode\.net/#?(.*)} ) {
123+
$irc_info->{web} = "https://webchat.freenode.net/?channels=#$1";
124+
}
125+
elsif ( $irc_info->{url} =~ m{^irc://([^/]+)/#?(.*)} ) {
126+
$irc_info->{web} = "https://chat.mibbit.com/$2\@$1";
127+
}
128+
}
129+
130+
return $irc_info;
131+
}
132+
114133
1;

root/inc/release-info.html

+6-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@
4848
<li>
4949
<div><a href="http://cpants.charsbar.org/dist/overview/<% release.distribution %>">Kwalitee</a></div>
5050
</li>
51+
<% IF irc.web %>
52+
<li>
53+
<div><a href="<% irc.web %>">Chat with Maintainers</a></div>
54+
</li>
55+
<% END %>
5156
<% IF release.license %>
5257
<li>License: <% release.license.join(', ') %></li>
5358
<% END %>
@@ -69,4 +74,4 @@
6974
<option value="<% version.author; '/'; version.name; '/'; module.path %>"><% version.version _ (version.maturity == 'developer' ? ' DEV' : '') %> (<%version.author %> on <% version.date.dt_date_common %>)
7075
</option>
7176
<% END %>
72-
<% END; END %>
77+
<% END; END %>

0 commit comments

Comments
 (0)