]> git.mxchange.org Git - friendica.git/commitdiff
item source
authorFriendika <info@friendika.com>
Tue, 21 Jun 2011 02:08:40 +0000 (19:08 -0700)
committerFriendika <info@friendika.com>
Tue, 21 Jun 2011 02:08:40 +0000 (19:08 -0700)
boot.php
database.sql
include/api.php
include/conversation.php
include/items.php
include/salmon.php
mod/item.php
update.php
view/atom_feed.tpl

index 888fb7920d856e54f82d6471849d7cc194849159..b726b79a8d4c578d75e982343d36af6498c211ea 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -6,7 +6,7 @@ ini_set('pcre.backtrack_limit', 250000);
 
 define ( 'FRIENDIKA_VERSION',      '2.2.1017' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.21'    );
-define ( 'DB_UPDATE_VERSION',      1064      );
+define ( 'DB_UPDATE_VERSION',      1065      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
@@ -128,6 +128,8 @@ define ( 'NAMESPACE_OSTATUSSUB',      'http://ostatus.org/schema/1.0/subscribe'
 define ( 'NAMESPACE_GEORSS',          'http://www.georss.org/georss' );
 define ( 'NAMESPACE_POCO',            'http://portablecontacts.net/spec/1.0' );
 define ( 'NAMESPACE_FEED',            'http://schemas.google.com/g/2010#updates-from' );
+define ( 'NAMESPACE_OSTATUS',         'http://ostatus.org/schema/1.0' );
+define ( 'NAMESPACE_STATUSNET',       'http://status.net/schema/api/1/' );
 
 /**
  * activity stream defines
index 54e5f39831de1c8d35cf92f31099580b3cf523c2..e248b6b3d5e83e13235208f9f75cd3e92247210d 100644 (file)
@@ -179,6 +179,7 @@ CREATE TABLE IF NOT EXISTS `item` (
   `author-avatar` char(255) NOT NULL,
   `title` char(255) NOT NULL,
   `body` mediumtext NOT NULL,
+  `app` char(255) NOT NULL,
   `verb` char(255) NOT NULL,
   `object-type` char(255) NOT NULL,
   `object` text NOT NULL,
index 2d90071267551fbddb242f22fb1e7c4cac2837e8..cab1431d3d59ced2b57b5f035ef750f18ea3894d 100644 (file)
        api_register_func('api/account/verify_credentials','api_account_verify_credentials', true);
                
 
-       // TODO - media uploads and alternate 'source'
+       // TODO - media uploads
        
        function api_statuses_update(&$a, $type) {
                if (local_user()===false) return false;
                                'created_at' => api_date($lastwall['created']),
                                'id' => $lastwall['contact-id'],
                                'text' => strip_tags(bbcode($lastwall['body'])),
-                               'source' => 'web',
+                               'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
                                'truncated' => false,
                                'in_reply_to_status_id' => $in_reply_to_status_id,
                                'in_reply_to_user_id' => $in_reply_to_user_id,
                                'created_at' => api_date($lastwall['created']),
                                'id' => $lastwall['contact-id'],
                                'text' => strip_tags(bbcode($lastwall['body'])),
-                               'source' => 'web',
+                               'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
                                'truncated' => false,
                                'in_reply_to_status_id' => $in_reply_to_status_id,
                                'in_reply_to_user_id' => $in_reply_to_user_id,
                                'id'            => $item['id'],
                                'text'          => strip_tags(bbcode($item['body'])),
                                'html'          => bbcode($item['body']),
-                               'source'        => 'web',
+                               'source'    => (($item['app']) ? $item['app'] : 'web'),
                                'url'           => ($item['plink']!=''?$item['plink']:$item['author-link']),
                                'truncated' => False,
                                'in_reply_to_status_id' => ($item['parent']!=$item['id']?$item['parent']:''),
index b536fed5fdb00009a18e98f3c27bbcdb3b29f3c9..1fd9c31eca3c55f20e21a795d7be5191032f2126 100644 (file)
@@ -191,7 +191,7 @@ function conversation(&$a, $items, $mode, $update) {
                                        '$thumb' => $profile_avatar,
                                        '$title' => $item['title'],
                                        '$body' => $body,
-                                       '$ago' => relative_date($item['created']),
+                                       '$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
                                        '$location' => $location,
                                        '$indent' => '',
                                        '$owner_url' => $owner_url,
@@ -464,7 +464,7 @@ function conversation(&$a, $items, $mode, $update) {
                                '$sparkle' => $sparkle,
                                '$title' => $item['title'],
                                '$body' => $body,
-                               '$ago' => relative_date($item['created']),
+                               '$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
                                '$lock' => $lock,
                                '$location' => $location,
                                '$indent' => $indent,
index a003b84bb2f61edb56c710d1ff4dce72c25f9360..5bcdaef9988c8e1e83497dee03d9936727f13590 100644 (file)
@@ -336,6 +336,12 @@ function get_atom_elements($feed,$item) {
                }
        }
 
+       $apps = $item->get_item_tags(NAMESPACE_STATUSNET,'notice_info');
+       if($apps && $apps[0]['attribs']['']['source']) {
+               $res['app'] = $apps[0]['attribs']['']['source'];
+               if($res['app'] === 'web')
+                       $res['app'] = 'OStatus';
+       }                  
 
        /**
         * If there's a copy of the body content which is guaranteed to have survived mangling in transit, use it.
@@ -685,6 +691,7 @@ function item_store($arr,$force_parent = false) {
        $arr['body']          = ((x($arr,'body'))          ? trim($arr['body'])                  : '');
        $arr['tag']           = ((x($arr,'tag'))           ? notags(trim($arr['tag']))           : '');
        $arr['attach']        = ((x($arr,'attach'))        ? notags(trim($arr['attach']))        : '');
+       $arr['app']           = ((x($arr,'app'))           ? notags(trim($arr['app']))           : '');
 
        if($arr['parent-uri'] === $arr['uri']) {
                $parent_id = 0;
@@ -1620,7 +1627,8 @@ function atom_entry($item,$type,$author,$owner,$comment = false) {
        if($item['extid'])
                $o .= '<dfrn:extid>' . $item['extid'] . '</dfrn:extid>' . "\r\n";
 
-
+       if($item['app'])
+               $o .= '<statusnet:notice_info local_id="' . $item['id'] . '" source="' . $item['app'] . '" ></statusnet:notice_info>';
        $verb = construct_verb($item);
        $o .= '<as:verb>' . xmlify($verb) . '</as:verb>' . "\r\n";
        $actobj = construct_activity_object($item);
index d7060b0f7a583cb48296c1c2d123f9fd105f0be2..74da98c93c4a36dfc21b1c203130711740198cf9 100644 (file)
@@ -129,7 +129,8 @@ $namespaces = <<< EOT
       xmlns:as="http://activitystrea.ms/spec/1.0/"
       xmlns:georss="http://www.georss.org/georss" 
       xmlns:poco="http://portablecontacts.net/spec/1.0" 
-      xmlns:ostatus="http://ostatus.org/schema/1.0" >
+      xmlns:ostatus="http://ostatus.org/schema/1.0" 
+         xmlns:statusnet="http://status.net/schema/api/1/" >                                                                                                   >
 EOT;
 
        $slap = str_replace('<entry>',$namespaces,$slap);
index e8714f955ffa2a4225d4205952ff2769cd268ad7..84fe237b3d8d762b7b986ffb14902775cade6a14 100644 (file)
@@ -61,6 +61,7 @@ function item_post(&$a) {
 
        $profile_uid = ((x($_POST,'profile_uid')) ? intval($_POST['profile_uid']) : 0);
        $post_id     = ((x($_POST['post_id']))    ? intval($_POST['post_id'])     : 0);
+       $app         = ((x($_POST['source']))     ? notags($_POST['source'])      : '');
 
        if(! can_write_wall($a,$profile_uid)) {
                notice( t('Permission denied.') . EOL) ;
@@ -102,6 +103,7 @@ function item_post(&$a) {
                $coord             = $orig_post['coord'];
                $verb              = $orig_post['verb'];
                $emailcc           = $orig_post['emailcc'];
+               $app                       = $orig_post['app'];
 
                $body              = escape_tags(trim($_POST['body']));
                $private           = $orig_post['private'];
@@ -421,6 +423,7 @@ function item_post(&$a) {
        $datarray['uri']           = $uri;
        $datarray['title']         = $title;
        $datarray['body']          = $body;
+       $datarray['app']           = $app;
        $datarray['location']      = $location;
        $datarray['coord']         = $coord;
        $datarray['tag']           = $str_tags;
@@ -469,9 +472,9 @@ function item_post(&$a) {
 
 
        $r = q("INSERT INTO `item` (`uid`,`type`,`wall`,`gravity`,`contact-id`,`owner-name`,`owner-link`,`owner-avatar`, 
-               `author-name`, `author-link`, `author-avatar`, `created`, `edited`, `changed`, `uri`, `title`, `body`, `location`, `coord`, 
+               `author-name`, `author-link`, `author-avatar`, `created`, `edited`, `changed`, `uri`, `title`, `body`, `app`, `location`, `coord`, 
                `tag`, `inform`, `verb`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach` )
-               VALUES( %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s' )",
+               VALUES( %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s' )",
                intval($datarray['uid']),
                dbesc($datarray['type']),
                intval($datarray['wall']),
@@ -489,6 +492,7 @@ function item_post(&$a) {
                dbesc($datarray['uri']),
                dbesc($datarray['title']),
                dbesc($datarray['body']),
+               dbesc($datarray['app']),
                dbesc($datarray['location']),
                dbesc($datarray['coord']),
                dbesc($datarray['tag']),
index 541a12ef56fbbb879f7b99d4b292c75f0bd8ae90..595395673216ec353b2311c3eb2cbc07f2f0b093 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-define( 'UPDATE_VERSION' , 1064 );
+define( 'UPDATE_VERSION' , 1065 );
 
 /**
  *
@@ -521,3 +521,6 @@ function update_1063() {
        q("ALTER TABLE `addon` ADD `plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `timestamp` ");
 }
 
+function update_1064() {
+       q("ALTER TABLE `item` ADD `app` CHAR( 255 ) NOT NULL AFTER `body` ");
+}
index 686c256ed9aeb30f3d9aa622845abed6dbd19430..3d6bcc5b5acc1a4d77d215fa37cb06a211c5a9a7 100644 (file)
@@ -7,7 +7,8 @@
       xmlns:as="http://activitystrea.ms/spec/1.0/"
       xmlns:georss="http://www.georss.org/georss" 
       xmlns:poco="http://portablecontacts.net/spec/1.0" 
-      xmlns:ostatus="http://ostatus.org/schema/1.0" > 
+      xmlns:ostatus="http://ostatus.org/schema/1.0" 
+         xmlns:statusnet="http://status.net/schema/api/1/" > 
 
   <id>$feed_id</id>
   <title>$feed_title</title>