summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Notice.php9
-rw-r--r--classes/Notice_inbox.php5
-rwxr-xr-xscripts/twitterstatusfetcher.php45
3 files changed, 19 insertions, 40 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 895b5d2c7..45ea72823 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -120,7 +120,8 @@ class Notice extends Memcached_DataObject
}
}
- static function saveNew($profile_id, $content, $source=null, $is_local=1, $reply_to=null, $uri=null) {
+ static function saveNew($profile_id, $content, $source=null,
+ $is_local=1, $reply_to=null, $uri=null, $created=null) {
$profile = Profile::staticGet($profile_id);
@@ -166,7 +167,11 @@ class Notice extends Memcached_DataObject
$notice->query('BEGIN');
$notice->reply_to = $reply_to;
- $notice->created = common_sql_now();
+ if (!empty($created)) {
+ $notice->created = $created;
+ } else {
+ $notice->created = common_sql_now();
+ }
$notice->content = $final;
$notice->rendered = common_render_content($final, $notice);
$notice->source = $source;
diff --git a/classes/Notice_inbox.php b/classes/Notice_inbox.php
index 8a27e1747..673e187c7 100644
--- a/classes/Notice_inbox.php
+++ b/classes/Notice_inbox.php
@@ -85,4 +85,9 @@ class Notice_inbox extends Memcached_DataObject
return $ids;
}
+
+ function &pkeyGet($kv)
+ {
+ return Memcached_DataObject::pkeyGet('Notice_inbox', $kv);
+ }
}
diff --git a/scripts/twitterstatusfetcher.php b/scripts/twitterstatusfetcher.php
index a61ce1b0d..9287b6d73 100755
--- a/scripts/twitterstatusfetcher.php
+++ b/scripts/twitterstatusfetcher.php
@@ -255,42 +255,11 @@ class TwitterStatusFetcher extends Daemon
// check to see if we've already imported the status
if (!$notice) {
- $notice = new Notice();
- $notice->profile_id = $id;
+ $created = strftime('%Y-%m-%d %H:%M:%S',
+ strtotime($status->created_at));;
- $notice->query('BEGIN');
-
- // XXX: figure out reply_to
- $notice->reply_to = null;
-
- // XXX: Should this be common_sql_now() instead of status create date?
-
- $notice->created = strftime('%Y-%m-%d %H:%M:%S',
- strtotime($status->created_at));
- $notice->content = $status->text;
- $notice->rendered = common_render_content($status->text, $notice);
- $notice->source = 'twitter';
- $notice->is_local = 0;
- $notice->uri = $uri;
-
- $notice_id = $notice->insert();
-
- if (!$notice_id) {
- common_log_db_error($notice, 'INSERT', __FILE__);
- if (defined('SCRIPT_DEBUG')) {
- common_debug('Could not save notice!');
- }
- }
-
- // XXX: Figure out a better way to link Twitter replies?
- $notice->saveReplies();
-
- // XXX: Do we want to pollute our tag cloud with
- // hashtags from Twitter?
- $notice->saveTags();
- $notice->saveGroups();
-
- $notice->query('COMMIT');
+ $notice = Notice::saveNew($id, $status->text, 'twitter',
+ -2, null, $uri, $created);
if (defined('SCRIPT_DEBUG')) {
common_debug("Saved status $status->id" .
@@ -298,13 +267,13 @@ class TwitterStatusFetcher extends Daemon
}
}
- if (!Notice_inbox::staticGet('notice_id', $notice->id)) {
-
+ if (!Notice_inbox::pkeyGet(array('notice_id' => $notice->id,
+ 'user_id' => $flink->user_id))) {
// Add to inbox
$inbox = new Notice_inbox();
$inbox->user_id = $flink->user_id;
$inbox->notice_id = $notice->id;
- $inbox->created = common_sql_now();
+ $inbox->created = $notice->created;
$inbox->insert();
}