diff --git a/www/protected/components/extendedGitGraph/extendedGitGraph.php b/www/protected/components/extendedGitGraph/extendedGitGraph.php deleted file mode 100644 index 7615bfb..0000000 --- a/www/protected/components/extendedGitGraph/extendedGitGraph.php +++ /dev/null @@ -1,494 +0,0 @@ -username = $usr_name; - - set_time_limit(300); // 5min - } - - public function authenticate($auth_key, $client_id, $client_secret) { - $url = sprintf(self::API_TOKEN, $client_id, $client_secret, $auth_key); - $result = file_get_contents($url); - - $result = str_replace('access_token=', '', $result); - $result = str_replace('&scope=&token_type=bearer', '', $result); - - setToken($result); - } - - public function setToken($token) { - $this->token = $token; - $this->tokenHeader = 'access_token=' . $token . '&token_type=bearer'; - } - - public function collect() { - ob_implicit_flush(true); - ob_end_flush(); - - //-------------------------------- - - $this->listRepositories(); - - $this->listAllCommits(); - - $this->save(); - - //-------------------------------- - - $this->output_flushed($this->getRemainingRequests() . ' Requests remaining'); - } - - private function listRepositories() { - $page = 1; - $url = sprintf(self::API_REPOSITORIESLIST . '&' . $this->tokenHeader, $this->username, $page); - - $result = $this->getJSON($url); - - $repo_list = array(); - - while (! empty($result)) { - foreach ($result as $result_repo) { - $repo_list[] = $this->parseRepoJSON($result_repo); - - $this->output_flushed("Found Repo: " . $result_repo->{'full_name'}); - } - - //########## - - $url = sprintf(self::API_REPOSITORIESLIST . '&' . $this->tokenHeader, $this->username, ++$page); - - $result = $this->getJSON($url); - } - - $this->repositories = $repo_list; - } - - private function getJSON($url) { - $options = array('http' => array('user_agent'=> $_SERVER['HTTP_USER_AGENT'])); -// $options = array('http' => array('user_agent'=> 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36')); - $context = stream_context_create($options); - $response = file_get_contents($url, false, $context); - - return json_decode($response); - } - - private function getRemainingRequests() { - $json = $this->getJSON(self::API_RATELIMIT . '?' . $this->tokenHeader); - - return $json->{'resources'}->{'core'}->{'remaining'}; - } - - private function listAllCommits() { - $this->commits = array(); - - foreach($this->repositories as $repo) { - $this->listCommits($repo); - } - } - - private function listCommits($repo) { - $page = 1; - $url = $repo['commits_url'] . '?per_page=100&page=' . $page . '&author=' .$this->username . '&' .$this->tokenHeader; - - $result = $this->getJSON($url); - - $commit_list = array(); - - while (! empty($result)) { - foreach ($result as $result_commit) { - $commit_list[] = $this->parseCommitJSON($repo, $result_commit); - } - - $this->output_flushed("Found 100 Commits from " . $repo['full_name']); - - //########## - - $url = $repo['commits_url'] . '?per_page=100&page=' . ++$page . '&author=' .$this->username . '&' .$this->tokenHeader; - - $result = $this->getJSON($url); - } - - $this->commits = array_merge($this->commits, $commit_list); - } - - private function parseRepoJSON($json) { - return - [ - 'id' => $json->{'id'}, - 'name' => $json->{'name'}, - 'full_name' => $json->{'full_name'}, - 'owner' => $json->{'owner'}->{'login'}, - 'owner_id' => $json->{'owner'}->{'id'}, - 'owner_avatar-url' => $json->{'owner'}->{'avatar_url'}, - 'owner_gravatar-id' => $json->{'owner'}->{'gravatar_id'}, - 'url' => $json->{'html_url'}, - 'language' => $json->{'language'}, - 'url' => $json->{'html_url'}, - 'creation' => DateTime::createFromFormat(DateTime::ISO8601, $json->{'created_at'}), - 'size' => $json->{'size'}, - 'default_branch' => $json->{'default_branch'}, - 'commits_url' => str_replace('{/sha}', '', $json->{'commits_url'}), - ]; - } - - private function parseCommitJSON($repo, $json) { - return - [ - 'sha' => $json->{'sha'}, - 'author_name' => $json->{'commit'}->{'author'}->{'name'}, - 'author_mail' => $json->{'commit'}->{'author'}->{'email'}, - 'author_login' => $json->{'author'}->{'login'}, - 'author_id' => $json->{'author'}->{'id'}, - 'sha' => $json->{'sha'}, - 'message' => $json->{'commit'}->{'message'}, - 'repository' => $repo, - 'date' => DateTime::createFromFormat(DateTime::ISO8601, $json->{'commit'}->{'author'}->{'date'}), - ]; - } - - private function save() { - $this->output_flushed("Start saving data"); - - $save = serialize( - [ - 'repositories' => $this->repositories, - 'commits' => $this->commits, - ]); - - file_put_contents(self::FILE_RAW_DATA, $save); - - $this->output_flushed('Finished saving data'); - } - - public function output_flushed($txt) - { - echo '[' . date('H:i.s') . '] ' . $txt . "
"; - } - - public function loadData() { - $data = unserialize(file_get_contents(self::FILE_RAW_DATA)); - - $this->repositories = $data['repositories']; - $this->commits = $data['commits']; - } - - public function generate($year) { - $ymap = $this->generateYearMap($year); // unused on purpose (template.php needs it) - - $ymapmax = $this->getMaxCommitCount(); // unused on purpose (template.php needs it) - - ob_start(); - include('template.php'); - $returned = ob_get_contents(); - ob_end_clean(); - - return $returned; - } - - public function generateAndSave() { - $result = ''; - - foreach($this->getYears() as $year) { - $result.= $this->generate($year); - $result.= '
'; - } - - $this->generateCommitMap(); - - file_put_contents(self::FILE_FINISHED_DATA, - serialize( - [ - 'creation' => new DateTime(), - 'total' => count($this->commits), - 'repos' => count($this->repositories), - 'streak' => $this->getLongestStreak(), - 'streak_start' => $this->getLongestStreakStart(), - 'streak_end' => $this->getLongestStreakEnd(), - 'max_commits' => $this->getMaxCommits(), - 'max_commits_date' => $this->getMaxCommitsDate(), - 'avg_commits' => $this->getAvgCommits(), - 'start' => $this->startdate, - 'end' => $this->enddate, - 'content' => $result, - ])); - - return $result; - } - - private function generateCommitMap() { - $this->commitmap = array(); - - $this->startdate = $this->getStartDate(); - $this->enddate = $this->getEndDate(); - - $date = clone $this->startdate; - while($date < $this->enddate) { - $this->commitmap[$date->format('Y-m-d')] = 0; - - $date = $date->modify("+1 day"); - } - - foreach ($this->commits as $commit) { - if(array_key_exists($commit['date']->format('Y-m-d'), $this->commitmap)) - $this->commitmap[$commit['date']->format('Y-m-d')]++; - } - } - - private function getStartDate() { - $date = $this->commits[0]['date']; - - foreach($this->commits as $commit) { - if ($commit['date'] < $date) { - $date = clone $commit['date']; - } - } - - return new DateTime($date->format('Y-m-d')); - } - - private function getEndDate() { - $date = $this->commits[0]['date']; - - foreach($this->commits as $commit) { - if ($commit['date'] > $date) { - $date = clone $commit['date']; - } - } - - return new DateTime($date->format('Y-m-d')); - } - - private function getCommitsForDate($d) { - $v = $d->format('Y-m-d'); - if (array_key_exists($v, $this->commitmap)) - return $this->commitmap[$d->format('Y-m-d')]; - else - return 0; - } - - private function getLongestStreak() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $streak_curr = 0; - $streak_max = 0; - - while ($curr <= $end) { - if ($this->getCommitsForDate($curr) > 0) { - $streak_curr++; - } else { - $streak_max = max($streak_max, $streak_curr); - $streak_curr = 0; - } - - $curr = $curr->modify('+1 day'); - } - - $streak_max = max($streak_max, $streak_curr); - - return $streak_max; - } - - private function getLongestStreakStart() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $streak_curr_start = clone $curr; - $streak_max_start = null; - - $streak_curr = 0; - $streak_max = 0; - - while ($curr <= $end) { - if ($this->getCommitsForDate($curr) > 0) { - $streak_curr++; - } else { - if ($streak_curr > $streak_max) { - $streak_max = $streak_curr; - $streak_max_start = clone $streak_curr_start; - } - - $streak_curr = 0; - $streak_curr_start = clone $curr; - } - - $curr = $curr->modify('+1 day'); - } - - if ($streak_curr > $streak_max) { - $streak_max_start = clone $streak_curr_start; - } - - return $streak_max_start; - } - - private function getLongestStreakEnd() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $streak_max_end = null; - - $streak_curr = 0; - $streak_max = 0; - - while ($curr <= $end) { - if ($this->getCommitsForDate($curr) > 0) { - $streak_curr++; - } else { - if ($streak_curr > $streak_max) { - $streak_max = $streak_curr; - $streak_max_end = clone $curr; - } - - $streak_curr = 0; - } - - $curr = $curr->modify('+1 day'); - } - - if ($streak_curr > $streak_max) { - $streak_max_end = clone $curr; - } - - return $streak_max_end; - } - - private function getMaxCommits() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $max = 0; - - while ($curr <= $end) { - $max = max($max, $this->getCommitsForDate($curr)); - - $curr = $curr->modify('+1 day'); - } - - return $max; - } - - private function getMaxCommitsDate() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $max = 0; - $max_date = null; - - while ($curr <= $end) { - $c = $this->getCommitsForDate($curr); - if ($c >= $max) { - $max = $c; - $max_date = clone $curr; - } - $max = max($max, $this->getCommitsForDate($curr)); - - $curr = $curr->modify('+1 day'); - } - - return $max_date; - } - - private function getAvgCommits() { - /* @var $curr DateTime */ - /* @var $end DateTime */ - $curr = clone $this->startdate; - $end = clone $this->enddate; - - $max = array(); - - while ($curr <= $end) { - $max[] = $this->getCommitsForDate($curr); - - $curr = $curr->modify('+1 day'); - } - - $sum = array_sum($max); - $count = count($max); - - return $sum / $count; - } - - public function loadFinishedContent() { - $data = unserialize(file_get_contents(self::FILE_FINISHED_DATA)); - return $data['content']; - } - - public function loadFinishedData() { - $data = unserialize(file_get_contents(self::FILE_FINISHED_DATA)); - return $data; - } - - private function getMaxCommitCount() { - $max = 0; - - foreach($this->getYears() as $year) { - $max = max($max, max($this->generateYearMap($year))); - } - - return $max; - } - - private function generateYearMap($year) { - $ymap = array(); - - $date = new DateTime($year . '-01-01'); - while($date->format('Y') == $year) { - $ymap[$date->format('Y-m-d')] = 0; - - $date = $date->modify("+1 day"); - } - - foreach ($this->commits as $commit) { - if(array_key_exists($commit['date']->format('Y-m-d'), $ymap)) - $ymap[$commit['date']->format('Y-m-d')]++; - } - - return $ymap; - } - - public function getYears() { - $years = array(); - - foreach ($this->commits as $commit) { - if(! in_array($commit['date']->format('Y'), $years)) - $years[] = $commit['date']->format('Y'); - } - - asort($years); - - return $years; - } -} \ No newline at end of file diff --git a/www/protected/components/extendedgitgraph/demo.php b/www/protected/components/extendedgitgraph/demo.php deleted file mode 100644 index fe6ca57..0000000 --- a/www/protected/components/extendedgitgraph/demo.php +++ /dev/null @@ -1,34 +0,0 @@ -authenticate('7e26c5f1621349c14a7d'); - -//$v->setToken('7b3f6443cdd4b2f92d75c4c8aa83cfda6c7ca3ce'); -//$v->collect(); - -$v->loadData(); - -?> - - - - - - - - - - - - - generateAndSave(); - echo $v->loadFinished(); - ?> - - \ No newline at end of file diff --git a/www/protected/components/extendedgitgraph/script.js b/www/protected/components/extendedgitgraph/script.js deleted file mode 100644 index 6b5e670..0000000 --- a/www/protected/components/extendedgitgraph/script.js +++ /dev/null @@ -1,25 +0,0 @@ -jQuery(document).ready(function ($) { - $('.svg-tip').fadeOut(0); - $('.svg-tip').css({opacity: 1}); - - $("rect").mouseenter( - function (event) { - $('.svg-tip').stop(true, true); - - $('.svg-tip').fadeIn(400); - - $('.svg-tip strong').html($(event.target).attr('hvr_header')); - $('.svg-tip span').html($(event.target).attr('hvr_content')); - - $('.svg-tip').css({left: $(event.target).position().left - $('.svg-tip').outerWidth() /2 - 2.5 + 9}); - $('.svg-tip').css({top: $(event.target).position().top - $('.svg-tip').outerHeight() - 10}); - - } - ); - $("rect").mouseleave( - function () { - $('.svg-tip').stop(true, true); - $('.svg-tip').fadeOut(400); - } - ); -}); \ No newline at end of file diff --git a/www/protected/components/extendedgitgraph/style.css b/www/protected/components/extendedgitgraph/style.css deleted file mode 100644 index 4d59c15..0000000 --- a/www/protected/components/extendedgitgraph/style.css +++ /dev/null @@ -1,90 +0,0 @@ -.git_list { - display: inline-block; - width: 715px; - height: 115px; - overflow: visible; -} - -.git_list text.caption { - font-size: 10px; - fill: #666; -} - -.git_list text.caption_month { - font-size: 8px; - fill: #BBB; -} - -.git_list text.caption_day { - font-size: 8px; - fill: #BBB; -} - -.svg-tip:after { - box-sizing: border-box; - position: absolute; - left: 50%; - height: 5px; - width: 5px; - bottom: -10px; - margin: 0px 0px 0px -5px; - content: " "; - border: 5px solid transparent; - border-top-color: rgba(0, 0, 0, 0.8); - -moz-border-top-colors: none; - -moz-border-right-colors: none; - -moz-border-bottom-colors: none; - -moz-border-left-colors: none; - border-image: none; -} - -.svg-tip { - padding: 5px; - background: none repeat scroll 0% 0% rgba(0, 0, 0, 0.8); - color: #BBB; - font-size: 12px; - position: absolute; - z-index: 99999; - text-align: center; - border-radius: 3px; - box-sizing: border-box; - opacity: 0; -} - -body { - background-color: white; - margin: 40px 0 0; -} - -.extGitGraphContainer { - background-color: #ECF0F1; - margin: 10px; - display: inline-block; - - border: 1px solid #E3E3E3; - border-radius: 4px; - box-shadow: 0px 0 1px rgba(0, 0, 0, 0.25) inset; -} - -.egg_footer { - margin-top: 5px; - - text-align: right; - margin-right: 5px; - margin-bottom: 5px; - - color: #FFF; - text-shadow: 0px 0px 8px #2C3E50, 0px 0px 8px #2C3E50; -} - -.egg_footer > a { - - text-decoration: none; - color: inherit; -} - -.egg_footer > a:hover { - text-decoration: none; - color: #2C3E50; - text-shadow: 0px 0px 8px #00F; -} \ No newline at end of file diff --git a/www/protected/components/extendedgitgraph/template.php b/www/protected/components/extendedgitgraph/template.php deleted file mode 100644 index f1c29ce..0000000 --- a/www/protected/components/extendedgitgraph/template.php +++ /dev/null @@ -1,109 +0,0 @@ - - - - - -
- - - - 1 commit erreicht immer genau die erste stufe - - $week = 0; - while($date->format('Y') == $year) { - if ($date > new DateTime()) {// THE FUTURE, SPONGEBOB - while ($date->format('d') != $date->format('t')) { - if ($date->format('N') == 1 && $date->format('z') > 0) { - $week++; - } - $date = $date->modify("+1 day"); - } - $monthlist[$date->format('m') - 1][1] = $week + ($wday / 7); - - $date = $date->modify("+1 year"); // Kill - continue; - } - - $c_count = $ymap[$date->format('Y-m-d')]; - $color_idx = ceil(pow($c_count/$ymapmax, $exponent) * (count($COLORS)-1)); - $color = $COLORS[$color_idx]; - - $wday = ($date->format('N') - 1); - - if ($date->format('N') == 1 && $date->format('z') > 0) { - echo '', PHP_EOL; - $week++; - echo '', PHP_EOL; - } - - if ($date->format('d') == 1) { - $monthlist[$date->format('m') - 1][0] = $week + ($wday / 7); - } else if ($date->format('d') == $date->format('t')) { - $monthlist[$date->format('m') - 1][1] = $week + ($wday / 7); - } - - echo '', PHP_EOL; - - $date = $date->modify("+1 day"); - } - ?> - - - 0) { - $posx = (($monthlist[$i][0]+$monthlist[$i][1])/2) * $DIST_X; - echo '' . $MONTHS[$i] . ''; - } - } - - for($i = 0; $i < 7; $i++) { - echo '' . $DAYS[$i] . ''; - } - - echo '' . $year . ''; - - ?> - - - -
-    -
- - -
\ No newline at end of file diff --git a/www/protected/components/extendedgitgraph/ExtendedGitGraph.php b/www/protected/components/extendedgitgraph_/ExtendedGitGraph.php similarity index 100% rename from www/protected/components/extendedgitgraph/ExtendedGitGraph.php rename to www/protected/components/extendedgitgraph_/ExtendedGitGraph.php diff --git a/www/protected/components/extendedGitGraph/demo.php b/www/protected/components/extendedgitgraph_/demo.php similarity index 100% rename from www/protected/components/extendedGitGraph/demo.php rename to www/protected/components/extendedgitgraph_/demo.php diff --git a/www/protected/components/extendedGitGraph/script.js b/www/protected/components/extendedgitgraph_/script.js similarity index 100% rename from www/protected/components/extendedGitGraph/script.js rename to www/protected/components/extendedgitgraph_/script.js diff --git a/www/protected/components/extendedGitGraph/style.css b/www/protected/components/extendedgitgraph_/style.css similarity index 100% rename from www/protected/components/extendedGitGraph/style.css rename to www/protected/components/extendedgitgraph_/style.css diff --git a/www/protected/components/extendedGitGraph/template.php b/www/protected/components/extendedgitgraph_/template.php similarity index 100% rename from www/protected/components/extendedGitGraph/template.php rename to www/protected/components/extendedgitgraph_/template.php