12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/usr/bin/perl
- #fetch Gravatars
- use strict;
- use warnings;
- use LWP::Simple;
- use Digest::MD5 qw(md5_hex);
- my $size = 90;
- my $output_dir = './avatars';
- die("no .git/ directory found in current path\n") unless -d './avatars';
- mkdir($output_dir) unless -d $output_dir;
- open(GITLOG, q/git log --pretty=format:"%ae|%an" |/) or die("failed to read git-log: $!\n");
- my %processed_authors;
- while(<GITLOG>) {
- chomp;
- my($email, $author) = split(/\|/, $_);
- next if $processed_authors{$author}++;
- my $author_image_file = $output_dir . '/' . $author . '.png';
- #skip images we have
- next if -e $author_image_file;
- #try and fetch image
- my $grav_url = "http://www.gravatar.com/avatar/".md5_hex(lc $email)."?d=404&size=".$size;
- warn "fetching image for '$author' $email ($grav_url)...\n";
- my $rc = getstore($grav_url, $author_image_file);
- sleep(1);
- if($rc != 200) {
- unlink($author_image_file);
- next;
- }
- }
- close GITLOG;
|