X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FGNUsocialVideo%2Fclasses%2FVideo.php;fp=plugins%2FGNUsocialVideo%2Fclasses%2FVideo.php;h=0311ee596ce9fcdd86fe0735445bfb38aa2ed9e9;hb=de55d8f83bb2ecf9461510768fe7147aec592055;hp=0000000000000000000000000000000000000000;hpb=b6cfcfbcaa0459b39c5d581c103bfa031b2e02cd;p=quix0rs-gnu-social.git diff --git a/plugins/GNUsocialVideo/classes/Video.php b/plugins/GNUsocialVideo/classes/Video.php new file mode 100644 index 0000000000..0311ee596c --- /dev/null +++ b/plugins/GNUsocialVideo/classes/Video.php @@ -0,0 +1,107 @@ +. + * + * @package GNU Social + * @author Ian Denhardt + * @copyright 2011 Free Software Foundation, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + */ + +if(!defined('STATUSNET')){ + exit(1); +} + +/** + * Data class for videos. + */ + +class Video extends Managed_DataObject +{ + const OBJECT_TYPE = 'http://activitystrea.ms/schema/1.0/video'; + + public $__table = 'video'; // table name + public $id; // char (36) // UUID + public $uri; // varchar (255) // This is the corresponding notice's uri. + public $url; // varchar (255) + public $profile_id; // int + + public static function getByNotice($notice) + { + return self::getKV('uri', $notice->uri); + } + + public function getNotice() + { + return Notice::getKV('uri', $this->uri); + } + + public static function schemaDef() + { + return array( + 'description' => 'A video clip', + 'fields' => array( + 'id' => array('type' => 'char', + 'length' => 36, + 'not null' => true, + 'description' => 'UUID'), + 'uri' => array('type' => 'varchar', + 'length' => 255, + 'not null' => true), + 'url' => array('type' => 'varchar', + 'length' => 255, + 'not null' => true), + 'profile_id' => array('type' => 'int', 'not null' => true), + ), + 'primary key' => array('id'), + 'foreign keys' => array('video_profile_id__key' => array('profile' => array('profile_id' => 'id'))), + ); + } + + function saveNew($profile, $url, $options=array()) + { + $vid = new Video(); + + $vid->id = UUID::gen(); + $vid->profile_id = $profile->id; + $vid->url = $url; + + + $options['object_type'] = Video::OBJECT_TYPE; + + if (!array_key_exists('uri', $options)) { + $options['uri'] = common_local_url('showvideo', array('id' => $vid->id)); + } + + if (!array_key_exists('rendered', $options)) { + $options['rendered'] = sprintf("", $url); + } + + $vid->uri = $options['uri']; + + $vid->insert(); + + return Notice::saveNew($profile->id, + '', + 'web', + $options); + + } +}