diff --git a/include/admin/importers/blogger.inc.php b/include/admin/importers/blogger.inc.php index 2f008427..18b3d8a3 100644 --- a/include/admin/importers/blogger.inc.php +++ b/include/admin/importers/blogger.inc.php @@ -12,8 +12,7 @@ class Serendipity_Import_Blogger extends Serendipity_Import { var $info = array('software' => 'Blogger.com [using API]'); var $data = array(); var $inputFields = array(); - - + function Serendipity_Import_Blogger($data) { global $serendipity; @@ -55,22 +54,22 @@ class Serendipity_Import_Blogger extends Serendipity_Import { function getInputFields() { // Make sure Google login has been completed if (!empty($_REQUEST['token'])) { - + // Prepare session token request $req = new HTTP_Request('https://www.google.com/accounts/AuthSubSessionToken'); $req->addHeader('Authorization', 'AuthSub token="'. $_REQUEST['token'] .'"'); - + // Request token $req->sendRequest(); - + // Handle token reponse if ($req->getResponseCode() != '200') return; - + // Extract Auth token preg_match_all('/^(.+)=(.+)$/m', $req->getResponseBody(), $matches); $tokens = array_combine($matches[1], $matches[2]); unset($matches); - + // Add hidden auth token field to input field list array_unshift($this->inputFields, array( 'text' => 'Google Auth Token (leave alone)', 'type' => 'input', @@ -81,35 +80,35 @@ class Serendipity_Import_Blogger extends Serendipity_Import { $req = new HTTP_Request('http://www.blogger.com/feeds/default/blogs'); $req->addHeader('GData-Version', 2); $req->addHeader('Authorization', 'AuthSub token="'. $tokens['Token'] .'"'); - + // Fetch blog list $req->sendRequest(); - + // Handle errors if ($req->getResponseCode() != '200') return false; - + // Load list $bXml = simplexml_load_string($req->getResponseBody()); - + // Generate list of the blogs under the authenticated account $bList = array(); foreach ($bXml->entry as $entry) { $bList[substr($entry->id, strpos($entry->id, 'blog-') + 5)] = $entry->title; } - + // Add blog list to input fields for selection array_unshift($this->inputFields, array('text' => 'Blog to import', 'type' => 'list', 'name' => 'bId', 'value' => 0, 'default' => $bList)); - + return $this->inputFields; } else { return array(); } } - + function _getCategoryList() { $res = serendipity_fetchCategories('all'); $ret = array(0 => NO_CATEGORY); @@ -120,16 +119,16 @@ class Serendipity_Import_Blogger extends Serendipity_Import { } return $ret; } - + function import() { global $serendipity; - + // Force user to select a blog to act on if (empty($this->data['bId']) || $this->data['bId'] == 0) { echo 'Please select a blog to import!'; return false; } - + // Save this so we can return it to its original value at the end of this method. $noautodiscovery = isset($serendipity['noautodiscovery']) ? $serendipity['noautodiscovery'] : false; @@ -138,24 +137,24 @@ class Serendipity_Import_Blogger extends Serendipity_Import { } $this->getTransTable(); - + // Prepare export request $req = new HTTP_Request('http://www.blogger.com/feeds/'. $this->data['bId'] .'/archive'); $req->addHeader('GData-Version', 2); $req->addHeader('Authorization', 'AuthSub token="'. $this->data['bAuthToken'] .'"'); - + // Attempt fetch blog export $req->sendRequest(); - + // Handle errors if ($req->getResponseCode() != '200') { echo "Error occured while trying to export the blog."; return false; } - + // Export success echo 'Successfully exported entries from Blogger'; - + // Get Serendipity authors list $authorList = array(); $s9y_users = serendipity_fetchUsers(); @@ -166,16 +165,16 @@ class Serendipity_Import_Blogger extends Serendipity_Import { // Load export $bXml = simplexml_load_string($req->getResponseBody()); - + // Process entries $entryList = $entryFailList = array(); foreach ($bXml->entry as $bEntry) { - + // Check entry type switch ($bEntry->category['term']) { case 'http://schemas.google.com/blogger/2008/kind#post': // Process posts: - + // Create author if not in serendipity $author = (string) $bEntry->author->name; if (!array_search($author, $authorList)) { @@ -189,7 +188,7 @@ class Serendipity_Import_Blogger extends Serendipity_Import { $authorid = serendipity_db_insert_id('authors', 'authorid'); $authorList[$authorid] = $author; } - + $sEntry = array('title' => $this->decode((string) $bEntry->title), 'isdraft' => ($bEntry->children('http://purl.org/atom/app#')->control->draft == 'yes') ? 'true' : 'false', 'allow_comments' => (count($bEntry->xpath("*[@rel='replies']")) > 0) ? 'true' : 'false', @@ -200,7 +199,7 @@ class Serendipity_Import_Blogger extends Serendipity_Import { 'author' => $author, 'authorid' => $authorid ); - + // Add entry to s9y echo '..~.. '; if (is_int($id = serendipity_updertEntry($sEntry))) { @@ -210,16 +209,16 @@ class Serendipity_Import_Blogger extends Serendipity_Import { // Add to fail list $entryFailList[] = $sEntry['title']; } - + break; - + case 'http://schemas.google.com/blogger/2008/kind#comment': // Process comments: - + // Extract entry id for comment $cEntryId = $bEntry->xpath("thr:in-reply-to[@ref]"); $cEntryId = (string) $cEntryId[0]['ref']; - + // Check to make sure the related entry has been added to s9y if (array_key_exists($cEntryId, $entryList)) { // Add to s9y @@ -236,19 +235,19 @@ class Serendipity_Import_Blogger extends Serendipity_Import { 'type' => 'NORMAL' ); serendipity_db_insert('comments', $sComment); - + // Update entry list with comment count $entryList[$cEntryId][2]++; } - + break; } - + } - + // Report on resultant authors echo 'Current list of authors: '. join(', ', array_values($authorList)); - + // Do cleanup and report on entries echo 'The following entries were successfully imported:'; echo ''; - + // Report fails echo 'The following entries ran into trouble and was not imported:'; echo ''; - + // Reset autodiscovery $serendipity['noautodiscovery'] = $noautodiscovery; - + // All done! echo 'Import finished.'; return true; diff --git a/include/db/pdo-sqlite.inc.php b/include/db/pdo-sqlite.inc.php index 2e875b09..f391080c 100644 --- a/include/db/pdo-sqlite.inc.php +++ b/include/db/pdo-sqlite.inc.php @@ -255,7 +255,7 @@ function &serendipity_db_query($sql, $single = false, $result_type = "both", $re $rows = array(); foreach($serendipity['dbSth']->fetchAll($result_type) AS $row) { - $row = serendipity_db_sqlite_fetch_array($row, $result_type); + $row = serendipity_db_sqlite_fetch_array($row, $result_type); if (!empty($assocKey)) { // You can fetch a key-associated array via the two function parameters assocKey and assocVal if (empty($assocVal)) {