Example #1
0
function login_github_user($usr)
{
    global $sLayer;
    $dev = load_developer_where("name = '" . $usr['username'] . "'");
    if ($dev != null) {
        $sLayer->loginUser($dev);
        return array("ok" => true, "user" => $dev);
    } else {
        $dev = new Developer();
        $dev->name = $usr['username'];
        $dev->avatar_url = $usr['avatar_url'];
        if (save_developer($dev)) {
            $sLayer->logInUser($dev);
            return array("ok" => true, "user" => $dev);
        } else {
            return array("ok" => false);
        }
    }
}
Example #2
0
 public static function getUserRepos($user)
 {
     $page = 1;
     $projects = array();
     $dev = load_developer_where("name = '" . $user . "'");
     $full_repo_list = array();
     do {
         $url = "https://api.github.com/users/{$user}/repos?page=" . $page;
         Makiavelo::info("----------- URL : " . $url);
         $repo_list = self::sendRequest($url);
         //Makiavelo::puts("------------ number of repos found: " . count($repo_list));
         Makiavelo::info("=== Getting list of repos :: " . print_r($repo_list, true));
         foreach ($repo_list as $repo) {
             $full_repo_list[] = $repo;
             $proj = load_project_where("owner_id = " . $dev->id . " and name ='" . $repo->name . "'");
             if ($proj == null) {
                 $proj = new Project();
                 $proj->name = $repo->name;
                 $proj->url = $repo->html_url ? $repo->html_url : $repo->url;
                 $proj->owner_id = $dev->id;
                 $proj->description = $repo->description;
                 $proj->stars = $repo->watchers;
                 $proj->forks = $repo->forks;
                 $proj->language = $repo->language;
                 $proj->published = 0;
                 $proj->open_issues = $repo->open_issues;
                 $proj->close_issues = count(GithubAPI::getProjectIssues($user, $repo->name, "closed"));
                 if (save_project($proj)) {
                     $projects[] = $proj;
                 }
             } else {
                 $projects[] = $proj;
             }
         }
         $page++;
     } while (count($repo_list) > 0);
     GithubAPI::deleteOldProjects($dev, $full_repo_list);
     return $projects;
 }
Example #3
0
function load_developer($id)
{
    return load_developer_where("id = {$id}");
}
Example #4
0
 public function indexAction()
 {
     $language = urldecode($this->request->getParam("language"));
     $owner = $this->request->getParam("owner");
     $where = " published = 1 ";
     if ($language != "" && $language != "All") {
         $where .= " and language = '" . $language . "'";
     }
     if ($owner != "") {
         $dev = load_developer_where("name like '%" . $owner . "%'");
         $where .= " and owner_id = " . $dev->id;
     }
     $sort_param = $this->request->getParam("sort");
     $underscore_pos = strrpos($sort_param, "_");
     if ($underscore_pos !== false) {
         $sort = substr_replace($sort_param, " ", $underscore_pos, 1);
     }
     $curr_page = intVal($this->request->getParam("p"));
     $total = count_projects($where);
     $init = $curr_page * $this->per_page;
     $pages = ceil($total / $this->per_page);
     $entity_list = list_project($sort, $init . "," . $this->per_page, $where);
     $this->render(array("entity_list" => $entity_list, "pagination" => array("current_page" => $curr_page, "total_pages" => $pages, "total_results" => $total), "search_crit" => array("lang" => $language, "owner" => $owner, "sort" => $this->request->getParam("sort"))));
 }
Example #5
0
 private function getCurrentDev()
 {
     $username = $this->request->getParam("name");
     $dev = load_developer_where("name = '" . mysql_real_escape_string($username) . "'");
     return $dev;
 }