mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2024-11-17 12:03:45 +00:00
the xml POST data was missing the "usejournal" parameter,
required for LJ to know to which blog to post (since users have posting permission to their own AND to community blogs). It is now hardwired to their own, personal blog. Eventually this should be more configurable. Also, the plugin shouldn't be hardwired for livejournal, but also allow dreamwidth, insanejournal, deadjournal, etc. I'll work on that.
This commit is contained in:
parent
7740ca3907
commit
734d400b2f
2 changed files with 107 additions and 91 deletions
15
ljpost/ljpost.css
Normal file
15
ljpost/ljpost.css
Normal file
|
@ -0,0 +1,15 @@
|
|||
|
||||
#ljpost-enable-label, #ljpost-username-label, #ljpost-password-label, #ljpost-bydefault-label {
|
||||
float: left;
|
||||
width: 200px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#ljpost-checkbox, #ljpost-username, #ljpost-password, #ljpost-bydefault {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#ljpost-submit {
|
||||
margin-top: 15px;
|
||||
}
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
/**
|
||||
* Name: LiveJournal Post Connector
|
||||
* Description: Post to LiveJournal (or anything else which uses blogger XMLRPC API)
|
||||
* Description: Post to LiveJournal
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||
* Author: Tony Baldwin <http://theshi.re/profile/tony>
|
||||
* Author: Michael Johnston
|
||||
*/
|
||||
|
||||
function ljpost_install() {
|
||||
|
@ -23,26 +23,19 @@ function ljpost_uninstall() {
|
|||
unregister_hook('connector_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings');
|
||||
unregister_hook('connector_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post');
|
||||
|
||||
// obsolete - remove
|
||||
unregister_hook('post_local_end', 'addon/ljpost/ljpost.php', 'ljpost_send');
|
||||
unregister_hook('plugin_settings', 'addon/ljpost/ljpost.php', 'ljpost_settings');
|
||||
unregister_hook('plugin_settings_post', 'addon/ljpost/ljpost.php', 'ljpost_settings_post');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function ljpost_jot_nets(&$a,&$b) {
|
||||
if(! local_user())
|
||||
return;
|
||||
|
||||
$lj_post = get_pconfig(local_user(),'ljpost','post');
|
||||
if(intval($lj_post) == 1) {
|
||||
$wp_defpost = get_pconfig(local_user(),'ljpost','post_by_default');
|
||||
$selected = ((intval($wp_defpost) == 1) ? ' checked="checked" ' : '');
|
||||
$lj_defpost = get_pconfig(local_user(),'ljpost','post_by_default');
|
||||
$selected = ((intval($lj_defpost) == 1) ? ' checked="checked" ' : '');
|
||||
$b .= '<div class="profile-jot-net"><input type="checkbox" name="ljpost_enable" ' . $selected . ' value="1" /> '
|
||||
. t('Post to Livejournal') . '</div>';
|
||||
. t('Post to LiveJournal') . '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,7 +61,6 @@ function ljpost_settings(&$a,&$s) {
|
|||
|
||||
$lj_username = get_pconfig(local_user(), 'ljpost', 'lj_username');
|
||||
$lj_password = get_pconfig(local_user(), 'ljpost', 'lj_password');
|
||||
$lj_blog = get_pconfig(local_user(), 'ljpost', 'lj_blog');
|
||||
|
||||
|
||||
/* Add some HTML to the existing form */
|
||||
|
@ -90,14 +82,14 @@ $lj_blog = get_pconfig(local_user(), 'ljpost', 'lj_blog');
|
|||
$s .= '<input id="ljpost-password" type="password" name="lj_password" value="' . $lj_password . '" />';
|
||||
$s .= '</div><div class="clear"></div>';
|
||||
|
||||
$s .= '<div id="ljpost-blog-wrapper">';
|
||||
$s .= '<label id="ljpost-blog-label" for="ljpost-blog">' . t('LiveJournal API URL') . '</label>';
|
||||
$s .= '<input id="ljpost-blog" type="text" name="lj_blog" value="' . $lj_blog . '" />';
|
||||
$s .= '<div id="ljpost-url-wrapper">';
|
||||
$s .= '<label id="ljpost-url-label" for="ljpost-url">' . t('LiveJournal URL') . '</label>';
|
||||
$s .= '<input id="ljpost-url" type="url" name="lj_url" value="' . $lj_url . '" />';
|
||||
$s .= '</div><div class="clear"></div>';
|
||||
|
||||
$s .= '<div id="ljpost-bydefault-wrapper">';
|
||||
$s .= '<label id="ljpost-bydefault-label" for="ljpost-bydefault">' . t('Post to LiveJournal by default') . '</label>';
|
||||
$s .= '<input id="ljpost-bydefault" type="checkbox" name="wp_bydefault" value="1" ' . $def_checked . '/>';
|
||||
$s .= '<input id="ljpost-bydefault" type="checkbox" name="lj_bydefault" value="1" ' . $def_checked . '/>';
|
||||
$s .= '</div><div class="clear"></div>';
|
||||
|
||||
/* provide a submit button */
|
||||
|
@ -115,7 +107,6 @@ set_pconfig(local_user(),'ljpost','post',intval($_POST['ljpost']));
|
|||
set_pconfig(local_user(),'ljpost','post_by_default',intval($_POST['lj_bydefault']));
|
||||
set_pconfig(local_user(),'ljpost','lj_username',trim($_POST['lj_username']));
|
||||
set_pconfig(local_user(),'ljpost','lj_password',trim($_POST['lj_password']));
|
||||
set_pconfig(local_user(),'ljpost','lj_blog',trim($_POST['lj_blog']));
|
||||
|
||||
}
|
||||
|
||||
|
@ -163,50 +154,59 @@ function ljpost_send(&$a,&$b) {
|
|||
if($b['parent'] != $b['id'])
|
||||
return;
|
||||
|
||||
// LiveJournal post in the LJ user's timezone.
|
||||
// Hopefully the person's Friendica account
|
||||
// will be set to the same thing.
|
||||
|
||||
$tz = 'UTC';
|
||||
|
||||
$x = q("select timezone from user where uid = %d limit 1",
|
||||
intval($b['uid'])
|
||||
);
|
||||
if($x && strlen($x[0]['timezone']))
|
||||
$tz = $x[0]['timezone'];
|
||||
|
||||
$lj_username = get_pconfig($b['uid'],'ljpost','lj_username');
|
||||
$lj_password = get_pconfig($b['uid'],'ljpost','lj_password');
|
||||
$lj_blog = get_pconfig($b['uid'],'ljpost','lj_blog');
|
||||
$lj_blog = '$lj_url/interface/xmlrpc';
|
||||
|
||||
if($lj_username && $lj_password && $lj_blog) {
|
||||
|
||||
require_once('include/bbcode.php');
|
||||
require_once('include/datetime.php');
|
||||
|
||||
$title = '<title>' . (($b['title']) ? $b['title'] : t('Post from Friendica')) . '</title>';
|
||||
$post = $title . bbcode($b['body']);
|
||||
$title = $b['title'];
|
||||
$post = bbcode($b['body']);
|
||||
$post = xmlify($post);
|
||||
|
||||
$year = date('Y')
|
||||
$month = date('F')
|
||||
$day = date('l')
|
||||
$hour = date('H')
|
||||
$min = date('i')
|
||||
$date = datetime_convert('UTC',$tz,$b['created'],'Y-m-d H:i:s');
|
||||
$year = intval(substr($date,0,4));
|
||||
$mon = intval(substr($date,5,2));
|
||||
$day = intval(substr($date,8,2));
|
||||
$hour = intval(substr($date,11,2));
|
||||
$min = intval(substr($date,14,2));
|
||||
|
||||
$xml = <<< EOT
|
||||
|
||||
<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
|
||||
<methodCall><methodName>LJ.XMLRPC.postevent</methodName>
|
||||
<params><param>
|
||||
<value><struct>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<methodCall>
|
||||
<methodName>LJ.XMLRPC.postevent</methodName>
|
||||
<params>
|
||||
<param><value>
|
||||
<struct>
|
||||
<member><name>username</name><value><string>$lj_username</string></value></member>
|
||||
<member><name>password</name><value><string>$lj_password</string></value></member>
|
||||
<member><name>usejournal</name><value><string>$lj_username</string></value></member>
|
||||
<member><name>event</name><value><string>$post</string></value></member>
|
||||
<member><name>subject</name><value><string>$title</string></value></member>
|
||||
<member><name>lineendings</name><value><string>unix</string></value></member>
|
||||
<member><name>year</name><value><int>$year</int></value></member>
|
||||
<member><name>mon</name><value><int>$month</int></value></member>
|
||||
<member><name>mon</name><value><int>$mon</int></value></member>
|
||||
<member><name>day</name><value><int>$day</int></value></member>
|
||||
<member><name>hour</name><value><int>$hour</int></value></member>
|
||||
<member><name>min</name><value><int>$min</int></value></member>
|
||||
<member><name>usejournal</name><value><string>$lj_blog</string></value></member>
|
||||
<member><name>event</name><value><string>$post</string></value></member>
|
||||
<member><name>username</name><value><string>$lj_username</string></value></member>
|
||||
<member><name>password</name><value><string>$lj_password</string></value></member>
|
||||
<member><name>subject</name><value><string>friendica post</string></value></member>
|
||||
<member><name>lineendings</name><value><string>unix</string></value></member>
|
||||
<member><name>ver</name><value><int>1</int></value></member>
|
||||
<member><name>props</name>
|
||||
<value><struct>
|
||||
<member><name>useragent</name><value><string>Friendica</string></value></member>
|
||||
<member><name>taglist</name><value><string>friendica,crosspost</string></value></member>
|
||||
</struct></value></member>
|
||||
</struct></value>
|
||||
</param></params>
|
||||
</struct>
|
||||
</value></param>
|
||||
</params>
|
||||
</methodCall>
|
||||
|
||||
EOT;
|
||||
|
@ -215,7 +215,8 @@ logger('ljpost: data: ' . $xml, LOGGER_DATA);
|
|||
|
||||
if($lj_blog !== 'test')
|
||||
$x = post_url($lj_blog,$xml);
|
||||
logger('posted to livejournal: ' . ($x) ? $x : '');
|
||||
logger('posted to livejournal: ' . ($x) ? $x : '', LOGGER_DEBUG);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue