From: Stricted Date: Thu, 7 Nov 2013 18:04:44 +0000 (+0100) Subject: update git class X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=9c7f88d26c356333c230826b2c030d5074d38cbc;p=Snippets.git update git class --- diff --git a/git.class.php b/git.class.php index 6835589..edfcd78 100644 --- a/git.class.php +++ b/git.class.php @@ -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 *