aboutsummaryrefslogtreecommitdiffstats
path: root/include/Import/import_diaspora.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/Import/import_diaspora.php')
-rw-r--r--include/Import/import_diaspora.php100
1 files changed, 100 insertions, 0 deletions
diff --git a/include/Import/import_diaspora.php b/include/Import/import_diaspora.php
new file mode 100644
index 000000000..c9c785385
--- /dev/null
+++ b/include/Import/import_diaspora.php
@@ -0,0 +1,100 @@
+<?php
+
+require_once('include/bb2diaspora.php');
+require_once('include/group.php');
+
+function import_diaspora($data) {
+ $a = get_app();
+
+ $account = $a->get_account();
+ if(! $account)
+ return false;
+
+
+ $c = create_identity(array(
+ 'name' => $data['user']['name'],
+ 'nickname' => $data['user']['username'],
+ 'account_id' => $account['account_id'],
+ 'permissions_role' => 'social'
+ ));
+
+
+ if(! $c['success'])
+ return;
+
+ $channel_id = $c['channel']['channel_id'];
+
+ // todo - add nsfw, auto follow, (and strip exif in hubzilla)
+
+ $location = escape_tags($data['user']['profile']['location']);
+ if(! $location)
+ $location = '';
+
+ q("update channel set channel_location = '%s' where channel_id = %d",
+ dbesc($location)
+ );
+
+
+ $photos = import_profile_photo($data['user']['profile']['image_url'],$c['channel']['channel_hash']);
+ if($photos[4])
+ $photodate = NULL_DATE;
+ else
+ $photodate = $xchan['xchan_photo_date'];
+
+ $r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s', xchan_photo_date = '%s'
+ where xchan_hash = '%s'",
+ dbesc($photos[0]),
+ dbesc($photos[1]),
+ dbesc($photos[2]),
+ dbesc($photos[3]),
+ dbesc($photodate),
+ dbesc($c['channel']['channel_hash'])
+ );
+
+
+ $gender = escape_tags($data['user']['profile']['gender']);
+ $about = diaspora2bb($data['user']['profile']['bio']);
+ if($data['user']['profile']['birthday'])
+ $dob = datetime_convert('UTC','UTC',$data['user']['profile']['birthday'],'Y-m-d');
+ else
+ $dob = '0000-00-00';
+
+ $r = q("update profile set gender = '%s', about = '%s', dob = '%s' where uid = %d",
+ dbesc($gender),
+ dbesc($about),
+ dbesc($dob),
+ intval($channel_id)
+ );
+
+ if($data['aspects']) {
+ foreach($data['aspects'] as $aspect) {
+ group_add($channel_id,escape_tags($aspect['name']),intval($aspect['contacts_visible']));
+ }
+ }
+
+ // now add connections and send friend requests
+
+
+
+
+
+
+ // Then add items - note this can't be done until Diaspora adds guids to exported
+ // items and comments
+
+
+
+
+ proc_run('php','include/notifier.php','location',$channel_id);
+
+ // This will indirectly perform a refresh_all *and* update the directory
+
+ proc_run('php', 'include/directory.php', $channel_id);
+
+ notice( t('Import completed.') . EOL);
+
+ change_channel($channel_id);
+
+ goaway(z_root() . '/network' );
+
+} \ No newline at end of file