put bookmarked chatrooms into poco

This commit is contained in:
friendica 2014-02-25 19:48:13 -08:00
parent 2c72e49d1f
commit e7e97e578b
5 changed files with 52 additions and 3 deletions

View File

@ -47,7 +47,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1100 );
define ( 'DB_UPDATE_VERSION', 1101 );
define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -64,6 +64,34 @@ function poco_load($xchan = '',$url = null) {
logger('poco_load: ' . print_r($j,true),LOGGER_DATA);
if($xchan) {
if(array_key_exists('chatrooms',$j) && is_array($j['chatrooms'])) {
foreach($j['chatrooms'] as $room) {
$r = q("select * from xchat where xchat_url = '%s' and xchat_xchan = '%s' limit 1",
dbesc($room['url'])
);
if($r) {
q("update xchat set xchat_edited = '%s' where xchat_id = %d limit 1",
dbesc(datetime_convert()),
intval($r[0]['xchat_id'])
);
}
else {
$x = q("insert into xchat ( xchat_url, xchat_desc, xchat_xchan, xchat_edited )
values ( '%s', '%s', '%s', '%s' ) ",
dbesc(escape_tags($room['url'])),
dbesc(escape_tags($room['desc'])),
dbesc($xchan),
dbesc(datetime_convert())
);
}
}
}
q("delete from xchat where xchat_edited < UTC_TIMESTAMP() - INTERVAL 7 DAY and xchat_xchan = '%s' ",
dbesc($xchan)
);
}
if(! ((x($j,'entry')) && (is_array($j['entry'])))) {
logger('poco_load: no entries');
return;

View File

@ -1032,10 +1032,12 @@ CREATE TABLE IF NOT EXISTS `xchat` (
`xchat_url` char(255) NOT NULL DEFAULT '',
`xchat_desc` char(255) NOT NULL DEFAULT '',
`xchat_xchan` char(255) NOT NULL DEFAULT '',
`xchat_edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
PRIMARY KEY (`xchat_id`),
KEY `xchat_url` (`xchat_url`),
KEY `xchat_desc` (`xchat_desc`),
KEY `xchat_xchan` (`xchat_xchan`)
KEY `xchat_xchan` (`xchat_xchan`),
KEY `xchat_edited` (`xchat_edited`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xconfig` (

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1100 );
define( 'UPDATE_VERSION' , 1101 );
/**
*
@ -1136,3 +1136,11 @@ function update_r1099() {
return UPDATE_FAILED;
}
function update_r1100() {
$r = q("ALTER TABLE `xchat` ADD `xchat_edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
ADD INDEX ( `xchat_edited` ) ");
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -76,6 +76,9 @@ function poco_init(&$a) {
$sql_extra ",
intval($channel_id)
);
$c = q("select * from menu_item where ( mitem_flags & " . intval(MENU_ITEM_CHATROOM) . " ) and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' and mitem_channel_id = %d",
intval($channel_id)
);
}
if($r)
$totalResults = intval($r[0]['total']);
@ -115,6 +118,14 @@ function poco_init(&$a) {
$ret['startIndex'] = (string) $startIndex;
$ret['itemsPerPage'] = (string) $itemsPerPage;
$ret['totalResults'] = (string) $totalResults;
if($c) {
$ret['chatrooms'] = array();
foreach($c as $d) {
$ret['chatrooms'][] = array('url' => $d['mitem_link'], 'desc' => $d['mitem_desc']);
}
}
$ret['entry'] = array();