aboutsummaryrefslogtreecommitdiffstats
path: root/mod/frphotos.php
blob: 8d6197fa3b35a2565c107c4e22d9cefee0abc0bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php



function frphotos_init(&$a) {

	if(! local_user())
		return;

	if(intval(get_pconfig(local_user(),'frphotos','complete')))
		return;

	$channel = $a->get_channel();
	
	$fr_server = $_REQUEST['fr_server'];
	$fr_username = $_REQUEST['fr_username'];
	$fr_password = $_REQUEST['fr_password'];

	$cookies = 'store/[data]/frphoto_cookie_' . $channel['channel_address'];

	if($fr_server && $fr_username && $fr_password) {

		$ch = curl_init($fr_server . '/api/friendica/photos/list');

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       	curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookies);
        curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookies);
		curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
		curl_setopt($ch, CURLOPT_USERPWD, $fr_username . ':' . $fr_password); 
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);                          
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                           
		curl_setopt($ch, CURLOPT_USERAGENT, 'RedMatrix');
 
		$output = curl_exec($ch);
		curl_close($ch);

		$j = json_decode($output,true);

//		echo print_r($j,true);

		$total = 0;
		if(count($j)) {
			foreach($j as $jj) {

				$r = q("select uid from photo where resource_id = '%s' and uid = %d limit 1",
					dbesc($jj),
					intval($channel['channel_id'])
				);
				if($r) 
					continue;

				$total ++;
				proc_run('php','util/frphotohelper.php',$jj, $channel['channel_address'], urlencode($fr_server));
				sleep(3);
			}
		}
		if($total) {
			set_pconfig(local_user(),'frphotos','complete','1');
		}
		@unlink($cookies);
		goaway(z_root() . '/photos/' . $channel['channel_address']);
	}
}


function frphotos_content(&$a) {

	if(! local_user()) {
		notice( t('Permission denied') . EOL);
		return;
	}

	if(intval(get_pconfig(local_user(),'frphotos','complete'))) {
		info('Friendica photos have already been imported into this channel.');
		return;
	}

	$o = replace_macros(get_markup_template('frphotos.tpl'),array( 
		'$header' => t('Friendica Photo Album Import'),
		'$desc' => t('This will import all your Friendica photo albums to this Red channel.'),
		'$fr_server' => array('fr_server', t('Friendica Server base URL'),'',''),
		'$fr_username' => array('fr_username', t('Friendica Login Username'),'',''),
		'$fr_password' => array('fr_password', t('Friendica Login Password'),'',''),
		'$submit' => t('Submit'),
	));
	return $o;
}