X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=get_sgf;h=f978b81ed5c4a1321158bb88df40a98b58e37ab1;hb=dcce90e77c92202b5fadca48de6fd1cefc41ff79;hp=229424c0b3849c1dd838f5ab7690a14820809285;hpb=98a68a9249b3ea51b1f148cbcbbf061151273506;p=bin.git diff --git a/get_sgf b/get_sgf index 229424c..f978b81 100755 --- a/get_sgf +++ b/get_sgf @@ -123,13 +123,29 @@ for my $url (@ARGV) { $m->get("http://gobase.org$fname"); $m->save_content('temp.sgf'); $m->get($uri->as_string); + $m->follow_link(text_regex=>qr/PostScript/); $m->form_number(2); $m->select('scale',$options{scale}); $m->field('fig',$options{figures}); $m->select('paper',$options{paper}); $m->submit(); - $m->follow_link(url_regex=>qr/\.ps\.gz/); - $m->save_content('temp.ps.gz'); + my $content; + my $state; + my $sleep; + VALID_LOOP: { + do { + $state = $m->clone; + $m->follow_link(url_regex=>qr/\.ps\.gz/); + if ($m->content =~ /^\%\!PS/){ + $m->save_content('temp.ps'); + last VALID_LOOP; + } + $sleep = 240+int(rand()*120); + print STDERR "Failure to download content, waiting $sleep seconds\n"; + $m = $state; + } while (sleep $sleep); + } + system('gzip','temp.ps'); system("$ENV{HOME}/bin/sgf_rename",'temp.sgf'); }