X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=anndata;h=26e44db868f615c3bc858f24afb9eda6efd48c93;hp=3cda2c27589283c3c1acd104d5c95723357a9ec4;hb=HEAD;hpb=639d9800b021409ce4641a980fd720ff23ade428 diff --git a/anndata b/anndata index 3cda2c2..26e44db 100755 --- a/anndata +++ b/anndata @@ -1,56 +1,49 @@ -#!/usr/bin/perl -w - -use Getopt::Long; -use Anime::ANN; - -GetOptions(\%options, ("l=s", "b=s")); - -if($options{"l"}) { - @list = Anime::ANN::getlist($options{"l"}); - foreach $name (@list) { - print "$name\n"; - } - exit 0; -} - -if($options{"b"}) { - exec "htmlview", Anime::ANN::geturl(Anime::ANN::getid $options{"b"}); -} - -if(!defined($ARGV[0])) { - printf STDERR "usage: anndata NAME\n"; - exit 1; -} - -unless($id = Anime::ANN::getid $ARGV[0]) { - printf STDERR "could not find $ARGV[0]\n"; - exit 1; -} - -$info = Anime::ANN::getseries $id; - -sub refdump -{ - my($ref, $ind); - ($ref, $ind) = @_; - if(!defined($ind)) { - $ind = 0; - } - - if(ref $ref eq "HASH") { - for $key (sort keys %{$ref}) { - print ((" " x $ind) . "$key: " . (" " x (20 - length $key)) . "(" . $ref->{$key} . ")\n"); - refdump($ref->{$key}, $ind + 1) if ref $ref->{$key}; - } - } elsif(ref $ref eq "ARRAY") { - for($i = 0; $i < @{$ref}; $i++) { - print ((" " x $ind) . "$i: " . $ref->[$i] . "\n"); - refdump($ref->[$i], $ind + 1) if ref $ref->[$i]; - } - } else { - print ((" " x $ind) . "Unknown ref: $ref\n"); - } -} - -binmode STDOUT, ":utf8"; -refdump $info; +#!/usr/bin/python3 + +import sys, os, getopt, ann + +def usage(out): + out.write("usage:\tanndata -h\n") + out.write("\tanndata -l PREFIX\n") + out.write("\tanndata [-b] {-d|NAME}\n") + +opts, args = getopt.getopt(sys.argv[1:], "hl:bd") +lsn = None +browse = False +here = False +for o, a in opts: + if o == "-h": + usage(sys.stdout) + sys.exit(0) + elif o == "-l": + lsn = a + elif o == "-b": + browse = True + elif o == "-d": + here = True + +if lsn is not None: + for s in ann.getlist(lsn): + sys.stdout.write("%s\n" % s.rawname) +else: + if here: + nm = os.path.basename(os.getcwd()) + else: + if len(args) < 1: + usage(sys.stderr) + sys.exit(1) + nm = args[0] + ls = ann.getlist(nm) + if len(ls) < 1: + sys.stderr.write("anndata: could not find %s\n" % nm) + sys.exit(1) + s = ls[0] + if len(ls) > 1: + sys.stderr.write("anndata: more than one match, using %s\n" % s.rawname) + if browse: + os.execlp("htmlview", "htmlview", s.url) + else: + sys.stdout.write("name: %s\n" % s.name) + sys.stdout.write("vintage: %s\n" % s.vintage) + sys.stdout.write("genres: %s\n" % ", ".join(s.genres)) + sys.stdout.write("themes: %s\n" % ", ".join(s.themes))