diff --git a/database.sql b/database.sql index 6824dd1bd4..eadb53cc64 100644 --- a/database.sql +++ b/database.sql @@ -1,19 +1,77 @@ -- phpMyAdmin SQL Dump --- version 2.11.9.4 +-- version 3.3.10.4 -- http://www.phpmyadmin.net -- SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; +-- -------------------------------------------------------- -- +-- Table structure for table `addon` -- +CREATE TABLE IF NOT EXISTS `addon` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` char(255) NOT NULL, + `version` char(255) NOT NULL, + `installed` tinyint(1) NOT NULL DEFAULT '0', + `timestamp` bigint(20) NOT NULL DEFAULT '0', + `plugin_admin` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `attach` +-- + +CREATE TABLE IF NOT EXISTS `attach` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `hash` char(64) NOT NULL, + `filename` char(255) NOT NULL, + `filetype` char(64) NOT NULL, + `filesize` int(11) NOT NULL, + `data` longblob NOT NULL, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `auth_codes` +-- + +CREATE TABLE IF NOT EXISTS `auth_codes` ( + `id` varchar(40) NOT NULL, + `client_id` varchar(20) NOT NULL, + `redirect_uri` varchar(200) NOT NULL, + `expires` int(11) NOT NULL, + `scope` varchar(250) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `cache` +-- + +CREATE TABLE IF NOT EXISTS `cache` ( + `k` char(255) NOT NULL, + `v` text NOT NULL, + `updated` datetime NOT NULL, + PRIMARY KEY (`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + -- -------------------------------------------------------- -- @@ -32,17 +90,36 @@ CREATE TABLE IF NOT EXISTS `challenge` ( -- -------------------------------------------------------- -CREATE TABLE IF NOT EXISTS `config` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, - `k` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, - `v` text NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `access`(`cat`,`k`) +-- +-- Table structure for table `clients` +-- + +CREATE TABLE IF NOT EXISTS `clients` ( + `client_id` varchar(20) NOT NULL, + `pw` varchar(20) NOT NULL, + `redirect_uri` varchar(200) NOT NULL, + `name` text, + `icon` text, + `uid` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`client_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; +-- -------------------------------------------------------- +-- +-- Table structure for table `config` +-- +CREATE TABLE IF NOT EXISTS `config` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cat` char(255) CHARACTER SET ascii NOT NULL, + `k` char(255) CHARACTER SET ascii NOT NULL, + `v` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `access` (`cat`,`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- -- -- Table structure for table `contact` @@ -52,7 +129,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL COMMENT 'owner uid', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `self` tinyint(1) NOT NULL DEFAULT '0', + `self` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'boolean 1 == info for local UID, primarily name and photo to use in item displays.', `remote_self` tinyint(1) NOT NULL DEFAULT '0', `rel` tinyint(1) NOT NULL DEFAULT '0', `duplex` tinyint(1) NOT NULL DEFAULT '0', @@ -60,7 +137,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `name` char(255) NOT NULL, `nick` char(255) NOT NULL, `attag` char(255) NOT NULL, - `photo` text NOT NULL, + `photo` text NOT NULL COMMENT 'remote photo URL initially until approved', `thumb` text NOT NULL, `micro` text NOT NULL, `site-pubkey` text NOT NULL, @@ -96,32 +173,219 @@ CREATE TABLE IF NOT EXISTS `contact` ( `forum` tinyint(1) NOT NULL DEFAULT '0', `hidden` tinyint(1) NOT NULL DEFAULT '0', `pending` tinyint(1) NOT NULL DEFAULT '1', - `rating` tinyint(1) NOT NULL DEFAULT '0', - `reason` text NOT NULL, + `rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable', + `reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not', `closeness` tinyint(2) NOT NULL DEFAULT '99', `info` mediumtext NOT NULL, - `profile-id` int(11) NOT NULL DEFAULT '0', - `bdyear` CHAR( 4 ) NOT NULL COMMENT 'birthday notify flag', + `profile-id` int(11) NOT NULL DEFAULT '0' COMMENT 'which profile to display - 0 is public default', + `bdyear` char(4) NOT NULL COMMENT 'birthday notify flag', `bd` date NOT NULL, PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `self` (`self`), - KEY `network` (`network`), - KEY `name` (`name`), - KEY `nick` (`nick`), - KEY `attag` (`attag`), - KEY `url` (`url`), - KEY `nurl` (`nurl`), - KEY `addr` (`addr`), - KEY `batch` (`batch`), KEY `issued-id` (`issued-id`), KEY `dfrn-id` (`dfrn-id`), KEY `blocked` (`blocked`), KEY `readonly` (`readonly`), - KEY `forum` (`forum`), - KEY `hidden` (`hidden`), + KEY `network` (`network`), + KEY `name` (`name`), + KEY `nick` (`nick`), + KEY `attag` (`attag`), + KEY `addr` (`addr`), + KEY `url` (`url`), + KEY `batch` (`batch`), + KEY `nurl` (`nurl`), KEY `pending` (`pending`), - KEY `closeness` (`closeness`) + KEY `hidden` (`hidden`), + KEY `forum` (`forum`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `conv` +-- + +CREATE TABLE IF NOT EXISTS `conv` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `guid` char(64) NOT NULL, + `recips` mediumtext NOT NULL, + `uid` int(11) NOT NULL, + `creator` char(255) NOT NULL, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `subject` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `created` (`created`), + KEY `updated` (`updated`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `deliverq` +-- + +CREATE TABLE IF NOT EXISTS `deliverq` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cmd` char(32) NOT NULL, + `item` int(11) NOT NULL, + `contact` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `event` +-- + +CREATE TABLE IF NOT EXISTS `event` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `cid` int(11) NOT NULL, + `uri` char(255) NOT NULL, + `created` datetime NOT NULL, + `edited` datetime NOT NULL, + `start` datetime NOT NULL, + `finish` datetime NOT NULL, + `desc` text NOT NULL, + `location` text NOT NULL, + `type` char(255) NOT NULL, + `nofinish` tinyint(1) NOT NULL DEFAULT '0', + `adjust` tinyint(1) NOT NULL DEFAULT '1', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `fcontact` +-- + +CREATE TABLE IF NOT EXISTS `fcontact` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `url` char(255) NOT NULL, + `name` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `request` char(255) NOT NULL, + `nick` char(255) NOT NULL, + `addr` char(255) NOT NULL, + `batch` char(255) NOT NULL, + `notify` char(255) NOT NULL, + `poll` char(255) NOT NULL, + `confirm` char(255) NOT NULL, + `priority` tinyint(1) NOT NULL, + `network` char(32) NOT NULL, + `alias` char(255) NOT NULL, + `pubkey` text NOT NULL, + `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`), + KEY `addr` (`addr`), + KEY `network` (`network`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `ffinder` +-- + +CREATE TABLE IF NOT EXISTS `ffinder` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `cid` int(10) unsigned NOT NULL, + `fid` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `fserver` +-- + +CREATE TABLE IF NOT EXISTS `fserver` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server` char(255) NOT NULL, + `posturl` char(255) NOT NULL, + `key` text NOT NULL, + PRIMARY KEY (`id`), + KEY `server` (`server`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `fsuggest` +-- + +CREATE TABLE IF NOT EXISTS `fsuggest` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `cid` int(11) NOT NULL, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `request` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `note` text NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `gcign` +-- + +CREATE TABLE IF NOT EXISTS `gcign` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `gcid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `gcid` (`gcid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `gcontact` +-- + +CREATE TABLE IF NOT EXISTS `gcontact` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `nurl` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `connect` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `nurl` (`nurl`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `glink` +-- + +CREATE TABLE IF NOT EXISTS `glink` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cid` int(11) NOT NULL, + `uid` int(11) NOT NULL, + `gcid` int(11) NOT NULL, + `updated` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `uid` (`uid`), + KEY `gcid` (`gcid`), + KEY `updated` (`updated`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -155,6 +419,33 @@ CREATE TABLE IF NOT EXISTS `group_member` ( -- -------------------------------------------------------- +-- +-- Table structure for table `guid` +-- + +CREATE TABLE IF NOT EXISTS `guid` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `guid` char(64) NOT NULL, + PRIMARY KEY (`id`), + KEY `guid` (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `hook` +-- + +CREATE TABLE IF NOT EXISTS `hook` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `hook` char(255) NOT NULL, + `file` char(255) NOT NULL, + `function` char(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Table structure for table `intro` -- @@ -183,18 +474,18 @@ CREATE TABLE IF NOT EXISTS `intro` ( CREATE TABLE IF NOT EXISTS `item` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` char(64) NOT NULL, - `uri` char(255) NOT NULL, + `uri` char(255) CHARACTER SET ascii NOT NULL, `uid` int(10) unsigned NOT NULL DEFAULT '0', `contact-id` int(10) unsigned NOT NULL DEFAULT '0', `type` char(255) NOT NULL, `wall` tinyint(1) NOT NULL DEFAULT '0', `gravity` tinyint(1) NOT NULL DEFAULT '0', `parent` int(10) unsigned NOT NULL DEFAULT '0', - `parent-uri` char(255) NOT NULL, + `parent-uri` char(255) CHARACTER SET ascii NOT NULL, `extid` char(255) NOT NULL, `thr-parent` char(255) NOT NULL, - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL, + `edited` datetime NOT NULL, `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', @@ -213,9 +504,9 @@ CREATE TABLE IF NOT EXISTS `item` ( `target-type` char(255) NOT NULL, `target` text NOT NULL, `postopts` text NOT NULL, - `plink` char(255) NOT NULL, + `plink` char(255) NOT NULL, `resource-id` char(255) NOT NULL, - `event-id` int(10) unsigned NOT NULL, + `event-id` int(11) NOT NULL, `tag` mediumtext NOT NULL, `attach` mediumtext NOT NULL, `inform` mediumtext NOT NULL, @@ -239,42 +530,59 @@ CREATE TABLE IF NOT EXISTS `item` ( `forum_mode` tinyint(1) NOT NULL DEFAULT '0', `last-child` tinyint(1) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), - KEY `guid` (`guid`), KEY `uri` (`uri`), KEY `uid` (`uid`), KEY `contact-id` (`contact-id`), KEY `type` (`type`), KEY `parent` (`parent`), KEY `parent-uri` (`parent-uri`), - KEY `extid` (`extid`), KEY `created` (`created`), KEY `edited` (`edited`), - KEY `received` (`received`), - KEY `moderated` (`moderated`), KEY `visible` (`visible`), - KEY `spam` (`spam`), - KEY `starred` (`starred`), - KEY `bookmark` (`bookmark`), KEY `deleted` (`deleted`), - KEY `origin` (`origin`), - KEY `forum_mode` (`forum_mode`), KEY `last-child` (`last-child`), KEY `unseen` (`unseen`), + KEY `extid` (`extid`), + KEY `received` (`received`), + KEY `starred` (`starred`), + KEY `guid` (`guid`), + KEY `origin` (`origin`), KEY `wall` (`wall`), - KEY `author-name` (`author-name`), + KEY `forum_mode` (`forum_mode`), KEY `author-link` (`author-link`), + KEY `bookmark` (`bookmark`), + KEY `moderated` (`moderated`), + KEY `spam` (`spam`), + KEY `author-name` (`author-name`), FULLTEXT KEY `title` (`title`), FULLTEXT KEY `body` (`body`), - FULLTEXT KEY `tag` (`tag`), - FULLTEXT KEY `file` (`file`), FULLTEXT KEY `allow_cid` (`allow_cid`), FULLTEXT KEY `allow_gid` (`allow_gid`), FULLTEXT KEY `deny_cid` (`deny_cid`), - FULLTEXT KEY `deny_gid` (`deny_gid`) + FULLTEXT KEY `deny_gid` (`deny_gid`), + FULLTEXT KEY `tag` (`tag`), + FULLTEXT KEY `file` (`file`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- +-- +-- Table structure for table `item_id` +-- + +CREATE TABLE IF NOT EXISTS `item_id` ( + `iid` int(11) NOT NULL, + `uid` int(11) NOT NULL, + `sid` char(255) NOT NULL, + `service` char(255) NOT NULL, + PRIMARY KEY (`iid`), + KEY `uid` (`uid`), + KEY `sid` (`sid`), + KEY `service` (`service`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Table structure for table `mail` -- @@ -287,26 +595,130 @@ CREATE TABLE IF NOT EXISTS `mail` ( `from-photo` char(255) NOT NULL, `from-url` char(255) NOT NULL, `contact-id` char(255) NOT NULL, - `convid` int(10) unsigned NOT NULL, + `convid` int(11) NOT NULL, `title` char(255) NOT NULL, `body` mediumtext NOT NULL, - `seen` tinyint(1) NOT NULL DEFAULT '0', + `seen` tinyint(1) NOT NULL, `reply` tinyint(1) NOT NULL DEFAULT '0', - `replied` tinyint(1) NOT NULL DEFAULT '0', + `replied` tinyint(1) NOT NULL, `unknown` tinyint(1) NOT NULL DEFAULT '0', `uri` char(255) NOT NULL, `parent-uri` char(255) NOT NULL, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), + KEY `reply` (`reply`), KEY `uid` (`uid`), KEY `guid` (`guid`), - KEY `convid` (`convid`), - KEY `reply` (`reply`), - KEY `unknown` (`unknown`), + KEY `seen` (`seen`), KEY `uri` (`uri`), KEY `parent-uri` (`parent-uri`), - KEY `created` (`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; + KEY `created` (`created`), + KEY `convid` (`convid`), + KEY `unknown` (`unknown`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mailacct` +-- + +CREATE TABLE IF NOT EXISTS `mailacct` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `server` char(255) NOT NULL, + `port` int(11) NOT NULL, + `ssltype` char(16) NOT NULL, + `mailbox` char(255) NOT NULL, + `user` char(255) NOT NULL, + `pass` text NOT NULL, + `action` int(11) NOT NULL, + `movetofolder` char(255) NOT NULL, + `reply_to` char(255) NOT NULL, + `pubmail` tinyint(1) NOT NULL DEFAULT '0', + `last_check` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `manage` +-- + +CREATE TABLE IF NOT EXISTS `manage` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `mid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `mid` (`mid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `notify` +-- + +CREATE TABLE IF NOT EXISTS `notify` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `hash` char(64) NOT NULL, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `date` datetime NOT NULL, + `msg` mediumtext NOT NULL, + `uid` int(11) NOT NULL, + `link` char(255) NOT NULL, + `parent` int(11) NOT NULL, + `seen` tinyint(1) NOT NULL DEFAULT '0', + `type` int(11) NOT NULL, + `verb` char(255) NOT NULL, + `otype` char(16) NOT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`), + KEY `seen` (`seen`), + KEY `uid` (`uid`), + KEY `date` (`date`), + KEY `hash` (`hash`), + KEY `parent` (`parent`), + KEY `link` (`link`), + KEY `otype` (`otype`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `notify-threads` +-- + +CREATE TABLE IF NOT EXISTS `notify-threads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `notify-id` int(11) NOT NULL, + `master-parent-item` int(10) unsigned NOT NULL DEFAULT '0', + `parent-item` int(10) unsigned NOT NULL DEFAULT '0', + `receiver-uid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `master-parent-item` (`master-parent-item`), + KEY `receiver-uid` (`receiver-uid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `pconfig` +-- + +CREATE TABLE IF NOT EXISTS `pconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL DEFAULT '0', + `cat` char(255) CHARACTER SET ascii NOT NULL, + `k` char(255) CHARACTER SET ascii NOT NULL, + `v` mediumtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `access` (`uid`,`cat`,`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -317,8 +729,8 @@ CREATE TABLE IF NOT EXISTS `mail` ( CREATE TABLE IF NOT EXISTS `photo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, - `contact-id` int(10) unsigned NOT NULL, - `guid` char(64) NOT NULL, + `contact-id` int(10) unsigned NOT NULL DEFAULT '0', + `guid` char(64) NOT NULL, `resource-id` char(255) NOT NULL, `created` datetime NOT NULL, `edited` datetime NOT NULL, @@ -340,12 +752,49 @@ CREATE TABLE IF NOT EXISTS `photo` ( KEY `resource-id` (`resource-id`), KEY `album` (`album`), KEY `scale` (`scale`), - KEY `profile` (`profile`), - KEY `guid` (`guid`) + KEY `profile` (`profile`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- +-- +-- Table structure for table `poll` +-- + +CREATE TABLE IF NOT EXISTS `poll` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `q0` mediumtext NOT NULL, + `q1` mediumtext NOT NULL, + `q2` mediumtext NOT NULL, + `q3` mediumtext NOT NULL, + `q4` mediumtext NOT NULL, + `q5` mediumtext NOT NULL, + `q6` mediumtext NOT NULL, + `q7` mediumtext NOT NULL, + `q8` mediumtext NOT NULL, + `q9` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `poll_result` +-- + +CREATE TABLE IF NOT EXISTS `poll_result` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `poll_id` int(11) NOT NULL, + `choice` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `poll_id` (`poll_id`), + KEY `choice` (`choice`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Table structure for table `profile` -- @@ -366,7 +815,6 @@ CREATE TABLE IF NOT EXISTS `profile` ( `country-name` char(255) NOT NULL, `gender` char(32) NOT NULL, `marital` char(255) NOT NULL, - `showwith` tinyint(1) NOT NULL DEFAULT '0', `with` text NOT NULL, `sexual` char(255) NOT NULL, `politic` char(255) NOT NULL, @@ -403,7 +851,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( CREATE TABLE IF NOT EXISTS `profile_check` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, - `cid` int(10) unsigned NOT NULL, + `cid` int(10) unsigned NOT NULL DEFAULT '0', `dfrn_id` char(255) NOT NULL, `sec` char(255) NOT NULL, `expire` int(11) NOT NULL, @@ -412,6 +860,59 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( -- -------------------------------------------------------- +-- +-- Table structure for table `queue` +-- + +CREATE TABLE IF NOT EXISTS `queue` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cid` int(11) NOT NULL, + `network` char(32) NOT NULL, + `created` datetime NOT NULL, + `last` datetime NOT NULL, + `content` mediumtext NOT NULL, + `batch` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `network` (`network`), + KEY `created` (`created`), + KEY `last` (`last`), + KEY `batch` (`batch`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `register` +-- + +CREATE TABLE IF NOT EXISTS `register` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `hash` char(255) NOT NULL, + `created` datetime NOT NULL, + `uid` int(10) unsigned NOT NULL, + `password` char(255) NOT NULL, + `language` char(16) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `search` +-- + +CREATE TABLE IF NOT EXISTS `search` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `term` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `term` (`term`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Table structure for table `session` -- @@ -428,6 +929,58 @@ CREATE TABLE IF NOT EXISTS `session` ( -- -------------------------------------------------------- +-- +-- Table structure for table `sign` +-- + +CREATE TABLE IF NOT EXISTS `sign` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `iid` int(10) unsigned NOT NULL, + `signed_text` mediumtext NOT NULL, + `signature` text NOT NULL, + `signer` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `iid` (`iid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `spam` +-- + +CREATE TABLE IF NOT EXISTS `spam` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `spam` int(11) NOT NULL DEFAULT '0', + `ham` int(11) NOT NULL DEFAULT '0', + `term` char(255) NOT NULL, + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `spam` (`spam`), + KEY `ham` (`ham`), + KEY `term` (`term`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `tokens` +-- + +CREATE TABLE IF NOT EXISTS `tokens` ( + `id` varchar(40) NOT NULL, + `secret` text NOT NULL, + `client_id` varchar(20) NOT NULL, + `expires` int(11) NOT NULL, + `scope` varchar(200) NOT NULL, + `uid` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + -- -- Table structure for table `user` -- @@ -441,7 +994,7 @@ CREATE TABLE IF NOT EXISTS `user` ( `email` char(255) NOT NULL, `openid` char(255) NOT NULL, `timezone` char(128) NOT NULL, - `language` char(32) NOT NULL DEFAULT 'en', + `language` char(16) NOT NULL DEFAULT 'en', `register_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `login_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `default-location` char(255) NOT NULL, @@ -451,423 +1004,47 @@ CREATE TABLE IF NOT EXISTS `user` ( `prvkey` text NOT NULL, `spubkey` text NOT NULL, `sprvkey` text NOT NULL, - `verified` tinyint(1) unsigned NOT NULL DEFAULT '0', - `blocked` tinyint(1) unsigned NOT NULL DEFAULT '0', - `blockwall` tinyint(1) unsigned NOT NULL DEFAULT '0', - `hidewall` tinyint(1) unsigned NOT NULL DEFAULT '0', - `blocktags` tinyint(1) unsigned NOT NULL DEFAULT '0', - `unkmail` tinyint(1) unsigned NOT NULL DEFAULT '0', - `cntunkmail` int(11) unsigned NOT NULL DEFAULT '10', - `notify-flags` int(11) unsigned NOT NULL DEFAULT '65535', - `page-flags` int(11) unsigned NOT NULL DEFAULT '0', + `verified` tinyint(1) unsigned NOT NULL DEFAULT '0', + `blocked` tinyint(1) unsigned NOT NULL DEFAULT '0', + `blockwall` tinyint(1) NOT NULL DEFAULT '0', + `hidewall` tinyint(1) NOT NULL DEFAULT '0', + `blocktags` tinyint(1) NOT NULL DEFAULT '0', + `unkmail` tinyint(1) NOT NULL DEFAULT '0', + `cntunkmail` int(11) NOT NULL DEFAULT '10', + `notify-flags` int(11) unsigned NOT NULL DEFAULT '65535', + `page-flags` int(11) NOT NULL DEFAULT '0', `prvnets` tinyint(1) NOT NULL DEFAULT '0', `pwdreset` char(255) NOT NULL, `maxreq` int(11) NOT NULL DEFAULT '10', - `expire` int(11) unsigned NOT NULL DEFAULT '0', - `account_expired` tinyint( 1 ) NOT NULL DEFAULT '0', + `expire` int(10) unsigned NOT NULL DEFAULT '0', + `account_expired` tinyint(1) NOT NULL DEFAULT '0', `account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `allow_cid` mediumtext NOT NULL, + `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, - `deny_cid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, `deny_gid` mediumtext NOT NULL, `openidserver` text NOT NULL, - PRIMARY KEY (`uid`), + PRIMARY KEY (`uid`), KEY `nickname` (`nickname`), + KEY `login_date` (`login_date`), KEY `account_expired` (`account_expired`), KEY `hidewall` (`hidewall`), KEY `blockwall` (`blockwall`), - KEY `unkmail` (`unkmail`), - KEY `cntunkmail` (`cntunkmail`), KEY `blocked` (`blocked`), KEY `verified` (`verified`), - KEY `login_date` (`login_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `register` ( - `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `hash` CHAR( 255 ) NOT NULL , - `created` DATETIME NOT NULL , - `uid` INT(11) UNSIGNED NOT NULL, - `password` CHAR(255) NOT NULL, - `language` CHAR(16) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `clients` ( -`client_id` VARCHAR( 20 ) NOT NULL , -`pw` VARCHAR( 20 ) NOT NULL , -`redirect_uri` VARCHAR( 200 ) NOT NULL , -`name` VARCHAR( 128 ) NULL DEFAULT NULL, -`icon` VARCHAR( 255 ) NULL DEFAULT NULL, -`uid` INT NOT NULL DEFAULT 0, -PRIMARY KEY ( `client_id` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `tokens` ( -`id` VARCHAR( 40 ) NOT NULL , -`secret` VARCHAR( 40 ) NOT NULL , -`client_id` VARCHAR( 20 ) NOT NULL , -`expires` INT NOT NULL , -`scope` VARCHAR( 200 ) NOT NULL , -`uid` INT NOT NULL , -PRIMARY KEY ( `id` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `auth_codes` ( -`id` VARCHAR( 40 ) NOT NULL , -`client_id` VARCHAR( 20 ) NOT NULL , -`redirect_uri` VARCHAR( 200 ) NOT NULL , -`expires` INT NOT NULL , -`scope` VARCHAR( 250 ) NOT NULL , -PRIMARY KEY ( `id` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `queue` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`cid` INT NOT NULL , -`network` CHAR( 32 ) NOT NULL, -`created` DATETIME NOT NULL , -`last` DATETIME NOT NULL , -`content` MEDIUMTEXT NOT NULL, -`batch` TINYINT( 1 ) NOT NULL DEFAULT '0', -INDEX ( `cid` ), -INDEX ( `created` ), -INDEX ( `last` ), -INDEX ( `network` ), -INDEX ( `batch` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `pconfig` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL DEFAULT '0', -`cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL , -`k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL , -`v` MEDIUMTEXT NOT NULL, -UNIQUE KEY `access`(`cat`, `k`) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `hook` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`hook` CHAR( 255 ) NOT NULL , -`file` CHAR( 255 ) NOT NULL , -`function` CHAR( 255 ) NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `addon` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`name` CHAR( 255 ) NOT NULL , -`version` CHAR( 255 ) NOT NULL , -`installed` TINYINT( 1 ) NOT NULL DEFAULT '0' , -`timestamp` BIGINT NOT NULL DEFAULT '0' , -`plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0' -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `event` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`cid` INT NOT NULL , -`uri` CHAR( 255 ) NOT NULL, -`created` DATETIME NOT NULL , -`edited` DATETIME NOT NULL , -`start` DATETIME NOT NULL , -`finish` DATETIME NOT NULL , -`desc` TEXT NOT NULL , -`location` TEXT NOT NULL , -`type` CHAR( 255 ) NOT NULL , -`nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0', -`adjust` TINYINT( 1 ) NOT NULL DEFAULT '1', -`allow_cid` MEDIUMTEXT NOT NULL , -`allow_gid` MEDIUMTEXT NOT NULL , -`deny_cid` MEDIUMTEXT NOT NULL , -`deny_gid` MEDIUMTEXT NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `cache` ( - `k` CHAR( 255 ) NOT NULL PRIMARY KEY , - `v` TEXT NOT NULL, - `updated` DATETIME NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `fcontact` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`url` CHAR( 255 ) NOT NULL , -`name` CHAR( 255 ) NOT NULL , -`photo` CHAR( 255 ) NOT NULL , -`request` CHAR( 255 ) NOT NULL, -`nick` CHAR( 255 ) NOT NULL , -`addr` CHAR( 255 ) NOT NULL , -`batch` CHAR( 255) NOT NULL, -`notify` CHAR( 255 ) NOT NULL , -`poll` CHAR( 255 ) NOT NULL , -`confirm` CHAR( 255 ) NOT NULL , -`priority` TINYINT( 1 ) NOT NULL , -`network` CHAR( 32 ) NOT NULL , -`alias` CHAR( 255 ) NOT NULL , -`pubkey` TEXT NOT NULL , -`updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', -INDEX ( `addr` ), -INDEX ( `network` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `ffinder` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT UNSIGNED NOT NULL , -`cid` INT UNSIGNED NOT NULL , -`fid` INT UNSIGNED NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `fsuggest` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`cid` INT NOT NULL , -`name` CHAR( 255 ) NOT NULL , -`url` CHAR( 255 ) NOT NULL , -`request` CHAR( 255 ) NOT NULL, -`photo` CHAR( 255 ) NOT NULL , -`note` TEXT NOT NULL , -`created` DATETIME NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `mailacct` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL, -`server` CHAR( 255 ) NOT NULL , -`port` INT NOT NULL, -`ssltype` CHAR( 16 ) NOT NULL, -`mailbox` CHAR( 255 ) NOT NULL, -`user` CHAR( 255 ) NOT NULL , -`pass` TEXT NOT NULL , -`reply_to` CHAR( 255 ) NOT NULL , -`action` INT NOT NULL , -`movetofolder` CHAR(255) NOT NULL , -`pubmail` TINYINT(1) NOT NULL DEFAULT '0', -`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `attach` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`hash` CHAR(64) NOT NULL, -`filename` CHAR(255) NOT NULL, -`filetype` CHAR( 64 ) NOT NULL , -`filesize` INT NOT NULL , -`data` LONGBLOB NOT NULL , -`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', -`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', -`allow_cid` MEDIUMTEXT NOT NULL , -`allow_gid` MEDIUMTEXT NOT NULL , -`deny_cid` MEDIUMTEXT NOT NULL , -`deny_gid` MEDIUMTEXT NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `guid` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`guid` CHAR( 64 ) NOT NULL , -INDEX ( `guid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `sign` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`iid` INT UNSIGNED NOT NULL , -`signed_text` MEDIUMTEXT NOT NULL , -`signature` TEXT NOT NULL , -`signer` CHAR( 255 ) NOT NULL , -INDEX ( `iid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `deliverq` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`cmd` CHAR( 32 ) NOT NULL , -`item` INT NOT NULL , -`contact` INT NOT NULL -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `search` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`term` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, -INDEX ( `uid` ), -INDEX ( `term` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `fserver` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`server` CHAR( 255 ) NOT NULL , -`posturl` CHAR( 255 ) NOT NULL , -`key` TEXT NOT NULL, -INDEX ( `server` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `gcontact` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`name` CHAR( 255 ) NOT NULL , -`url` CHAR( 255 ) NOT NULL , -`nurl` CHAR( 255 ) NOT NULL , -`photo` CHAR( 255 ) NOT NULL, -`connect` CHAR( 255 ) NOT NULL, -INDEX ( `nurl` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `glink` ( -`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`cid` INT NOT NULL , -`uid` INT NOT NULL , -`gcid` INT NOT NULL, -`updated` DATETIME NOT NULL, -INDEX ( `cid` ), -INDEX ( `uid` ), -INDEX ( `gcid` ), -INDEX ( `updated` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `gcign` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`gcid` INT NOT NULL, -INDEX ( `uid` ), -INDEX ( `gcid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `conv` ( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , - `guid` CHAR( 64 ) NOT NULL , - `recips` MEDIUMTEXT NOT NULL , - `uid` INT NOT NULL, - `creator` CHAR( 255 ) NOT NULL , - `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', - `updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', - `subject` MEDIUMTEXT NOT NULL, - INDEX ( `created` ), - INDEX ( `updated` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `notify` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`hash` CHAR( 64 ) NOT NULL, -`type` INT( 11 ) NOT NULL , -`name` CHAR( 255 ) NOT NULL , -`url` CHAR( 255 ) NOT NULL , -`photo` CHAR( 255 ) NOT NULL , -`date` DATETIME NOT NULL , -`msg` MEDIUMTEXT NOT NULL , -`uid` INT NOT NULL , -`link` CHAR( 255 ) NOT NULL , -`parent` INT( 11 ) NOT NULL, -`seen` TINYINT( 1 ) NOT NULL DEFAULT '0', -`verb` CHAR( 255 ) NOT NULL, -`otype` CHAR( 16 ) NOT NULL, -INDEX ( `hash` ), -INDEX ( `type` ), -INDEX ( `uid` ), -INDEX ( `link` ), -INDEX ( `parent` ), -INDEX ( `seen` ), -INDEX ( `date` ), -INDEX ( `otype` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `item_id` ( -`iid` INT NOT NULL , -`uid` INT NOT NULL , -`sid` CHAR ( 255 ) NOT NULL, -`service` char ( 255 ) NOT NULL, -PRIMARY KEY ( `iid` ), -INDEX ( `uid` ), -INDEX ( `sid` ), -INDEX ( `service` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `manage` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`mid` INT NOT NULL, -INDEX ( `uid` ), -INDEX ( `mid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `poll_result` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`poll_id` INT NOT NULL , -`choice` INT NOT NULL , -INDEX ( `poll_id` ), -INDEX ( `choice` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - - -CREATE TABLE IF NOT EXISTS `poll` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL , -`q0` MEDIUMTEXT NOT NULL , -`q1` MEDIUMTEXT NOT NULL , -`q2` MEDIUMTEXT NOT NULL , -`q3` MEDIUMTEXT NOT NULL , -`q4` MEDIUMTEXT NOT NULL , -`q5` MEDIUMTEXT NOT NULL , -`q6` MEDIUMTEXT NOT NULL , -`q7` MEDIUMTEXT NOT NULL , -`q8` MEDIUMTEXT NOT NULL , -`q9` MEDIUMTEXT NOT NULL , -INDEX ( `uid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; + KEY `unkmail` (`unkmail`), + KEY `cntunkmail` (`cntunkmail`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +-- -------------------------------------------------------- -- --- Table structure for table `notify-threads` +-- Table structure for table `userd` -- --- notify-id: notify.id of the first notification of this thread --- master-parent-item: item.id of the parent item --- parent-item: item.id of the imediate parent (only for multi-thread) --- not used yet. --- receiver-uid: user.uid of the receiver of this notification. --- --- If we query for a master-parent-item and receiver-uid... --- * Returns 1 item: this is not the parent notification, --- so just "follow" the thread (references to this notification) --- * Returns no item: this is the first notification related to --- this parent item. So, create the record and use the message-id --- header. - - -CREATE TABLE IF NOT EXISTS `notify-threads` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`notify-id` INT NOT NULL, -`master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0', -`parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0', -`receiver-uid` INT NOT NULL, -INDEX ( `master-parent-item` ), -INDEX ( `receiver-uid` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `spam` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`uid` INT NOT NULL, -`spam` INT NOT NULL DEFAULT '0', -`ham` INT NOT NULL DEFAULT '0', -`term` CHAR(255) NOT NULL, -`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', -INDEX ( `uid` ), -INDEX ( `spam` ), -INDEX ( `ham` ), -INDEX ( `term` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - CREATE TABLE IF NOT EXISTS `userd` ( -`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , -`username` CHAR( 255 ) NOT NULL, -INDEX ( `username` ) -) ENGINE = MyISAM DEFAULT CHARSET=utf8; - + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` char(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/include/dba.php b/include/dba.php old mode 100644 new mode 100755 index 1421a703dc..76cc0bc7b9 --- a/include/dba.php +++ b/include/dba.php @@ -8,273 +8,189 @@ require_once('include/datetime.php'); * * For debugging, insert 'dbg(1);' anywhere in the program flow. * dbg(0); will turn it off. Logging is performed at LOGGER_DATA level. - * When logging, all binary info is converted to - * text and html entities are escaped so that - * the debugging stream is safe to view - * within both terminals and web pages. + * When logging, all binary info is converted to text and html entities are escaped so that + * the debugging stream is safe to view within both terminals and web pages. * */ + +if(! class_exists('dba')) { +class dba { -if(! class_exists('dba')) { + private $debug = 0; + private $db; + public $mysqli = true; + public $connected = false; + public $error = false; - class dba { + function __construct($server,$user,$pass,$db,$install = false) { - private $debug = 0; - private $db; - private $exceptions; - - public $mysqli = true; - public $connected = false; - public $error = false; + $server = trim($server); + $user = trim($user); + $pass = trim($pass); + $db = trim($db); - function __construct($server,$user,$pass,$db,$install = false) { - - $server = trim($server); - $user = trim($user); - $pass = trim($pass); - $db = trim($db); - - //we need both, server and username, so fail if one is missing - if (!(strlen($server) && strlen($user))){ - $this->connected = false; - $this->db = null; - throw new InvalidArgumentException(t("Server name of user name are missing. ")); - } - - //when we are installing - if($install) { - if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { - $this->connected = false; - $this->db = null; - throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server); - } - } - } - - if(class_exists('mysqli')) { - $this->db = new mysqli($server,$user,$pass,$db); - if(NULL === $this->db->connect_error) { - $this->connected = true; - } else { - throw new RuntimeException($this->db->connect_error); - } - } else { - $this->mysqli = false; - $this->db = mysql_connect($server,$user,$pass); - if($this->db && mysql_select_db($db,$this->db)) { - $this->connected = true; - } else { - throw new RuntimeException(mysql_error()); - } - } - } - - public function excep($excep) { - $this->exceptions=$excep; + if (!(strlen($server) && strlen($user))){ + $this->connected = false; + $this->db = null; + return; } - public function getdb() { - return $this->db; - } - - public function q($sql) { - - if((! $this->db) || (! $this->connected)) { - $this->throwOrLog(new RuntimeException(t("There is no db connection. "))); - return; - } - - if($this->mysqli) { - $result = $this->db->query($sql); - } else { - $result = mysql_query($sql,$this->db); - } - - //on debug mode or fail, the query is written to the log. - //this won't work if logger can not read it's logging level - //from the db. - if($this->debug || FALSE === $result) { - - $mesg = ''; - - if($result === false) { - $mesg = 'false '.$this->error(); - } elseif($result === true) { - $mesg = 'true'; - } else { - if($this->mysqli) { - $mesg = $result->num_rows . t(' results') . EOL; - } else { - $mesg = mysql_num_rows($result) . t(' results') . EOL; - } - } - - $str = 'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL; - - - // If dbfail.out exists, we will write any failed calls directly to it, - // regardless of any logging that may or may nor be in effect. - // These usually indicate SQL syntax errors that need to be resolved. - if(file_exists('dbfail.out')) { - file_put_contents('dbfail.out', datetime_convert() . "\n" . $str . "\n", FILE_APPEND); - } - logger('dba: ' . $str ); - if(FALSE===$result) { - $this->throwOrLog(new RuntimeException('dba: ' . $str)); - return; - } - } - - - if($result === true) { - return $result; - } - - $r = array(); - if($this->mysqli) { - if($result->num_rows) { - while($x = $result->fetch_array(MYSQLI_ASSOC)) { - $r[] = $x; - } - $result->free_result(); - } - } else { - if(mysql_num_rows($result)) { - while($x = mysql_fetch_array($result, MYSQL_ASSOC)) { - $r[] = $x; - } - mysql_free_result($result); - } - } - - - if($this->debug) { - logger('dba: ' . printable(print_r($r, true))); - } - return($r); - } - - private function error() { - if($this->mysqli) { - return $this->db->error; - } else { - return mysql_error($this->db); - } - } - - private function throwOrLog(Exception $ex) { - if($this->exceptions) { - throw $ex; - } else { - logger('dba: '.$ex->getMessage()); - } - } - - /** - * starts a transaction. Transactions need to be finished with - * commit() or rollback(). Please mind that the db table engine may - * not support this. - */ - public function beginTransaction() { - if($this->mysqli) { - return $this->db->autocommit(false); - } else { - //no transaction support in mysql module... - mysql_query('SET AUTOCOMMIT = 0;', $db); - } - } - - /** - * rollback a transaction. So, rollback anything that was done since the last call - * to beginTransaction(). - */ - public function rollback() { - if($this->mysqli) { - return $this->db->rollback(); - } else { - //no transaction support in mysql module... - mysql_query('ROLLBACK;', $db); - } - $this->stopTransaction(); - } - - /** - * commit a transaction. So, write any query to the database. - */ - public function commit() { - if($this->mysqli) { - return $this->db->commit(); - } else { - //no transaction support in mysql module... - mysql_query('COMMIT;', $db); - } - $this->stopTransaction(); - } - - private function stopTransaction() { - if($this->mysqli) { - return $this->db->autocommit(true); - } else { - //no transaction support in mysql module... - mysql_query('SET AUTOCOMMIT = 1;', $db); - } - } - - public function dbg($dbg) { - $this->debug = $dbg; - } - - public function escape($str) { - if($this->db && $this->connected) { - if($this->mysqli) { - return $this->db->real_escape_string($str); - } else { - return mysql_real_escape_string($str,$this->db); + if($install) { + if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { + if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { + $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); + $this->connected = false; + $this->db = null; + return; } } } - function __destruct() { - if ($this->db) { - if($this->mysqli) { - $this->db->close(); - } - } else { - mysql_close($this->db); + if(class_exists('mysqli')) { + $this->db = @new mysqli($server,$user,$pass,$db); + if(! mysqli_connect_errno()) { + $this->connected = true; } } + else { + $this->mysqli = false; + $this->db = mysql_connect($server,$user,$pass); + if($this->db && mysql_select_db($db,$this->db)) { + $this->connected = true; + } + } + if(! $this->connected) { + $this->db = null; + if(! $install) + system_unavailable(); + } } -} + + public function getdb() { + return $this->db; + } + + public function q($sql) { + + if((! $this->db) || (! $this->connected)) + return false; + + if($this->mysqli) + $result = @$this->db->query($sql); + else + $result = @mysql_query($sql,$this->db); + + if($this->debug) { + + $mesg = ''; + + if($this->mysqli) { + if($this->db->errno) + logger('dba: ' . $this->db->error); + } + elseif(mysql_errno($this->db)) + logger('dba: ' . mysql_error($this->db)); + + if($result === false) + $mesg = 'false'; + elseif($result === true) + $mesg = 'true'; + else { + if($this->mysqli) + $mesg = $result->num_rows . ' results' . EOL; + else + $mesg = mysql_num_rows($result) . ' results' . EOL; + } + + $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL; + + logger('dba: ' . $str ); + } + + /** + * If dbfail.out exists, we will write any failed calls directly to it, + * regardless of any logging that may or may nor be in effect. + * These usually indicate SQL syntax errors that need to be resolved. + */ + + if($result === false) { + logger('dba: ' . printable($sql) . ' returned false.'); + if(file_exists('dbfail.out')) + file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND); + } + + if(($result === true) || ($result === false)) + return $result; + + $r = array(); + if($this->mysqli) { + if($result->num_rows) { + while($x = $result->fetch_array(MYSQLI_ASSOC)) + $r[] = $x; + $result->free_result(); + } + } + else { + if(mysql_num_rows($result)) { + while($x = mysql_fetch_array($result, MYSQL_ASSOC)) + $r[] = $x; + mysql_free_result($result); + } + } + + + if($this->debug) + logger('dba: ' . printable(print_r($r, true))); + return($r); + } + + public function dbg($dbg) { + $this->debug = $dbg; + } + + public function escape($str) { + if($this->db && $this->connected) { + if($this->mysqli) + return @$this->db->real_escape_string($str); + else + return @mysql_real_escape_string($str,$this->db); + } + } + + function __destruct() { + if ($this->db) + if($this->mysqli) + $this->db->close(); + else + mysql_close($this->db); + } +}} if(! function_exists('printable')) { - function printable($s) { - $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); - $s = str_replace("\x00",'.',$s); - if(x($_SERVER,'SERVER_NAME')) - $s = escape_tags($s); - return $s; - } -} +function printable($s) { + $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); + $s = str_replace("\x00",'.',$s); + if(x($_SERVER,'SERVER_NAME')) + $s = escape_tags($s); + return $s; +}} // Procedural functions -if(! function_exists('dbg')) { - function dbg($state) { - global $db; - if($db) - $db->dbg($state); - } -} +if(! function_exists('dbg')) { +function dbg($state) { + global $db; + if($db) + $db->dbg($state); +}} -if(! function_exists('dbesc')) { - function dbesc($str) { - global $db; - if($db && $db->connected) - return($db->escape($str)); - else - return(str_replace("'","\\'",$str)); - } -} +if(! function_exists('dbesc')) { +function dbesc($str) { + global $db; + if($db && $db->connected) + return($db->escape($str)); + else + return(str_replace("'","\\'",$str)); +}} @@ -283,31 +199,30 @@ if(! function_exists('dbesc')) { // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", // 'user', 1); -if(! function_exists('q')) { - function q($sql) { +if(! function_exists('q')) { +function q($sql) { - global $db; - $args = func_get_args(); - unset($args[0]); - - if($db && $db->connected) { - $stmt = vsprintf($sql,$args); - if($stmt === false) - logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true)); - return $db->q($stmt); - } - - /** - * - * This will happen occasionally trying to store the - * session data after abnormal program termination - * - */ - logger('dba: no database: ' . print_r($args,true)); - return false; + global $db; + $args = func_get_args(); + unset($args[0]); + if($db && $db->connected) { + $stmt = vsprintf($sql,$args); + if($stmt === false) + logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true)); + return $db->q($stmt); } -} + + /** + * + * This will happen occasionally trying to store the + * session data after abnormal program termination + * + */ + logger('dba: no database: ' . print_r($args,true)); + return false; + +}} /** * @@ -315,39 +230,36 @@ if(! function_exists('q')) { * */ -if(! function_exists('dbq')) { - function dbq($sql) { +if(! function_exists('dbq')) { +function dbq($sql) { - global $db; - if($db && $db->connected) - $ret = $db->q($sql); - else - $ret = false; - return $ret; - } -} + global $db; + if($db && $db->connected) + $ret = $db->q($sql); + else + $ret = false; + return $ret; +}} -// Caller is responsible for ensuring that any integer arguments to +// Caller is responsible for ensuring that any integer arguments to // dbesc_array are actually integers and not malformed strings containing -// SQL injection vectors. All integer array elements should be specifically -// cast to int to avoid trouble. +// SQL injection vectors. All integer array elements should be specifically +// cast to int to avoid trouble. if(! function_exists('dbesc_array_cb')) { - function dbesc_array_cb(&$item, $key) { - if(is_string($item)) - $item = dbesc($item); - } -} +function dbesc_array_cb(&$item, $key) { + if(is_string($item)) + $item = dbesc($item); +}} if(! function_exists('dbesc_array')) { - function dbesc_array(&$arr) { - if(is_array($arr) && count($arr)) { - array_walk($arr,'dbesc_array_cb'); - } +function dbesc_array(&$arr) { + if(is_array($arr) && count($arr)) { + array_walk($arr,'dbesc_array_cb'); } -} +}} diff --git a/mod/install.php b/mod/install.php index d1142248a3..2eb98ee916 100644 --- a/mod/install.php +++ b/mod/install.php @@ -451,7 +451,7 @@ function load_database_rem($v, $i){ function load_database($db) { $str = file_get_contents('database.sql'); - $str = array_reduce(explode("\n", $str),"load_database_rem",""); +// $str = array_reduce(explode("\n", $str),"load_database_rem",""); $arr = explode(';',$str); $errors = false; foreach($arr as $a) {