summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-01-11 08:33:28 +0000
committerZach Copley <zach@controlyourself.ca>2009-01-11 08:33:28 +0000
commita373e6f500e172fed02ea6c892b69af69da4f688 (patch)
tree438f470c8c26f2eddcd6d60a8d5ce7edc4966458
parent689be142158dae5af1516cb38b947f0364d725dd (diff)
trac750 Automatically update Identi.ca profile box with user's latest dent
-rw-r--r--actions/facebookhome.php17
-rw-r--r--lib/facebookaction.php55
-rw-r--r--lib/facebookutil.php57
-rwxr-xr-xscripts/update_facebook.php6
4 files changed, 70 insertions, 65 deletions
diff --git a/actions/facebookhome.php b/actions/facebookhome.php
index 4e67494f0..bbef447cd 100644
--- a/actions/facebookhome.php
+++ b/actions/facebookhome.php
@@ -82,21 +82,24 @@ class FacebookhomeAction extends FacebookAction
function showHome($flink, $msg)
{
+
+ $facebook = get_facebook();
+ $fbuid = $facebook->require_login();
+
+ $user = $flink->getUser();
+
+ $notice = $user->getCurrentNotice();
+ update_profile_box($facebook, $fbuid, $user, $notice);
+
+
$this->show_header('Home');
if ($msg) {
common_element('fb:success', array('message' => $msg));
}
- $facebook = get_facebook();
- $fbuid = $facebook->require_login();
-
- $user = $flink->getUser();
-
echo $this->show_notices($user);
- $this->update_profile_box($facebook, $fbuid, $user);
-
$this->show_footer();
}
diff --git a/lib/facebookaction.php b/lib/facebookaction.php
index 04bbd67ba..ddf81c034 100644
--- a/lib/facebookaction.php
+++ b/lib/facebookaction.php
@@ -29,61 +29,6 @@ class FacebookAction extends Action
parent::handle($args);
}
- function update_profile_box($facebook, $fbuid, $user)
- {
-
- $notice = $user->getCurrentNotice();
-
- # Need to include inline CSS for styling the Profile box
-
- $style = '<style>
- #notices {
- clear: both;
- margin: 0 auto;
- padding: 0;
- list-style-type: none;
- width: 600px;
- border-top: 1px solid #dec5b5;
- }
- #notices a:hover {
- text-decoration: underline;
- }
- .notice_single {
- clear: both;
- display: block;
- margin: 0;
- padding: 5px 5px 5px 0;
- min-height: 48px;
- font-family: Georgia, "Times New Roman", Times, serif;
- font-size: 13px;
- line-height: 16px;
- border-bottom: 1px solid #dec5b5;
- background-color:#FCFFF5;
- opacity:1;
- }
- .notice_single:hover {
- background-color: #f7ebcc;
- }
- .notice_single p {
- display: inline;
- margin: 0;
- padding: 0;
- }
- </style>';
-
- $html = Facebookaction::render_notice($notice);
-
-
- $fbml = "<fb:wide>$style $html</fb:wide>";
- $fbml .= "<fb:narrow>$style $html</fb:narrow>";
-
- $fbml_main = "<fb:narrow>$style $html</fb:narrow>";
-
- $facebook->api_client->profile_setFBML(null, $fbuid, $fbml, null, null, $fbml_main);
- }
-
- # Display methods
-
function show_header($selected = 'Home', $msg = null, $success = false)
{
diff --git a/lib/facebookutil.php b/lib/facebookutil.php
index e844dd09a..2529b8a4b 100644
--- a/lib/facebookutil.php
+++ b/lib/facebookutil.php
@@ -48,4 +48,59 @@ function start_fbml($indent = true)
$xw = new XMLWriter();
$xw->openURI('php://output');
$xw->setIndent($indent);
-} \ No newline at end of file
+}
+
+function update_profile_box($facebook, $fbuid, $user, $notice)
+{
+
+ // Need to include inline CSS for styling the Profile box
+
+ $style = '<style>
+ #notices {
+ clear: both;
+ margin: 0 auto;
+ padding: 0;
+ list-style-type: none;
+ width: 600px;
+ border-top: 1px solid #dec5b5;
+ }
+ #notices a:hover {
+ text-decoration: underline;
+ }
+ .notice_single {
+ clear: both;
+ display: block;
+ margin: 0;
+ padding: 5px 5px 5px 0;
+ min-height: 48px;
+ font-family: Georgia, "Times New Roman", Times, serif;
+ font-size: 13px;
+ line-height: 16px;
+ border-bottom: 1px solid #dec5b5;
+ background-color:#FCFFF5;
+ opacity:1;
+ }
+ .notice_single:hover {
+ background-color: #f7ebcc;
+ }
+ .notice_single p {
+ display: inline;
+ margin: 0;
+ padding: 0;
+ }
+ </style>';
+
+ global $xw;
+ $xw = new XMLWriter();
+ $xw->openMemory();
+
+ $item = new NoticeListItem($notice);
+ $item->show();
+
+ $fbml = "<fb:wide>$style " . $xw->outputMemory(false) . "</fb:wide>";
+ $fbml .= "<fb:narrow>$style " . $xw->outputMemory(false) . "</fb:narrow>";
+
+ $fbml_main = "<fb:narrow>$style " . $xw->outputMemory(false) . "</fb:narrow>";
+
+ $facebook->api_client->profile_setFBML(null, $fbuid, $fbml, null, null, $fbml_main);
+}
diff --git a/scripts/update_facebook.php b/scripts/update_facebook.php
index 15c0e49f8..2a1251f37 100755
--- a/scripts/update_facebook.php
+++ b/scripts/update_facebook.php
@@ -31,7 +31,7 @@ require_once(INSTALLDIR . '/lib/common.php');
require_once(INSTALLDIR . '/lib/facebookutil.php');
// For storing the last run date-time
-$last_updated_file = "/home/zach/laconica/scripts/facebook_last_updated";
+$last_updated_file = INSTALLDIR . '/scripts/facebook_last_updated';
// Lock file name
$tmp_file = "/tmp/update_facebook.lock";
@@ -54,7 +54,8 @@ $cnt = 0;
while($notice->fetch()) {
- $flink = Foreign_link::getByUserID($notice->profile_id, 2);
+ $flink = Foreign_link::getByUserID($notice->profile_id, FACEBOOK_SERVICE);
+ $user = $flink->getUser();
$fbuid = $flink->foreign_id;
$content = $notice->content;
@@ -64,6 +65,7 @@ while($notice->fetch()) {
if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $content) ||
(($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) == FOREIGN_NOTICE_SEND_REPLY)) {
update_status($fbuid, $content);
+ update_profile_box($facebook, $fbuid, $user, $notice);
$cnt++;
}
}