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