Hi, attached is a patch (based on dailystrips-1.0.28-11) that implements this functionality.
It introduces an additional keyword "altpattern". This is a regular
expression whose match (the part in parentheses) is written to the
HTML file generated by dailystrips. "altpattern" only works for strips
of type "search" right now, since dailystrips downloads the comic's
webpage only in that case.
This is the xkcd definition I use to extract the tooltip text:
strip xkcd
name xkcd
homepage http://xkcd.com/
type search
baseurl http://imgs.xkcd.com
searchpage http://xkcd.com/
searchpattern <img src="http://imgs.xkcd.com(/comics/.+?\.(png|jpg))"
altpattern <img src="http://imgs.xkcd.com/comics/.+?" title="(.+?)"
provides latest
end
Wolfgang
--- dailystrips~ 2013-05-04 14:21:49.309233266 +0200
+++ dailystrips 2013-05-04 14:44:49.149175238 +0200
@@ -531,7 +531,7 @@
if ($options{'stripnav'}) {
print "<font face=\"helvetica\">Strips:</font><br>\n";
for (@strips) {
- my ($strip, $name) = (split(/;/, $_))[0,1];
+ my ($strip, $name) = $$_[0,1];
print "<a href=\"#$strip\">$name</A> ";
}
print "\n<br><br>";
@@ -550,12 +550,12 @@
}
for (@strips) {
- my ($strip, $name, $homepage, $img_addr, $referer, $prefetch, $artist) = split(/;/, $_);
+ my ($strip, $name, $homepage, $img_addr, $referer, $prefetch, $artist, $alt) = @$_;
my ($img_line, $local_name, $local_name_dir, $local_name_file, $local_name_ext, $image, $ext,
$local_name_yesterday, $local_name_yesterday_dir, $local_name_yesterday_file, $local_name_yesterday_ext);
if ($options{'verbose'} and $options{'local'}) {
- warn "Downloading strip file for " . lc((split(/;/, $_))[0]) . "\n";
+ warn "Downloading strip file for " . lc($strip) . "\n";
}
if ($img_addr =~ "^unavail") {
@@ -791,6 +791,11 @@
</tr>
<tr>
<td>
+ $alt
+ </td>
+ </tr>
+ <tr>
+ <td>
$img_line
<p> </p>
</td>
@@ -896,7 +901,7 @@
sub get_strip {
my ($strip) = @_;
- my ($page, $addr);
+ my ($page, $addr, $alt, @row);
if ($options{'date'} and $defs{$strip}{'provides'} eq "latest") {
if ($options{'verbose'}) {
@@ -940,6 +945,9 @@
$addr = $defs{$strip}{'baseurl'} . $match . $defs{$strip}{'urlsuffix'};
}
}
+
+ $page =~ /$defs{$strip}{'altpattern'}/si;
+ $alt = ${1};
}
} elsif ($defs{$strip}{'type'} eq "generate") {
@@ -947,8 +955,9 @@
}
unless ($addr =~ /^(https?:\/\/|unavail)/io) { $addr = "http://" . $addr }
-
- push(@strips,"$strip;$defs{$strip}{'name'};$defs{$strip}{'homepage'};$addr;$defs{$strip}{'referer'};$defs{$strip}{'prefetch'};$defs{$strip}{'artist'}");
+
+ @row = ($strip, $defs{$strip}{'name'}, $defs{$strip}{'homepage'}, $addr, $defs{$strip}{'referer'}, $defs{$strip}{'prefetch'}, $defs{$strip}{'artist'}, $alt);
+ push(@strips, \@row);
}
sub get_defs {
@@ -1230,6 +1239,10 @@
{
$defs{$strip}{'searchpattern'} = $1;
}
+ elsif (/^altpattern\s+(.+)$/i)
+ {
+ $defs{$strip}{'altpattern'} = $1;
+ }
elsif (/^matchpart\s+(.+)$/i)
{
unless ($1 =~ /^(\d+)$/) {
signature.asc
Description: Digital signature

