Example #1
0
function buddystream_soundcloudCode()
{
    global $bp;
    $buddyStreamLog = new BuddyStreamLog();
    if (isset($_GET['buddystream_auth']) && $_GET['buddystream_auth'] == 'soundcloud') {
        $soundcloud = new BuddystreamSoundcloud(get_site_option("soundcloud_client_id"), get_site_option("soundcloud_client_secret"), $bp->root_domain . "/?buddystream_auth=soundcloud");
        try {
            $soundcloudToken = $soundcloud->accessToken($_GET['code']);
        } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
            $buddyStreamLog->log("Soundcloud : " . $e->getMessage(), 'error');
        }
        if ($soundcloudToken['access_token']) {
            update_user_meta($bp->loggedin_user->id, 'soundcloud_access_token', $soundcloudToken['access_token']);
            update_user_meta($bp->loggedin_user->id, 'soundcloud_expires_in', $soundcloudToken['expires_in'] + time());
            update_user_meta($bp->loggedin_user->id, 'soundcloud_refresh_token', $soundcloudToken['refresh_token']);
        }
        wp_redirect($bp->loggedin_user->domain . BP_SETTINGS_SLUG . '/buddystream-networks/?network=soundcloud');
        exit;
    }
}
Example #2
0
 public function doImport()
 {
     global $bp, $wpdb;
     $buddyStreamFilter = new BuddyStreamFilters();
     $buddyStreamLog = new BuddyStreamLog();
     $itemCounter = 0;
     if (get_site_option("soundcloud_client_id")) {
         if (get_site_option('soundcloud_user_settings_syncbp') == 0) {
             $user_metas = $wpdb->get_results("SELECT user_id\n                FROM {$wpdb->usermeta} WHERE\n                meta_key='soundcloud_access_token'");
             if ($user_metas) {
                 foreach ($user_metas as $user_meta) {
                     //daycounter reset
                     if (get_user_meta($user_meta->user_id, 'soundcloud_counterdate') != date('d-m-Y')) {
                         update_user_meta($user_meta->user_id, 'soundcloud_daycounter', 1);
                         update_user_meta($user_meta->user_id, 'soundcloud_counterdate', date('d-m-Y'));
                     }
                     //check for daylimit
                     $limitReached = $buddyStreamFilter->limitReached('soundcloud', $user_meta->user_id);
                     if (!$limitReached) {
                         $soundcloud = new BuddystreamSoundcloud(get_site_option("soundcloud_client_id"), get_site_option("soundcloud_client_secret"), $bp->root_domain . "/?buddystream_auth=soundcloud");
                         $soundcloud->setAccessToken(get_user_meta($user_meta->user_id, 'soundcloud_access_token', 1));
                         //favs
                         try {
                             $favs = json_decode($soundcloud->get('me/favorites'), true);
                             if ($favs) {
                                 foreach ($favs as $track) {
                                     //check daylimit
                                     $limitReached = $buddyStreamFilter->limitReached('soundcloud', $user_meta->user_id);
                                     if (!buddyStreamCheckImportLog($user_meta->user_id, "soundcloud_" . $track['id'], 'soundcloud') && !$limitReached) {
                                         $returnCreate = buddystreamCreateActivity(array('user_id' => $user_meta->user_id, 'extension' => 'soundcloud', 'type' => 'Soundcloud track', 'content' => $track['title'] . '<br/>' . $track['uri'], 'item_id' => "soundcloud_" . $track['id'], 'raw_date' => gmdate('Y-m-d H:i:s', strtotime($track['created_at'])), 'actionlink' => $track['permalink_url']));
                                         if ($returnCreate) {
                                             $itemCounter++;
                                         }
                                     }
                                 }
                             }
                         } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
                             //do nothing
                         }
                     }
                     try {
                         $tracks = json_decode($soundcloud->get('me/tracks'), true);
                         if ($tracks) {
                             foreach ($tracks as $track) {
                                 //check daylimit
                                 $limitReached = $buddyStreamFilter->limitReached('soundcloud', $user_meta->user_id);
                                 if (!buddyStreamCheckImportLog($user_meta->user_id, "soundcloud_" . $track['id'], 'soundcloud') && !$limitReached) {
                                     $returnCreate = buddystreamCreateActivity(array('user_id' => $user_meta->user_id, 'extension' => 'soundcloud', 'type' => 'Soundcloud track', 'content' => $track['title'] . '<br/>' . $track['uri'], 'item_id' => "soundcloud_" . $track['id'], 'raw_date' => gmdate('Y-m-d H:i:s', strtotime($track['created_at'])), 'actionlink' => $track['permalink_url']));
                                     if ($returnCreate) {
                                         $itemCounter++;
                                     }
                                 }
                             }
                         }
                     } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
                         //do nothing
                     }
                 }
             }
         }
     }
     //add record to the log
     $buddyStreamLog->log("Soundcloud imported " . $itemCounter . " tracks for " . count($user_metas) . " users.");
     //return number of items imported
     return $itemCounter;
 }