aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-02-14 17:39:16 -0800
committerfriendica <info@friendica.com>2013-02-14 17:39:16 -0800
commit9784536ff90d2bda997088fd05c39247e44f52b4 (patch)
treef7596a2cfff56342232c0970d3d6486a5eb8fb9a
parentd6db8513e8857c9cf7b725da125b75b80ec78315 (diff)
downloadvolse-hubzilla-9784536ff90d2bda997088fd05c39247e44f52b4.tar.gz
volse-hubzilla-9784536ff90d2bda997088fd05c39247e44f52b4.tar.bz2
volse-hubzilla-9784536ff90d2bda997088fd05c39247e44f52b4.zip
more groundwork for channel import
-rw-r--r--include/identity.php4
-rw-r--r--include/network.php32
-rw-r--r--mod/import.php58
3 files changed, 70 insertions, 24 deletions
diff --git a/include/identity.php b/include/identity.php
index 9bb4d09fa..9f8bc0ab0 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -89,6 +89,10 @@ function create_identity($arr) {
$primary = true;
+ if(array_key_exists('primary', $arr))
+ $primary = intval($arr['primary']);
+
+
$r = q("insert into channel ( channel_account_id, channel_primary,
channel_name, channel_address, channel_guid, channel_guid_sig,
channel_hash, channel_prvkey, channel_pubkey, channel_pageflags )
diff --git a/include/network.php b/include/network.php
index ecc54d818..555e76802 100644
--- a/include/network.php
+++ b/include/network.php
@@ -196,7 +196,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
}}
if(! function_exists('z_fetch_url')) {
-function z_fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
+function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
@@ -208,26 +208,28 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accep
@curl_setopt($ch, CURLOPT_HEADER, true);
@curl_setopt($ch, CURLOPT_CAINFO, get_capath());
+ @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
+ @curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
+ @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica Red)");
- if (!is_null($accept_content)){
+ if (x($opts,'accept_content')){
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
- "Accept: " . $accept_content
+ "Accept: " . $opts['accept_content']
));
}
- @curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
- @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica Red)");
-
-
- if(intval($timeout)) {
- @curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+ if(x($opts,'timeout') && intval($opts['timeout'])) {
+ @curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
}
else {
$curl_time = intval(get_config('system','curl_timeout'));
@curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
}
- @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
+ if(x($opts,'http_auth')) {
+ // "username" . ':' . "password"
+ @curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);
+ }
$prx = get_config('system','proxy');
if(strlen($prx)) {
@@ -269,9 +271,8 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accep
$newurl = $url . $newurl;
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
- $redirects++;
@curl_close($ch);
- return z_fetch_url($newurl,$binary,$redirects,$timeout,$accpt_content);
+ return z_fetch_url($newurl,$binary,$redirects++,$opts);
}
}
@@ -287,7 +288,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accep
if(! function_exists('z_post_url')) {
-function z_post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) {
+function z_post_url($url,$params, $headers = null, $redirects = 0, $timeout = 0) {
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
@@ -362,12 +363,11 @@ function z_post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0
$newurl = $url . $newurl;
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
- $redirects++;
curl_close($ch);
if($http_code == 303) {
- return z_fetch_url($newurl,false,$headers,$redirects,$timeout);
+ return z_fetch_url($newurl,false,$headers,$redirects++,$timeout);
} else {
- return z_post_url($newurl,$params,$headers,$redirects,$timeout);
+ return z_post_url($newurl,$params,$headers,$redirects++,$timeout);
}
}
}
diff --git a/mod/import.php b/mod/import.php
index 5da9d0004..7b5989f51 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -7,7 +7,8 @@
function import_post(&$a) {
- $sieze = ((x($_REQUEST,'make_primary')) ? intval($_REQUEST['make_primary']) : 0);
+ $data = null;
+ $seize = ((x($_REQUEST,'make_primary')) ? intval($_REQUEST['make_primary']) : 0);
$src = $_FILES['userfile']['tmp_name'];
$filename = basename($_FILES['userfile']['name']);
@@ -15,10 +16,10 @@ function import_post(&$a) {
$filetype = $_FILES['userfile']['type'];
- if(($src) && (! $filesize)) {
- logger('mod_import: empty file.');
- notice( t('Imported file is empty.') . EOL);
- return;
+ if($src) {
+ if($filesize) {
+ $data = @file_get_contents($src);
+ }
}
if(! $src) {
@@ -29,12 +30,38 @@ function import_post(&$a) {
return;
}
- // Connect to API of old server with credentials given and suck in the data we need
+ $email = ((x($_REQUEST,'email')) ? $_REQUEST['email'] : '');
+ $password = ((x($_REQUEST,'password')) ? $_REQUEST['password'] : '');
+
+ $channelname = substr($old_address,0,strpos($old_address,'@'));
+ $servername = substr($old_address,strpos($old_address,'@')+1);
+
+ $scheme = 'https://';
+ $api_path = '/api/export/basic?f=&channel=' . $channelname;
+ $binary = false;
+ $redirects = 0;
+ $opts = array('http_auth' => $email . ':' . $password);
+ $url = $scheme . $servername . $api_path;
+ $ret = z_fetch_url($url, $binary, $redirects, $opts);
+ if(! $ret['success'])
+ $ret = z_fetch_url('http://' . $servername . $api_path, $binary, $redirects, $opts);
+ if($ret['success'])
+ $data = $ret['body'];
+ else
+ notice( t('Unable to download data from old server') . EOL);
+ }
+ if(! $data) {
+ logger('mod_import: empty file.');
+ notice( t('Imported file is empty.') . EOL);
+ return;
}
+// logger('import: data: ' . print_r($data,true));
+
+// print_r($data);
// import channel
@@ -44,7 +71,7 @@ function import_post(&$a) {
- if($sieze) {
+ if($seize) {
// notify old server that it is no longer primary.
}
@@ -55,10 +82,25 @@ function import_post(&$a) {
}
-
function import_content(&$a) {
+/*
+ * Pass in a channel name and desired channel_address
+ * Check this for validity and duplication
+ * The page template should have a place to change it and check again
+ */
+
+
+$o .= <<< EOT
+<form action="import" method="post" >
+Old Address <input type="text" name="old_address" /><br />
+Login <input type="text" name="email" /><br />
+Password <input type="password" name="password" /><br />
+<input type="submit" name="submit" value="submit" />
+</form>
+EOT;
+return $o;
} \ No newline at end of file