mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2024-11-25 23:43:16 +00:00
pumpio: Now queueing is working for content that cannot be posted.
This commit is contained in:
parent
008216058a
commit
c8825148de
1 changed files with 92 additions and 9 deletions
|
@ -17,8 +17,9 @@ function pumpio_install() {
|
||||||
register_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
|
register_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
|
||||||
register_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
|
register_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
|
||||||
register_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
|
register_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
|
||||||
|
register_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
|
||||||
}
|
}
|
||||||
|
|
||||||
function pumpio_uninstall() {
|
function pumpio_uninstall() {
|
||||||
unregister_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
|
unregister_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
|
||||||
unregister_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
|
unregister_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
|
||||||
|
@ -26,6 +27,7 @@ function pumpio_uninstall() {
|
||||||
unregister_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
|
unregister_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
|
||||||
unregister_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
|
unregister_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
|
||||||
unregister_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
|
unregister_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
|
||||||
|
unregister_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook');
|
||||||
}
|
}
|
||||||
|
|
||||||
function pumpio_module() {}
|
function pumpio_module() {}
|
||||||
|
@ -431,6 +433,7 @@ function pumpio_send(&$a,&$b) {
|
||||||
$url = 'https://'.$host.'/api/user/'.$user.'/feed';
|
$url = 'https://'.$host.'/api/user/'.$user.'/feed';
|
||||||
|
|
||||||
$success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
$success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
||||||
|
//$success = false;
|
||||||
|
|
||||||
if($success) {
|
if($success) {
|
||||||
$post_id = $user->object->id;
|
$post_id = $user->object->id;
|
||||||
|
@ -445,6 +448,10 @@ function pumpio_send(&$a,&$b) {
|
||||||
} else {
|
} else {
|
||||||
logger('pumpio_send '.$username.': general error: ' . print_r($user,true));
|
logger('pumpio_send '.$username.': general error: ' . print_r($user,true));
|
||||||
|
|
||||||
|
$r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self`", $b['uid']);
|
||||||
|
if (count($r))
|
||||||
|
$a->contact = $r[0]["id"];
|
||||||
|
|
||||||
$s = serialize(array('url' => $url, 'item' => $b['id'], 'post' => $params));
|
$s = serialize(array('url' => $url, 'item' => $b['id'], 'post' => $params));
|
||||||
require_once('include/queue_fn.php');
|
require_once('include/queue_fn.php');
|
||||||
add_to_queue($a->contact,NETWORK_PUMPIO,$s);
|
add_to_queue($a->contact,NETWORK_PUMPIO,$s);
|
||||||
|
@ -1009,7 +1016,7 @@ function pumpio_dopost(&$a, $client, $uid, $self, $post) {
|
||||||
'to_name' => $user[0]['username'],
|
'to_name' => $user[0]['username'],
|
||||||
'to_email' => $user[0]['email'],
|
'to_email' => $user[0]['email'],
|
||||||
'uid' => $user[0]['uid'],
|
'uid' => $user[0]['uid'],
|
||||||
'item' => $cmntdata,
|
'item' => $postarray,
|
||||||
'link' => $a->get_baseurl() . '/display/' . $user[0]['nickname'] . '/' . $top_item,
|
'link' => $a->get_baseurl() . '/display/' . $user[0]['nickname'] . '/' . $top_item,
|
||||||
'source_name' => $postarray['author-name'],
|
'source_name' => $postarray['author-name'],
|
||||||
'source_link' => $postarray['author-link'],
|
'source_link' => $postarray['author-link'],
|
||||||
|
@ -1100,18 +1107,94 @@ function pumpio_getallusers($a, $uid) {
|
||||||
echo pumpio_get_contact($uid, $user)."\n";
|
echo pumpio_get_contact($uid, $user)."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function pumpio_queue_hook(&$a,&$b) {
|
||||||
|
|
||||||
|
$qi = q("SELECT * FROM `queue` WHERE `network` = '%s'",
|
||||||
|
dbesc(NETWORK_PUMPIO)
|
||||||
|
);
|
||||||
|
if(! count($qi))
|
||||||
|
return;
|
||||||
|
|
||||||
|
require_once('include/queue_fn.php');
|
||||||
|
|
||||||
|
foreach($qi as $x) {
|
||||||
|
if($x['network'] !== NETWORK_PUMPIO)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
logger('pumpio_queue: run '.print_r($x, true));
|
||||||
|
|
||||||
|
$r = q("SELECT `user`.* FROM `user` LEFT JOIN `contact` on `contact`.`uid` = `user`.`uid`
|
||||||
|
WHERE `contact`.`self` = 1 AND `contact`.`id` = %d LIMIT 1",
|
||||||
|
intval($x['cid'])
|
||||||
|
);
|
||||||
|
if(! count($r))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$user = $r[0];
|
||||||
|
|
||||||
|
$oauth_token = get_pconfig($user['uid'], "pumpio", "oauth_token");
|
||||||
|
$oauth_token_secret = get_pconfig($user['uid'], "pumpio", "oauth_token_secret");
|
||||||
|
$consumer_key = get_pconfig($user['uid'], "pumpio","consumer_key");
|
||||||
|
$consumer_secret = get_pconfig($user['uid'], "pumpio","consumer_secret");
|
||||||
|
|
||||||
|
$host = get_pconfig($user['uid'], "pumpio", "host");
|
||||||
|
$user = get_pconfig($user['uid'], "pumpio", "user");
|
||||||
|
|
||||||
|
$success = false;
|
||||||
|
|
||||||
|
if ($oauth_token AND $oauth_token_secret AND
|
||||||
|
$consumer_key AND $consumer_secret) {
|
||||||
|
$username = $user.'@'.$host;
|
||||||
|
|
||||||
|
logger('pumpio_queue: able to post for user '.$username);
|
||||||
|
|
||||||
|
$z = unserialize($x['content']);
|
||||||
|
|
||||||
|
$client = new oauth_client_class;
|
||||||
|
$client->oauth_version = '1.0a';
|
||||||
|
$client->url_parameters = false;
|
||||||
|
$client->authorization_header = true;
|
||||||
|
$client->access_token = $oauth_token;
|
||||||
|
$client->access_token_secret = $oauth_token_secret;
|
||||||
|
$client->client_id = $consumer_key;
|
||||||
|
$client->client_secret = $consumer_secret;
|
||||||
|
|
||||||
|
$success = $client->CallAPI($z['url'], 'POST', $z['post'], array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
||||||
|
|
||||||
|
if($success) {
|
||||||
|
$post_id = $user->object->id;
|
||||||
|
logger('pumpio_queue: send '.$username.': success '.$post_id);
|
||||||
|
if($post_id AND $iscomment) {
|
||||||
|
logger('pumpio_send '.$username.': Update extid '.$post_id." for post id ".$z['item']);
|
||||||
|
q("UPDATE `item` SET `extid` = '%s' WHERE `id` = %d LIMIT 1",
|
||||||
|
dbesc($post_id),
|
||||||
|
intval($z['item'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
remove_queue_item($x['id']);
|
||||||
|
} else
|
||||||
|
logger('pumpio_queue: send '.$username.': general error: ' . print_r($user,true));
|
||||||
|
} else
|
||||||
|
logger("pumpio_queue: Error getting tokens for user ".$user['uid']);
|
||||||
|
|
||||||
|
if (!$success) {
|
||||||
|
logger('pumpio_queue: delayed');
|
||||||
|
update_queue_time($x['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
To-Do:
|
To-Do:
|
||||||
- Queues
|
- doing likes
|
||||||
- unlike
|
- importing unlike
|
||||||
|
|
||||||
Aufwand:
|
Work:
|
||||||
- eigene Inhalte editieren
|
- edit own posts
|
||||||
- eigene Inhalte löschen
|
- delete own posts
|
||||||
|
|
||||||
Problem:
|
Problem:
|
||||||
- vervollständigen der Threads
|
- Threads completion
|
||||||
- Aktualisieren nach Antworten
|
- refresh after post
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue