Example #1
0
 private function import_contact($user, $source = 'qaiku')
 {
     static $cached_contacts = array();
     if (!isset($cached_contacts[$source])) {
         $cached_contacts[$source] = array();
     }
     if (isset($cached_contacts[$source][$user->screen_name])) {
         return $cached_contacts[$source][$user->screen_name];
     }
     $qb = new midgard_query_builder('net_nemein_avaudu_contact');
     $qb->add_constraint("{$source}nick", '=', $user->screen_name);
     $contacts = $qb->execute();
     if (count($contacts) > 0) {
         // We already know this contact
         $cached_contacts[$source][$user->screen_name] = $contacts[0]->id;
         return $cached_contacts[$source][$user->screen_name];
         // TODO: Update?
     }
     $contact = new net_nemein_avaudu_contact();
     $contact->name = $user->name;
     $contact->avatar = $user->profile_image_url;
     $nickfield = "{$source}nick";
     $contact->{$nickfield} = $user->screen_name;
     $idfield = "{$source}id";
     $contact->{$idfield} = $user->id;
     $contact->create();
     $cached_contacts[$source][$user->screen_name] = $contact->id;
     return $cached_contacts[$source][$user->screen_name];
 }
Example #2
0
 public function action_edit($route_id, &$data, $args)
 {
     midgardmvc_core::get_instance()->authorization->require_user();
     $person = midgardmvc_core::get_instance()->authentication->get_person();
     $contact = new net_nemein_avaudu_contact($person->guid);
     // Read current settings from host
     $data['qaiku_apikey'] = $person->get_parameter('net_nemein_avaudu', 'qaiku_apikey');
     // Update things as we go
     if (isset($_POST['qaiku_apikey'])) {
         // Test the API key
         $qaiku_json = @file_get_contents('http://www.qaiku.com/api/statuses/user_timeline.json?apikey=' . $_POST['qaiku_apikey']);
         if (!$qaiku_json) {
             // Qaiku didn't accept the API key
             // TODO: UImessage
             throw new Exception("Invalid Qaiku API key");
         }
         $data['qaiku_apikey'] = $_POST['qaiku_apikey'];
         // Get user info from Qaiku
         $qaikus = json_decode($qaiku_json);
         if (isset($qaikus[0])) {
             $qaiku_user = $qaikus[0]->user;
             $qb = new midgard_query_builder('net_nemein_avaudu_contact');
             $qb->add_constraint('qaikunick', '=', $qaiku_user->screen_name);
             $contacts = $qb->execute();
             if (count($contacts) > 0) {
                 $person->set_parameter('net_nemein_avaudu', 'user', $contacts[0]->guid);
             } else {
                 // Populate "Me" into database
                 $contact->qaikunick = $qaiku_user->screen_name;
                 $contact->name = $qaiku_user->name;
                 $contact->avatar = $qaiku_user->profile_image_url;
                 $contact->qaikuid = $qaiku_user->id;
                 $contact->update();
             }
         }
         // Save the settings
         $person->set_parameter('net_nemein_avaudu', 'qaiku_apikey', $data['qaiku_apikey']);
     }
 }