update git class
authorStricted <info@nexus-irc.de>
Thu, 7 Nov 2013 18:04:44 +0000 (19:04 +0100)
committerStricted <info@nexus-irc.de>
Thu, 7 Nov 2013 18:22:02 +0000 (19:22 +0100)
git.class.php

index 683558998733f2813efbeacbd7e779c3a250b956..edfcd781843d0507b2c9ff33314012675ba1dea4 100644 (file)
@@ -41,19 +41,23 @@ class git {
                                                } else
                                                        $commit['text'] = substr($rev_line, 4);
                                        } else {
-                                               $opt = explode(" ", $rev_line);
+                                               $opt = explode(" ", $rev_line, 2);
                                                if($opt[0] == "tree") {
                                                        $commit['tree'] = $opt[1];
                                                } else if($opt[0] == "parent") {
                                                        $commit['parent'][] = $opt[1];
                                                } else if($opt[0] == "author") {
-                                                       $commit['author'] = $opt[1];
-                                                       $commit['author_mail'] = $opt[2];
-                                                       $commit['author_time'] = $opt[3];
+                                                       preg_match('/(.*) <([^>]*)> ([0-9]*) ([+\-0-9]{5})/i', $opt[1], $matches);
+                                                       $commit['author'] = $matches[1];
+                                                       $commit['author_mail'] = $matches[2];
+                                                       $commit['author_time'] = $matches[3];
+                                                       $commit['author_timezone'] = $matches[4];
                                                } else if($opt[0] == "committer") {
-                                                       $commit['committer'] = $opt[1];
-                                                       $commit['committer_mail'] = $opt[2];
-                                                       $commit['committer_time'] = $this->get_age($opt[3]);
+                                                       preg_match('/(.*) <([^>]*)> ([0-9]*) ([+\-0-9]{5})/i', $opt[1], $matches);
+                                                       $commit['committer'] = $matches[1];
+                                                       $commit['committer_mail'] = $matches[2];
+                                                       $commit['committer_time'] = $matches[3];
+                                                       $commit['committer_timezone'] = $matches[4];
                                                }
                                        }
                                }
@@ -103,11 +107,13 @@ class git {
        /**
         * get commit age
         *
-        * @param       string  $age
+        * @param       string  $last_change
         * @raturn      string
         */
-       public function get_age($age) {
-               $age= time() - $age;
+       public function get_age ($last_change) {
+               $now = time();
+               $age = ($last_change > 0 ? ($now - $last_change) : 0);
+               
                if ($age > 60*60*24*365*2) {
                        $age_str = floor($age/60/60/24/365);
                        $age_str .= " years ago";
@@ -129,12 +135,36 @@ class git {
                } else if ($age > 2) {
                        $age_str = $age;
                        $age_str .= " sec ago";
+               } else if ($age >= 0) {
+                       $age_str = "right now";
                } else {
                        $age_str = "right now";
                }
                return $age_str;
        }
        
+       /*
+        * get css class from age
+        *
+        * @param       string  $last_change
+        * @return      string
+        */
+       public function get_age_class ($last_change) {
+               $now = time();
+               $age = ($last_change > 0 ? ($now - $last_change) : 0);
+               
+               if($age == 0) {
+                       $age_class = "noage";
+               } else if ($age < 60*60*2) {
+                       $age_class = "age0";
+               } else if ($age < 60*60*24*2) {
+                       $age_class = "age1";
+               } else {
+                       $age_class = "age2";
+               }
+               return $age_class;
+       }
+       
        /**
         * get repo list from projects.list file
         *