]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/YammerImport/lib/yammerimporter.php
Documentation + filename uniqueness in File class
[quix0rs-gnu-social.git] / plugins / YammerImport / lib / yammerimporter.php
index 93bc96d5290238a1a08d35d8f7ea672ac2b5dd63..0992882670f251b633d654c9e362f39c0567109a 100644 (file)
@@ -20,6 +20,8 @@
 /**
  * Basic client class for Yammer's OAuth/JSON API.
  *
+ * Depends on Favorite plugin
+ *
  * @package YammerImportPlugin
  * @author Brion Vibber <brion@status.net>
  */
@@ -27,14 +29,14 @@ class YammerImporter
 {
     protected $client;
 
-    function __construct(SN_YammerClient $client)
+    function __construct(SNYammerClient $client)
     {
         $this->client = $client;
     }
 
     /**
      * Load or create an imported profile from Yammer data.
-     * 
+     *
      * @param object $item loaded JSON data for Yammer importer
      * @return Profile
      */
@@ -45,11 +47,11 @@ class YammerImporter
 
         $profileId = $this->findImportedUser($data['orig_id']);
         if ($profileId) {
-            return Profile::staticGet('id', $profileId);
+            return Profile::getKV('id', $profileId);
         } else {
-            $user = User::staticGet('nickname', $nickname);
+            $user = User::getKV('nickname', $nickname);
             if ($user) {
-                common_log(LOG_WARN, "Copying Yammer profile info onto existing user $nickname");
+                common_log(LOG_WARNING, "Copying Yammer profile info onto existing user $nickname");
                 $profile = $user->getProfile();
                 $this->savePropertiesOn($profile, $data['options'],
                         array('fullname', 'homepage', 'bio', 'location'));
@@ -82,12 +84,12 @@ class YammerImporter
 
         $groupId = $this->findImportedGroup($data['orig_id']);
         if ($groupId) {
-            return User_group::staticGet('id', $groupId);
+            return User_group::getKV('id', $groupId);
         } else {
-            $local = Local_group::staticGet('nickname', $nickname);
+            $local = Local_group::getKV('nickname', $nickname);
             if ($local) {
-                common_log(LOG_WARN, "Copying Yammer group info onto existing group $nickname");
-                $group = User_group::staticGet('id', $local->group_id);
+                common_log(LOG_WARNING, "Copying Yammer group info onto existing group $nickname");
+                $group = User_group::getKV('id', $local->group_id);
                 $this->savePropertiesOn($group, $data['options'],
                         array('fullname', 'description'));
             } else {
@@ -130,11 +132,11 @@ class YammerImporter
 
         $noticeId = $this->findImportedNotice($data['orig_id']);
         if ($noticeId) {
-            return Notice::staticGet('id', $noticeId);
+            return Notice::getKV('id', $noticeId);
         } else {
-            $notice = Notice::staticGet('uri', $data['options']['uri']);
+            $notice = Notice::getKV('uri', $data['options']['uri']);
             $content = $data['content'];
-            $user = User::staticGet($data['profile']);
+            $user = User::getKV($data['profile']);
 
             // Fetch file attachments and add the URLs...
             $uploads = array();
@@ -156,9 +158,14 @@ class YammerImporter
 
             // Save "likes" as favorites...
             foreach ($data['faves'] as $nickname) {
-                $user = User::staticGet('nickname', $nickname);
+                $user = User::getKV('nickname', $nickname);
                 if ($user) {
-                    Fave::addNew($user->getProfile(), $notice);
+                    try {
+                        Fave::addNew($user->getProfile(), $notice);
+                    } catch (Exception $e) {
+                        // failed, let's move to the next
+                        common_debug('YammerImport failed favoriting a notice: '.$e->getMessage());
+                    }
                 }
             }
 
@@ -180,7 +187,8 @@ class YammerImporter
     function prepUser($item)
     {
         if ($item['type'] != 'user') {
-            throw new Exception('Wrong item type sent to Yammer user import processing.');
+            // TRANS: Exception thrown when a non-user item type is used, but expected.
+            throw new Exception(_m('Wrong item type sent to Yammer user import processing.'));
         }
 
         $origId = $item['id'];
@@ -227,6 +235,7 @@ class YammerImporter
             $bio[] = $item['summary'];
         }
         if (!empty($item['expertise'])) {
+            // TRANS: Used as a prefix for the Yammer expertise field contents.
             $bio[] = _m('Expertise:') . ' ' . $item['expertise'];
         }
         $options['bio'] = implode("\n\n", $bio);
@@ -262,7 +271,8 @@ class YammerImporter
     function prepGroup($item)
     {
         if ($item['type'] != 'group') {
-            throw new Exception('Wrong item type sent to Yammer group import processing.');
+            // TRANS: Exception thrown when a non-group item type is used, but expected.
+            throw new Exception(_m('Wrong item type sent to Yammer group import processing.'));
         }
 
         $origId = $item['id'];
@@ -277,7 +287,6 @@ class YammerImporter
 
         $avatar = $item['mugshot_url']; // as with user profiles...
 
-
         $options['mainpage'] = common_local_url('showgroup',
                                    array('nickname' => $options['nickname']));
 
@@ -285,7 +294,7 @@ class YammerImporter
         $options['homepage'] = '';
         $options['location'] = '';
         $options['aliases'] = array();
-        // @fixme what about admin user for the group?
+        // @todo FIXME: What about admin user for the group?
 
         $options['local'] = true;
         return array('orig_id' => $origId,
@@ -303,7 +312,8 @@ class YammerImporter
     function prepNotice($item)
     {
         if (isset($item['type']) && $item['type'] != 'message') {
-            throw new Exception('Wrong item type sent to Yammer message import processing.');
+            // TRANS: Exception thrown when a non-message item type is used, but expected.
+            throw new Exception(_m('Wrong item type sent to Yammer message import processing.'));
         }
 
         $origId = $item['id'];
@@ -328,7 +338,7 @@ class YammerImporter
                 $options['groups'] = array($groupId);
 
                 // @fixme if we see a group link inline, don't add this?
-                $group = User_group::staticGet('id', $groupId);
+                $group = User_group::getKV('id', $groupId);
                 if ($group) {
                     $content .= ' !' . $group->nickname;
                 }
@@ -362,19 +372,19 @@ class YammerImporter
 
     private function findImportedUser($origId)
     {
-        $map = Yammer_user::staticGet('id', $origId);
+        $map = Yammer_user::getKV('id', $origId);
         return $map ? $map->user_id : null;
     }
 
     private function findImportedGroup($origId)
     {
-        $map = Yammer_group::staticGet('id', $origId);
+        $map = Yammer_group::getKV('id', $origId);
         return $map ? $map->group_id : null;
     }
 
     private function findImportedNotice($origId)
     {
-        $map = Yammer_notice::staticGet('id', $origId);
+        $map = Yammer_notice::getKV('id', $origId);
         return $map ? $map->notice_id : null;
     }
 
@@ -430,7 +440,9 @@ class YammerImporter
         $url = preg_replace('/_small(\..*?)$/', '$1', $url);
 
         if (!common_valid_http_url($url)) {
-            throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url));
+            // TRANS: Server exception thrown when an avatar URL is invalid.
+            // TRANS: %s is the invalid avatar URL.
+            throw new ServerException(sprintf(_m('Invalid avatar URL %s.'), $url));
         }
 
         // @fixme this should be better encapsulated
@@ -438,7 +450,9 @@ class YammerImporter
         $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
         try {
             if (!copy($url, $temp_filename)) {
-                throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url));
+                // TRANS: Server exception thrown when an avatar could not be fetched.
+                // TRANS: %s is the failed avatar URL.
+                throw new ServerException(sprintf(_m('Unable to fetch avatar from %s.'), $url));
             }
 
             $id = $dest->id;
@@ -485,7 +499,7 @@ class YammerImporter
         $temp = tmpfile();
         fwrite($temp, $body);
         try {
-            $upload = MediaFile::fromFileHandle($temp, $user);
+            $upload = MediaFile::fromFilehandle($temp, $user->getProfile());
             fclose($temp);
             return $upload;
         } catch (Exception $e) {