]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blobdiff - student/projects.pl
Merge branch 'master' into uloha-server
[edu/osp-wiki.git] / student / projects.pl
old mode 100644 (file)
new mode 100755 (executable)
index f3f9ee1..d35f490
@@ -4,44 +4,65 @@ use Data::Dumper;
 
 my %projects;
 
-open LIST, "projects2010";
-while (<LIST>) {
-    chomp;
-    my $file = $_;
-    my ($project, $url, $name);
-    open PAGE, $file;
-    while (<PAGE>) {
-       if (/(Název projektu|Project name)[:* ]*(.*)/) {
-           $project = $2;
+
+foreach my $year (qw/2010 2011 2012 2013 2014/) {
+    open LIST, "projects$year";
+    while (<LIST>) {
+       chomp;
+       my $file = $_;
+       my ($project, $url, $name);
+       open PAGE, $file;
+       while (<PAGE>) {
+           if (/Project name and homepage[:* ]*\[([^\[\]]*)\]\(([^()]*)\)/) {
+               $project = $1;
+               $url = $2;
+           }
+           if (/(Název projektu|Project name)[:* ]*(.*)/) {
+               if (!$project) {
+                   $project = $2;
+               }
+           }
+           if (/(Domovská stránka projektu|Project home ?page)[:* ]*<([^<>]*)>/) {
+               $url = $2;
+           }
+           if (/\[\[!meta title="([^"]*)"\]\]/) {
+               $name = $1;
+           }
        }
-       if (/(Domovská stránka projektu|Project home ?page)[:* ]*<(.*)>/) {
-           $url = $2;
+
+       if (!$project or !$name or !$url) {
+           print STDERR "Expected field missing in $file\n";
+        }
+
+       print STDERR "Working on student $name ($year)\n";
+       if (!$projects{$project}) {
+           $projects{$project} = {};
+           $projects{$project}{'students'} = [];
        }
-       if (/\[\[!meta title="([^"]*)"\]\]/) {
-           $name = $1;
+       my $p = $projects{$project};
+       if (!$$p{'url'} or $url) {
+           $$p{'url'} = $url;
        }
+       push @{$$p{'students'}}, { 'file' => $file, 'name' => $name, 'year' => $year };
     }
-
-    if (!$projects{$project}) {
-       $projects{$project} = {};
-       $projects{$project}{'students'} = [];
-    }
-    my $p = $projects{$project};
-    $$p{'url'} = $url;
-    push @{$$p{'students'}}, { 'file' => $file, 'name' => $name };
 }
 
-print '[[!meta title="Projekty"]]', "\n";
-
+print '[[!meta title="Projekty"]]'."\n";
+print '[[!meta stylesheet="/columns" rel="stylesheet"]]'."\n";
+print "\n";
+print 'This page lists the projects and which students worked on them in the'."\n";
+print 'past years.'."\n";
 
 foreach (sort(keys(%projects))) {
     print "\n* [$_](", $projects{$_}{'url'}, ")\n";
     #print Dumper($projects{$_}{'students'});
     foreach (@{$projects{$_}{'students'}}) {
-       my $login = $_->{'file'};
-       $login =~ s,/.*,,;
-       my $name = $_->{'name'} || "???"; #$login;
+       my $page = $_->{'file'};
+       $page =~ s|.mdwn$||;
+       $page =~ s|/index$||;
+       my $name = $_->{'name'} || "???";
+       my $year = $_->{'year'} || "20??";
        
-       print "  * [[", $name || "", "|student/", $login, "]]\n";
+       print "  * [[", $name || "", "|student/", $page, "]] ($year)\n";
     }
 }