From 7aaa3f9a29c280f01c677c918932620be45cdbd7 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 8 Nov 2018 21:38:27 +0300 Subject: Merge everything into single Spring Boot application --- src/main/resources/1x1.png | Bin 0 -> 95 bytes src/main/resources/Transparent.gif | Bin 0 -> 42 bytes .../db/migration/V1.10__favorites_user_uri.sql | 3 + .../V1.11__increase pm timestamp precision.sql | 1 + .../db/migration/V1.12__drop unused tables.sql | 5 + .../db/migration/V1.13__drop unused tables.sql | 5 + .../db/migration/V1.14__drop broken pm_streams.sql | 1 + ..._drop unused columns add ts for some tables.sql | 4 + .../resources/db/migration/V1.16__last seen.sql | 2 + .../db/migration/V1.1__Add updated_at field.sql | 2 + .../db/migration/V1.2__Drop telegram_chats.sql | 2 + ...V1.3__Nullable user_id column in auth table.sql | 1 + .../db/migration/V1.4__ActivityPub followers.sql | 7 + .../db/migration/V1.5__Drop acct index.sql | 6 + src/main/resources/db/migration/V1.6__user_uri.sql | 1 + .../resources/db/migration/V1.7__reply_uri.sql | 1 + .../resources/db/migration/V1.8__html reply.sql | 1 + .../db/migration/V1.9__reply_uri_index.sql | 1 + src/main/resources/errors.properties | 3 + src/main/resources/errors_ru.properties | 3 + src/main/resources/help | 1 + src/main/resources/juick.png | Bin 0 -> 4298 bytes src/main/resources/juick.sql | 947 ++++++++++++ src/main/resources/messages.properties | 80 + src/main/resources/messages_ru.properties | 78 + src/main/resources/pg_schema_wip | 1539 ++++++++++++++++++++ src/main/resources/rome.properties | 2 + src/main/resources/schema.sql | 396 +++++ src/main/resources/static/favicon.png | Bin 0 -> 244 bytes src/main/resources/static/logo.png | Bin 0 -> 1184 bytes src/main/resources/static/tagscloud.png | Bin 0 -> 42316 bytes src/main/resources/templates/layouts/content.html | 38 + src/main/resources/templates/layouts/default.html | 16 + src/main/resources/templates/layouts/minimal.html | 10 + src/main/resources/templates/layouts/note.html | 5 + src/main/resources/templates/views/404.html | 11 + src/main/resources/templates/views/blog.html | 24 + src/main/resources/templates/views/blog_tags.html | 10 + src/main/resources/templates/views/help.html | 10 + src/main/resources/templates/views/index.html | 29 + src/main/resources/templates/views/login.html | 144 ++ .../resources/templates/views/login_success.html | 13 + .../resources/templates/views/macros/tags.html | 11 + .../resources/templates/views/partial/footer.html | 16 + .../templates/views/partial/homecolumn.html | 25 + .../resources/templates/views/partial/message.html | 76 + .../templates/views/partial/navigation.html | 36 + .../templates/views/partial/settings_tabs.html | 6 + .../templates/views/partial/tagcolumn.html | 33 + .../resources/templates/views/partial/tags.html | 3 + .../templates/views/partial/usercolumn.html | 89 ++ .../templates/views/partial/usertags.html | 3 + src/main/resources/templates/views/pm_inbox.html | 35 + src/main/resources/templates/views/pm_sent.html | 33 + src/main/resources/templates/views/post.html | 19 + .../resources/templates/views/post_success.html | 19 + .../resources/templates/views/settings_about.html | 20 + .../templates/views/settings_auth-email.html | 9 + .../resources/templates/views/settings_main.html | 151 ++ .../templates/views/settings_password.html | 17 + .../templates/views/settings_privacy.html | 9 + .../resources/templates/views/settings_result.html | 9 + src/main/resources/templates/views/signup.html | 43 + src/main/resources/templates/views/thread.html | 175 +++ src/main/resources/templates/views/users.html | 17 + 65 files changed, 4256 insertions(+) create mode 100644 src/main/resources/1x1.png create mode 100644 src/main/resources/Transparent.gif create mode 100644 src/main/resources/db/migration/V1.10__favorites_user_uri.sql create mode 100644 src/main/resources/db/migration/V1.11__increase pm timestamp precision.sql create mode 100644 src/main/resources/db/migration/V1.12__drop unused tables.sql create mode 100644 src/main/resources/db/migration/V1.13__drop unused tables.sql create mode 100644 src/main/resources/db/migration/V1.14__drop broken pm_streams.sql create mode 100644 src/main/resources/db/migration/V1.15__drop unused columns add ts for some tables.sql create mode 100644 src/main/resources/db/migration/V1.16__last seen.sql create mode 100644 src/main/resources/db/migration/V1.1__Add updated_at field.sql create mode 100644 src/main/resources/db/migration/V1.2__Drop telegram_chats.sql create mode 100644 src/main/resources/db/migration/V1.3__Nullable user_id column in auth table.sql create mode 100644 src/main/resources/db/migration/V1.4__ActivityPub followers.sql create mode 100644 src/main/resources/db/migration/V1.5__Drop acct index.sql create mode 100644 src/main/resources/db/migration/V1.6__user_uri.sql create mode 100644 src/main/resources/db/migration/V1.7__reply_uri.sql create mode 100644 src/main/resources/db/migration/V1.8__html reply.sql create mode 100644 src/main/resources/db/migration/V1.9__reply_uri_index.sql create mode 100644 src/main/resources/errors.properties create mode 100644 src/main/resources/errors_ru.properties create mode 160000 src/main/resources/help create mode 100644 src/main/resources/juick.png create mode 100644 src/main/resources/juick.sql create mode 100644 src/main/resources/messages.properties create mode 100644 src/main/resources/messages_ru.properties create mode 100644 src/main/resources/pg_schema_wip create mode 100644 src/main/resources/rome.properties create mode 100644 src/main/resources/schema.sql create mode 100644 src/main/resources/static/favicon.png create mode 100644 src/main/resources/static/logo.png create mode 100644 src/main/resources/static/tagscloud.png create mode 100644 src/main/resources/templates/layouts/content.html create mode 100644 src/main/resources/templates/layouts/default.html create mode 100644 src/main/resources/templates/layouts/minimal.html create mode 100644 src/main/resources/templates/layouts/note.html create mode 100644 src/main/resources/templates/views/404.html create mode 100644 src/main/resources/templates/views/blog.html create mode 100644 src/main/resources/templates/views/blog_tags.html create mode 100644 src/main/resources/templates/views/help.html create mode 100644 src/main/resources/templates/views/index.html create mode 100644 src/main/resources/templates/views/login.html create mode 100644 src/main/resources/templates/views/login_success.html create mode 100644 src/main/resources/templates/views/macros/tags.html create mode 100644 src/main/resources/templates/views/partial/footer.html create mode 100644 src/main/resources/templates/views/partial/homecolumn.html create mode 100644 src/main/resources/templates/views/partial/message.html create mode 100644 src/main/resources/templates/views/partial/navigation.html create mode 100644 src/main/resources/templates/views/partial/settings_tabs.html create mode 100644 src/main/resources/templates/views/partial/tagcolumn.html create mode 100644 src/main/resources/templates/views/partial/tags.html create mode 100644 src/main/resources/templates/views/partial/usercolumn.html create mode 100644 src/main/resources/templates/views/partial/usertags.html create mode 100644 src/main/resources/templates/views/pm_inbox.html create mode 100644 src/main/resources/templates/views/pm_sent.html create mode 100644 src/main/resources/templates/views/post.html create mode 100644 src/main/resources/templates/views/post_success.html create mode 100644 src/main/resources/templates/views/settings_about.html create mode 100644 src/main/resources/templates/views/settings_auth-email.html create mode 100644 src/main/resources/templates/views/settings_main.html create mode 100644 src/main/resources/templates/views/settings_password.html create mode 100644 src/main/resources/templates/views/settings_privacy.html create mode 100644 src/main/resources/templates/views/settings_result.html create mode 100644 src/main/resources/templates/views/signup.html create mode 100644 src/main/resources/templates/views/thread.html create mode 100644 src/main/resources/templates/views/users.html (limited to 'src/main/resources') diff --git a/src/main/resources/1x1.png b/src/main/resources/1x1.png new file mode 100644 index 00000000..1914264c Binary files /dev/null and b/src/main/resources/1x1.png differ diff --git a/src/main/resources/Transparent.gif b/src/main/resources/Transparent.gif new file mode 100644 index 00000000..f191b280 Binary files /dev/null and b/src/main/resources/Transparent.gif differ diff --git a/src/main/resources/db/migration/V1.10__favorites_user_uri.sql b/src/main/resources/db/migration/V1.10__favorites_user_uri.sql new file mode 100644 index 00000000..8f382398 --- /dev/null +++ b/src/main/resources/db/migration/V1.10__favorites_user_uri.sql @@ -0,0 +1,3 @@ +ALTER TABLE favorites ADD COLUMN user_uri char(255) DEFAULT NULL; +UPDATE favorites SET user_uri='' WHERE user_uri IS NULL; +ALTER TABLE favorites MODIFY COLUMN user_uri char(255) NOT NULL DEFAULT ''; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.11__increase pm timestamp precision.sql b/src/main/resources/db/migration/V1.11__increase pm timestamp precision.sql new file mode 100644 index 00000000..e83eb621 --- /dev/null +++ b/src/main/resources/db/migration/V1.11__increase pm timestamp precision.sql @@ -0,0 +1 @@ +ALTER TABLE pm MODIFY COLUMN ts timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.12__drop unused tables.sql b/src/main/resources/db/migration/V1.12__drop unused tables.sql new file mode 100644 index 00000000..1599f5f6 --- /dev/null +++ b/src/main/resources/db/migration/V1.12__drop unused tables.sql @@ -0,0 +1,5 @@ +DROP TABLE IF EXISTS messages_votes; +DROP TABLE IF EXISTS reader_links; +DROP TABLE IF EXISTS reader_rss; +DROP TABLE IF EXISTS captcha; +DROP TABLE IF EXISTS captchaimg; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.13__drop unused tables.sql b/src/main/resources/db/migration/V1.13__drop unused tables.sql new file mode 100644 index 00000000..c35fc92c --- /dev/null +++ b/src/main/resources/db/migration/V1.13__drop unused tables.sql @@ -0,0 +1,5 @@ +DROP TABLE IF EXISTS ads_messages; +DROP TABLE IF EXISTS ads_messages_log; +DROP TABLE IF EXISTS presence; +DROP TABLE IF EXISTS friends_facebook; +DROP TABLE IF EXISTS users_refs; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.14__drop broken pm_streams.sql b/src/main/resources/db/migration/V1.14__drop broken pm_streams.sql new file mode 100644 index 00000000..448c5ce2 --- /dev/null +++ b/src/main/resources/db/migration/V1.14__drop broken pm_streams.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS pm_streams; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.15__drop unused columns add ts for some tables.sql b/src/main/resources/db/migration/V1.15__drop unused columns add ts for some tables.sql new file mode 100644 index 00000000..6b3ab388 --- /dev/null +++ b/src/main/resources/db/migration/V1.15__drop unused columns add ts for some tables.sql @@ -0,0 +1,4 @@ +ALTER TABLE subscr_users DROP COLUMN `jid`; +ALTER TABLE subscr_users DROP COLUMN `active`; +ALTER TABLE auth ADD COLUMN ts timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE mail ADD COLUMN ts timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.16__last seen.sql b/src/main/resources/db/migration/V1.16__last seen.sql new file mode 100644 index 00000000..52ca4e90 --- /dev/null +++ b/src/main/resources/db/migration/V1.16__last seen.sql @@ -0,0 +1,2 @@ +ALTER TABLE users ADD COLUMN last_seen timestamp(6) NULL; +UPDATE users SET last_seen=lastmessage; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.1__Add updated_at field.sql b/src/main/resources/db/migration/V1.1__Add updated_at field.sql new file mode 100644 index 00000000..dac179b1 --- /dev/null +++ b/src/main/resources/db/migration/V1.1__Add updated_at field.sql @@ -0,0 +1,2 @@ +ALTER TABLE messages_txt ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE replies ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP; diff --git a/src/main/resources/db/migration/V1.2__Drop telegram_chats.sql b/src/main/resources/db/migration/V1.2__Drop telegram_chats.sql new file mode 100644 index 00000000..c8faee0d --- /dev/null +++ b/src/main/resources/db/migration/V1.2__Drop telegram_chats.sql @@ -0,0 +1,2 @@ +INSERT INTO telegram(tg_id, tg_name, loginhash) SELECT chat_id AS tg_id, 'Anonymous', UUID() FROM telegram_chats; +DROP TABLE telegram_chats; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.3__Nullable user_id column in auth table.sql b/src/main/resources/db/migration/V1.3__Nullable user_id column in auth table.sql new file mode 100644 index 00000000..ced85ade --- /dev/null +++ b/src/main/resources/db/migration/V1.3__Nullable user_id column in auth table.sql @@ -0,0 +1 @@ +ALTER TABLE auth MODIFY COLUMN user_id int(10) unsigned NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.4__ActivityPub followers.sql b/src/main/resources/db/migration/V1.4__ActivityPub followers.sql new file mode 100644 index 00000000..16b39f62 --- /dev/null +++ b/src/main/resources/db/migration/V1.4__ActivityPub followers.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS `followers` ( + `user_id` int(10) unsigned DEFAULT NULL, + `acct` char(64) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `acct` (`acct`), + foreign key (user_id) references users(id) +); \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.5__Drop acct index.sql b/src/main/resources/db/migration/V1.5__Drop acct index.sql new file mode 100644 index 00000000..58757d88 --- /dev/null +++ b/src/main/resources/db/migration/V1.5__Drop acct index.sql @@ -0,0 +1,6 @@ +ALTER TABLE followers ADD COLUMN `acct_migr` char(64) NOT NULL; +UPDATE followers SET `acct_migr` = `acct`; +ALTER TABLE followers DROP COLUMN `acct`; +ALTER TABLE followers ADD COLUMN `acct` char(64) NOT NULL; +UPDATE followers SET `acct` = `acct_migr`; +ALTER TABLE followers DROP COLUMN `acct_migr`; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.6__user_uri.sql b/src/main/resources/db/migration/V1.6__user_uri.sql new file mode 100644 index 00000000..c302907c --- /dev/null +++ b/src/main/resources/db/migration/V1.6__user_uri.sql @@ -0,0 +1 @@ +ALTER TABLE replies ADD COLUMN user_uri char(255) DEFAULT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.7__reply_uri.sql b/src/main/resources/db/migration/V1.7__reply_uri.sql new file mode 100644 index 00000000..9ec35485 --- /dev/null +++ b/src/main/resources/db/migration/V1.7__reply_uri.sql @@ -0,0 +1 @@ +ALTER TABLE replies ADD COLUMN reply_uri char(255) DEFAULT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.8__html reply.sql b/src/main/resources/db/migration/V1.8__html reply.sql new file mode 100644 index 00000000..9f939971 --- /dev/null +++ b/src/main/resources/db/migration/V1.8__html reply.sql @@ -0,0 +1 @@ +ALTER TABLE replies ADD COLUMN html tinyint(4) NOT NULL DEFAULT '0'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.9__reply_uri_index.sql b/src/main/resources/db/migration/V1.9__reply_uri_index.sql new file mode 100644 index 00000000..0ee3c77f --- /dev/null +++ b/src/main/resources/db/migration/V1.9__reply_uri_index.sql @@ -0,0 +1 @@ +create index reply_uri_index on replies(reply_uri) \ No newline at end of file diff --git a/src/main/resources/errors.properties b/src/main/resources/errors.properties new file mode 100644 index 00000000..7ec8fbfd --- /dev/null +++ b/src/main/resources/errors.properties @@ -0,0 +1,3 @@ +error.title = Error page + +error.login=Wrong user or password \ No newline at end of file diff --git a/src/main/resources/errors_ru.properties b/src/main/resources/errors_ru.properties new file mode 100644 index 00000000..ca13b926 --- /dev/null +++ b/src/main/resources/errors_ru.properties @@ -0,0 +1,3 @@ +error.title = Произошла ошибка + +error.login=Произошла ошибка, проверьте имя пользователя и пароль \ No newline at end of file diff --git a/src/main/resources/help b/src/main/resources/help new file mode 160000 index 00000000..ce103cd9 --- /dev/null +++ b/src/main/resources/help @@ -0,0 +1 @@ +Subproject commit ce103cd9a2a8a200c6ebb3b41525e7c8f639d98c diff --git a/src/main/resources/juick.png b/src/main/resources/juick.png new file mode 100644 index 00000000..a7b0e901 Binary files /dev/null and b/src/main/resources/juick.png differ diff --git a/src/main/resources/juick.sql b/src/main/resources/juick.sql new file mode 100644 index 00000000..a6fb76cd --- /dev/null +++ b/src/main/resources/juick.sql @@ -0,0 +1,947 @@ +-- MySQL dump 10.16 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: juick +-- ------------------------------------------------------ +use juick; +-- Server version 10.1.26-MariaDB-0+deb9u1 +/*!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 utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `ads_messages` +-- + +DROP TABLE IF EXISTS `ads_messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ads_messages` ( + `message_id` int(10) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `ads_messages_log` +-- + +DROP TABLE IF EXISTS `ads_messages_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ads_messages_log` ( + `user_id` int(10) unsigned NOT NULL, + `message_id` int(10) unsigned NOT NULL, + `ts` int(10) unsigned NOT NULL DEFAULT '0' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `android` +-- + +DROP TABLE IF EXISTS `android`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `android` ( + `user_id` int(10) unsigned NOT NULL, + `regid` char(255) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `regid` (`regid`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `auth` +-- + +DROP TABLE IF EXISTS `auth`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth` ( + `user_id` int(10) unsigned NOT NULL, + `protocol` enum('xmpp','email','sms') NOT NULL, + `account` char(64) NOT NULL, + `authcode` char(8) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `bl_tags` +-- + +DROP TABLE IF EXISTS `bl_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bl_tags` ( + `user_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL, + KEY `tag_id` (`tag_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `bl_users` +-- + +DROP TABLE IF EXISTS `bl_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bl_users` ( + `user_id` int(10) unsigned NOT NULL, + `bl_user_id` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`user_id`,`bl_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `captcha` +-- + +DROP TABLE IF EXISTS `captcha`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `captcha` ( + `jid` char(64) NOT NULL, + `hash` char(16) NOT NULL, + `confirmed` tinyint(4) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `captchaimg` +-- + +DROP TABLE IF EXISTS `captchaimg`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `captchaimg` ( + `id` char(16) NOT NULL, + `txt` char(6) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `ip` char(16) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `emails` +-- + +DROP TABLE IF EXISTS `emails`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `emails` ( + `user_id` int(10) unsigned NOT NULL, + `email` char(64) NOT NULL, + `subscr_hour` tinyint(4) DEFAULT NULL, + KEY `email` (`email`) USING HASH +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `facebook` +-- + +DROP TABLE IF EXISTS `facebook`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `facebook` ( + `user_id` int(10) unsigned DEFAULT NULL, + `fb_id` bigint(20) unsigned DEFAULT NULL, + `loginhash` char(36) DEFAULT NULL, + `access_token` char(255) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `fb_name` char(64) DEFAULT NULL, + `fb_link` char(255) DEFAULT NULL, + `crosspost` tinyint(1) unsigned NOT NULL DEFAULT '1', + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `favorites` +-- + +DROP TABLE IF EXISTS `favorites`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `favorites` ( + `user_id` int(10) unsigned NOT NULL, + `message_id` int(10) unsigned NOT NULL, + `ts` datetime NOT NULL, + `like_id` int(10) unsigned NOT NULL DEFAULT '1', + KEY `user_id` (`user_id`), + KEY `message_id` (`message_id`), + KEY `like_id` (`like_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `friends_facebook` +-- + +DROP TABLE IF EXISTS `friends_facebook`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `friends_facebook` ( + `user_id` int(10) unsigned NOT NULL, + `friend_id` bigint(20) unsigned NOT NULL, + UNIQUE KEY `user_id` (`user_id`,`friend_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `images` +-- + +DROP TABLE IF EXISTS `images`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `images` ( + `mid` int(10) unsigned NOT NULL, + `rid` int(10) unsigned NOT NULL, + `thumb` int(10) unsigned NOT NULL, + `small` int(10) unsigned NOT NULL, + `medium` int(10) unsigned NOT NULL, + `height` int(10) unsigned NOT NULL, + `width` int(10) unsigned NOT NULL, + PRIMARY KEY (`mid`,`rid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `ios` +-- + +DROP TABLE IF EXISTS `ios`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ios` ( + `user_id` int(10) unsigned NOT NULL, + `token` char(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `token` (`token`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `jids` +-- + +DROP TABLE IF EXISTS `jids`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jids` ( + `user_id` int(10) unsigned DEFAULT NULL, + `jid` char(64) NOT NULL, + `active` tinyint(1) NOT NULL DEFAULT '1', + `loginhash` char(36) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `jid` (`jid`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `logins` +-- + +DROP TABLE IF EXISTS `logins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `logins` ( + `user_id` int(10) unsigned NOT NULL, + `hash` char(16) NOT NULL, + UNIQUE KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `mail` +-- + +DROP TABLE IF EXISTS `mail`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mail` ( + `user_id` int(10) unsigned NOT NULL, + `hash` char(16) NOT NULL, + PRIMARY KEY (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `meon` +-- + +DROP TABLE IF EXISTS `meon`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `meon` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(10) unsigned NOT NULL, + `link` char(255) NOT NULL, + `name` char(32) NOT NULL, + `ico` smallint(5) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messages` +-- + +DROP TABLE IF EXISTS `messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages` ( + `message_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(10) unsigned NOT NULL, + `lang` enum('en','ru','fr','fa','__') NOT NULL DEFAULT '__', + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `replies` smallint(5) unsigned NOT NULL DEFAULT '0', + `maxreplyid` smallint(5) unsigned NOT NULL DEFAULT '0', + `privacy` tinyint(4) NOT NULL DEFAULT '1', + `readonly` tinyint(1) NOT NULL DEFAULT '0', + `attach` enum('jpg','mp4','png') DEFAULT NULL, + `place_id` int(10) unsigned DEFAULT NULL, + `lat` decimal(10,7) DEFAULT NULL, + `lon` decimal(10,7) DEFAULT NULL, + `popular` tinyint(4) NOT NULL DEFAULT '0', + `hidden` tinyint(3) unsigned NOT NULL DEFAULT '0', + `likes` smallint(6) NOT NULL DEFAULT '0', + `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`message_id`), + KEY `user_id` (`user_id`), + KEY `ts` (`ts`), + KEY `attach` (`attach`), + KEY `place_id` (`place_id`), + KEY `popular` (`popular`), + KEY `hidden` (`hidden`), + KEY `updated_indx` (`updated`,`message_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messages_access` +-- + +DROP TABLE IF EXISTS `messages_access`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages_access` ( + `message_id` int(10) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL, + KEY `message_id` (`message_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messages_tags` +-- + +DROP TABLE IF EXISTS `messages_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages_tags` ( + `message_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL, + UNIQUE KEY `message_id_2` (`message_id`,`tag_id`), + KEY `message_id` (`message_id`), + KEY `tag_id` (`tag_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messages_txt` +-- + +DROP TABLE IF EXISTS `messages_txt`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages_txt` ( + `message_id` int(10) unsigned NOT NULL, + `tags` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `repliesby` varchar(96) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `txt` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`message_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messages_votes` +-- + +DROP TABLE IF EXISTS `messages_votes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages_votes` ( + `message_id` int(10) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `vote` tinyint(4) NOT NULL DEFAULT '1', + UNIQUE KEY `message_id` (`message_id`,`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `messenger` +-- + +DROP TABLE IF EXISTS `messenger`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messenger` ( + `user_id` int(10) unsigned DEFAULT NULL, + `sender_id` bigint(20) NOT NULL, + `display_name` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `loginhash` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `places` +-- + +DROP TABLE IF EXISTS `places`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `places` ( + `place_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `lat` decimal(10,7) NOT NULL, + `lon` decimal(10,7) NOT NULL, + `name` char(64) NOT NULL, + `descr` char(255) DEFAULT NULL, + `url` char(128) DEFAULT NULL, + `user_id` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`place_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `places_tags` +-- + +DROP TABLE IF EXISTS `places_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `places_tags` ( + `place_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `pm` +-- + +DROP TABLE IF EXISTS `pm`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pm` ( + `user_id` int(10) unsigned NOT NULL, + `user_id_to` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `txt` text NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `pm_inroster` +-- + +DROP TABLE IF EXISTS `pm_inroster`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pm_inroster` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(64) NOT NULL, + UNIQUE KEY `user_id_2` (`user_id`,`jid`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `pm_streams` +-- + +DROP TABLE IF EXISTS `pm_streams`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pm_streams` ( + `user_id` int(10) unsigned NOT NULL, + `user_id_to` int(10) unsigned NOT NULL, + `lastmessage` datetime NOT NULL, + `lastview` datetime DEFAULT NULL, + `unread` smallint(5) unsigned NOT NULL DEFAULT '0', + UNIQUE KEY `user_id` (`user_id`,`user_id_to`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `presence` +-- + +DROP TABLE IF EXISTS `presence`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `presence` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(64) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + UNIQUE KEY `jid` (`jid`) +) ENGINE=MEMORY DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `reactions` +-- + +DROP TABLE IF EXISTS `reactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reactions` ( + `like_id` int(10) unsigned NOT NULL, + `description` varchar(100) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `reader_links` +-- + +DROP TABLE IF EXISTS `reader_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reader_links` ( + `link_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `rss_id` int(10) unsigned NOT NULL, + `url` char(255) NOT NULL, + `title` char(255) NOT NULL, + `ts` datetime NOT NULL, + PRIMARY KEY (`link_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `reader_rss` +-- + +DROP TABLE IF EXISTS `reader_rss`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reader_rss` ( + `rss_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `url` char(255) NOT NULL, + `lastcheck` datetime NOT NULL, + PRIMARY KEY (`rss_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `replies` +-- + +DROP TABLE IF EXISTS `replies`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `replies` ( + `message_id` int(10) unsigned NOT NULL, + `reply_id` smallint(5) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `replyto` smallint(5) unsigned NOT NULL DEFAULT '0', + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `attach` enum('jpg','mp4','png') COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `txt` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + KEY `ts` (`ts`), + KEY `message_id` (`message_id`), + KEY `uid` (`user_id`), + KEY `reply_indx` (`message_id`,`reply_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `search` +-- + +DROP TABLE IF EXISTS `search`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `search` ( + `id` bigint(20) unsigned NOT NULL, + `weight` int(11) NOT NULL, + `query` varchar(3072) NOT NULL, + `group_id` int(11) DEFAULT NULL, + KEY `query` (`query`(768)) +) ENGINE=SPHINX DEFAULT CHARSET=utf8mb4 CONNECTION='sphinx://127.0.0.1:3312/messages'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `sphinx` +-- + +DROP TABLE IF EXISTS `sphinx`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `sphinx` ( + `counter_id` tinyint(3) unsigned NOT NULL, + `max_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`counter_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `subscr_messages` +-- + +DROP TABLE IF EXISTS `subscr_messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `subscr_messages` ( + `message_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + `last_read_rid` smallint(5) NOT NULL DEFAULT '0', + UNIQUE KEY `message_id` (`message_id`,`suser_id`), + KEY `last_read_indx` (`suser_id`,`last_read_rid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `subscr_tags` +-- + +DROP TABLE IF EXISTS `subscr_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `subscr_tags` ( + `tag_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + UNIQUE KEY `tag_id` (`tag_id`,`suser_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `subscr_users` +-- + +DROP TABLE IF EXISTS `subscr_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `subscr_users` ( + `user_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + `jid` char(64) DEFAULT NULL, + `active` bit(1) NOT NULL DEFAULT b'1', + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `user_id` (`user_id`,`suser_id`), + KEY `suser_id` (`suser_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `tags` +-- + +DROP TABLE IF EXISTS `tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tags` ( + `tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `synonym_id` int(10) unsigned DEFAULT NULL, + `name` char(70) CHARACTER SET utf8mb4 DEFAULT NULL, + `top` tinyint(1) unsigned NOT NULL DEFAULT '0', + `noindex` tinyint(1) unsigned NOT NULL DEFAULT '0', + `stat_messages` int(10) unsigned NOT NULL DEFAULT '0', + `stat_users` smallint(5) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`tag_id`), + KEY `synonym_id` (`synonym_id`), + KEY `stat_msg_indx` (`name`,`stat_messages`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `tags_ignore` +-- + +DROP TABLE IF EXISTS `tags_ignore`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tags_ignore` ( + `tag_id` int(10) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `tags_synonyms` +-- + +DROP TABLE IF EXISTS `tags_synonyms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tags_synonyms` ( + `name` char(64) NOT NULL, + `changeto` char(64) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `telegram` +-- + +DROP TABLE IF EXISTS `telegram`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `telegram` ( + `user_id` int(10) unsigned DEFAULT NULL, + `tg_id` bigint(20) NOT NULL, + `tg_name` char(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `loginhash` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `telegram_chats` +-- + +DROP TABLE IF EXISTS `telegram_chats`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `telegram_chats` ( + `chat_id` bigint(20) DEFAULT NULL, + UNIQUE KEY `chat_id` (`chat_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `top_ignore_messages` +-- + +DROP TABLE IF EXISTS `top_ignore_messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `top_ignore_messages` ( + `message_id` int(10) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `top_ignore_tags` +-- + +DROP TABLE IF EXISTS `top_ignore_tags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `top_ignore_tags` ( + `tag_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`tag_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `top_ignore_users` +-- + +DROP TABLE IF EXISTS `top_ignore_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `top_ignore_users` ( + `user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `twitter` +-- + +DROP TABLE IF EXISTS `twitter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `twitter` ( + `user_id` int(10) unsigned NOT NULL, + `access_token` char(64) NOT NULL, + `access_token_secret` char(64) NOT NULL, + `uname` char(64) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `crosspost` tinyint(1) unsigned NOT NULL DEFAULT '1', + PRIMARY KEY (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `useroptions` +-- + +DROP TABLE IF EXISTS `useroptions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `useroptions` ( + `user_id` int(10) unsigned NOT NULL, + `jnotify` tinyint(1) NOT NULL DEFAULT '1', + `subscr_active` tinyint(1) NOT NULL DEFAULT '1', + `off_ts` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `xmppxhtml` tinyint(1) NOT NULL DEFAULT '0', + `subscr_notify` tinyint(1) NOT NULL DEFAULT '1', + `recommendations` tinyint(1) NOT NULL DEFAULT '1', + `privacy_view` tinyint(1) NOT NULL DEFAULT '1', + `privacy_reply` tinyint(1) NOT NULL DEFAULT '1', + `privacy_pm` tinyint(1) NOT NULL DEFAULT '1', + `repliesview` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`), + KEY `recommendations` (`recommendations`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nick` char(64) NOT NULL, + `passw` char(32) NOT NULL, + `lang` enum('en','ru','fr','fa','__') NOT NULL DEFAULT '__', + `banned` tinyint(3) unsigned NOT NULL DEFAULT '0', + `lastmessage` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `lastpm` int(11) NOT NULL DEFAULT '0', + `lastphoto` int(11) NOT NULL DEFAULT '0', + `karma` smallint(6) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `nick` (`nick`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `users_refs` +-- + +DROP TABLE IF EXISTS `users_refs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users_refs` ( + `user_id` int(10) unsigned NOT NULL, + `ref` int(10) unsigned NOT NULL, + KEY `ref` (`ref`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `users_subscr` +-- + +DROP TABLE IF EXISTS `users_subscr`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users_subscr` ( + `user_id` int(10) unsigned NOT NULL, + `cnt` smallint(5) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `usersinfo` +-- + +DROP TABLE IF EXISTS `usersinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `usersinfo` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(32) DEFAULT NULL, + `fullname` char(32) DEFAULT NULL, + `country` char(32) DEFAULT NULL, + `url` char(64) DEFAULT NULL, + `gender` char(32) DEFAULT NULL, + `bday` char(10) DEFAULT NULL, + `descr` varchar(255) DEFAULT NULL, + PRIMARY KEY (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `version` +-- + +DROP TABLE IF EXISTS `version`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `version` ( + `version` bigint(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `vk` +-- + +DROP TABLE IF EXISTS `vk`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vk` ( + `user_id` int(10) unsigned DEFAULT NULL, + `vk_id` bigint(20) unsigned DEFAULT NULL, + `loginhash` char(36) DEFAULT NULL, + `access_token` char(128) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `vk_name` char(64) DEFAULT NULL, + `vk_link` char(64) NOT NULL, + `crosspost` tinyint(3) unsigned NOT NULL DEFAULT '1', + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `winphone` +-- + +DROP TABLE IF EXISTS `winphone`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `winphone` ( + `user_id` int(10) unsigned NOT NULL, + `url` char(255) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `url` (`url`), + KEY `user_id` (`user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `wl_users` +-- + +DROP TABLE IF EXISTS `wl_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wl_users` ( + `user_id` int(10) unsigned NOT NULL, + `wl_user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`,`wl_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-06-22 7:38:17 diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties new file mode 100644 index 00000000..cfd8a826 --- /dev/null +++ b/src/main/resources/messages.properties @@ -0,0 +1,80 @@ +date.format=MM/dd/yyyy + +link.settings=Settings +link.returnToMain=Back to Home Page +link.contacts=Contacts +link.tos=TOS +link.adv=Advertisement + +link.popular=Popular +link.allMessages=Discover +link.withPhotos=Photos +link.trends=Trends +link.my=My feed +link.privateMessages=PM +link.discuss=Discuss +link.recommended=Recommended +link.postMessage=Post +link.Login=Login +link.logout=Logout + +link.settings.main=Main +link.settings.password=Password +link.settings.about=About + +label.sponsor=Sponsor +label.sponsors=Sponsors +label.search=Search +label.register=Register +label.username=User name +label.password=Password + +postForm.newMessage=New message... +postForm.imageLink=Link to image +postForm.imageFormats=JPG/PNG, up to 10 MB +postForm.or=or +postForm.upload=Upload +postForm.tags=Tags (space separated) +postForm.submit=Send + +message.recommend=Recommend +message.recommendedBy=♡ recommended by +message.recommendedOthers=and {0} others +message.comment=Comment +message.writeComment=Write a comment... +message.share=Share +message.subscribe=Subscribe +message.subscribed=Subscribed +message.delete=Delete +message.loginForSending=Login to post messages and comments +message.sendLoginToXmpp=Send LOGIN to juick@juick.com + +messages.next=Next + +reply.reply=Reply +reply.inReplyTo=in reply to +reply.replies=Replies + +replies.showAsList=Show as list +replies.showAsTree=Show as tree +replies.unfoldAll=Unfold all + +question.areRegistered=Already registered? + +title.help=Help +title.loginOrSignup=Juick - Log In or Sign Up +title.index.anonym=Juick microblogs: popular posts +title.index.user=Popular + +error.pageNotFound=Page not found +error.pageNotFound.description=User probably deleted this post, or this page never existed. + +blog.blog=Blog +blog.recommendations=Recommendations +blog.photos=Photos +blog.iread=I read +blog.readers=My readers +blog.bl=My blacklist +blog.messages=Messages +blog.comments=Comments +blog.allPostsWithTag=All posts tagged \ No newline at end of file diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties new file mode 100644 index 00000000..2a2269ae --- /dev/null +++ b/src/main/resources/messages_ru.properties @@ -0,0 +1,78 @@ +date.format=dd.MM.yyyy + +link.settings=Настройки +link.returnToMain=Вернуться на главную +link.contacts=Контакты +link.tos=TOS + +link.popular=Популярные +link.allMessages=Обзор +link.withPhotos=Фото +link.trends=Темы +link.my=Моя лента +link.privateMessages=Приватные +link.discuss=Диалоги +link.recommended=Рекомендации +link.postMessage=Написать +link.Login=Войти +link.logout=Выйти + +link.settings.main=Главная +link.settings.password=Пароль +link.settings.about=О пользователе + +label.sponsor=Спонсор +label.sponsors=Спонсоры +label.search=Поиск +label.register=Зарегистрироваться +label.username=Имя пользователя +label.password=Пароль + +postForm.newMessage=Новое сообщение... +postForm.imageLink=Ссылка на изображение +postForm.imageFormats=JPG/PNG, до 10Мб +postForm.or=или +postForm.upload=загрузить +postForm.tags=Теги (через пробел) +postForm.submit=Отправить + +message.recommend=Рекомендовать +message.recommendedBy=♡ рекомендовали +message.recommendedOthers=и еще {0} +message.comment=Комментировать +message.writeComment=Написать комментарий... +message.share=Поделиться +message.subscribe=Подписаться +message.subscribed=Подписан +message.delete=Удалить +message.loginForSending=Чтобы добавлять сообщения и комментарии, представьтесь +message.sendLoginToXmpp=Отправьте LOGIN на juick@juick.com + +messages.next=Читать дальше + +reply.reply=Ответить +reply.inReplyTo=в ответ на +reply.replies=Ответы +replies.showAsList=Показать списком +replies.showAsTree=Показать деревом +replies.unfoldAll=Раскрыть все + +question.areRegistered=Уже зарегистрированы? + +title.help=Справка +title.loginOrSignup=Juick - Войдите в систему или зарегистрируйтесь +title.index.anonym=Микроблоги Juick: популярные записи +title.index.user=Популярные + +error.pageNotFound=Страница не найдена +error.pageNotFound.description=Сожалеем, но страницу с этим адресом удалил её автор, либо её никогда не существовало. + +blog.blog=Блог +blog.recommendations=Рекомендации +blog.photos=Фотографии +blog.iread=Я читаю +blog.readers=Мои подписчики +blog.bl=Черный список +blog.messages=Сообщения +blog.comments=Комментарии +blog.allPostsWithTag=Все записи с тегом \ No newline at end of file diff --git a/src/main/resources/pg_schema_wip b/src/main/resources/pg_schema_wip new file mode 100644 index 00000000..61178495 --- /dev/null +++ b/src/main/resources/pg_schema_wip @@ -0,0 +1,1539 @@ +-- +-- PostgreSQL database dump +-- + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = off; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET escape_string_warning = off; + +-- +-- Name: juick; Type: SCHEMA; Schema: -; Owner: juick +-- + +CREATE SCHEMA juick; + + +ALTER SCHEMA juick OWNER TO juick; + +-- +-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: +-- + +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; + + +-- +-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; + + +SET search_path = public, pg_catalog; + +-- +-- Name: auth_protocol; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE auth_protocol AS ENUM ( + 'xmpp', + 'email', + 'sms' +); + + +ALTER TYPE auth_protocol OWNER TO juick; + +-- +-- Name: messages_attach; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE messages_attach AS ENUM ( + 'jpg', + 'mp4', + 'png' +); + + +ALTER TYPE messages_attach OWNER TO juick; + +-- +-- Name: messages_lang; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE messages_lang AS ENUM ( + 'en', + 'ru', + 'fr', + 'fa', + '__' +); + + +ALTER TYPE messages_lang OWNER TO juick; + +-- +-- Name: replies_attach; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE replies_attach AS ENUM ( + 'jpg', + 'mp4', + 'png' +); + + +ALTER TYPE replies_attach OWNER TO juick; + +-- +-- Name: users_lang; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE users_lang AS ENUM ( + 'en', + 'ru', + 'fr', + 'fa', + '__' +); + + +ALTER TYPE users_lang OWNER TO juick; + +SET default_tablespace = ''; + +SET default_with_oids = false; + +-- +-- Name: ads_messages; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE ads_messages ( + message_id bigint NOT NULL +); + + +ALTER TABLE ads_messages OWNER TO juick; + +-- +-- Name: ads_messages_log; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE ads_messages_log ( + user_id bigint NOT NULL, + message_id bigint NOT NULL, + ts bigint DEFAULT 0::bigint NOT NULL +); + + +ALTER TABLE ads_messages_log OWNER TO juick; + +-- +-- Name: android; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE android ( + user_id bigint NOT NULL, + regid character varying(255) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE android OWNER TO juick; + +-- +-- Name: auth; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE auth ( + user_id bigint NOT NULL, + protocol auth_protocol NOT NULL, + account character varying(64) NOT NULL, + authcode character varying(8) NOT NULL +); + + +ALTER TABLE auth OWNER TO juick; + +-- +-- Name: bl_tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE bl_tags ( + user_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE bl_tags OWNER TO juick; + +-- +-- Name: bl_users; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE bl_users ( + user_id bigint NOT NULL, + bl_user_id bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE bl_users OWNER TO juick; + +-- +-- Name: captcha; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE captcha ( + jid character varying(64) NOT NULL, + hash character varying(16) NOT NULL, + confirmed smallint NOT NULL +); + + +ALTER TABLE captcha OWNER TO juick; + +-- +-- Name: captchaimg; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE captchaimg ( + id character varying(16) NOT NULL, + txt character varying(6) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + ip character varying(16) NOT NULL +); + + +ALTER TABLE captchaimg OWNER TO juick; + +-- +-- Name: emails; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE emails ( + user_id bigint NOT NULL, + email character varying(64) NOT NULL, + subscr_hour smallint +); + + +ALTER TABLE emails OWNER TO juick; + +-- +-- Name: facebook; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE facebook ( + user_id bigint, + fb_id numeric NOT NULL, + loginhash character varying(36), + access_token character varying(255), + ts timestamp with time zone DEFAULT now() NOT NULL, + fb_name character varying(64) NOT NULL, + fb_link character varying(255) NOT NULL, + crosspost boolean DEFAULT true NOT NULL +); + + +ALTER TABLE facebook OWNER TO juick; + +-- +-- Name: favorites; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE favorites ( + user_id bigint NOT NULL, + message_id bigint NOT NULL, + ts timestamp with time zone +); + + +ALTER TABLE favorites OWNER TO juick; + +-- +-- Name: friends_facebook; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE friends_facebook ( + user_id bigint NOT NULL, + friend_id numeric NOT NULL +); + + +ALTER TABLE friends_facebook OWNER TO juick; + +-- +-- Name: images; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE images ( + mid bigint NOT NULL, + rid bigint NOT NULL, + thumb bigint NOT NULL, + small bigint NOT NULL, + medium bigint NOT NULL, + height bigint NOT NULL, + width bigint NOT NULL +); + + +ALTER TABLE images OWNER TO juick; + +-- +-- Name: ios; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE ios ( + user_id bigint NOT NULL, + token character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE ios OWNER TO juick; + +-- +-- Name: jids; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE jids ( + user_id bigint, + jid character varying(64) NOT NULL, + active smallint DEFAULT 0 NOT NULL, + loginhash character varying(36), + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE jids OWNER TO juick; + +-- +-- Name: logins; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE logins ( + user_id bigint NOT NULL, + hash character varying(16) NOT NULL +); + + +ALTER TABLE logins OWNER TO juick; + +-- +-- Name: mail; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE mail ( + user_id bigint NOT NULL, + hash character varying(16) NOT NULL +); + + +ALTER TABLE mail OWNER TO juick; + +-- +-- Name: meon; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE meon ( + id bigint NOT NULL, + user_id bigint NOT NULL, + link character varying(255) NOT NULL, + name character varying(32) NOT NULL, + ico smallint +); + + +ALTER TABLE meon OWNER TO juick; + +-- +-- Name: meon_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE meon_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE meon_id_seq OWNER TO juick; + +-- +-- Name: meon_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE meon_id_seq OWNED BY meon.id; + + +-- +-- Name: messages; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE messages ( + message_id bigint NOT NULL, + user_id bigint NOT NULL, + lang messages_lang DEFAULT '__'::messages_lang NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + replies smallint DEFAULT 0::smallint NOT NULL, + maxreplyid smallint DEFAULT 0::smallint NOT NULL, + privacy smallint DEFAULT 1::smallint NOT NULL, + readonly boolean DEFAULT false NOT NULL, + attach messages_attach, + place_id bigint, + lat numeric(10,7), + lon numeric(10,7), + popular smallint DEFAULT 0::smallint NOT NULL, + hidden smallint DEFAULT 0::smallint NOT NULL, + likes smallint DEFAULT 0::smallint NOT NULL +); + + +ALTER TABLE messages OWNER TO juick; + +-- +-- Name: messages_access; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE messages_access ( + message_id bigint NOT NULL, + user_id bigint NOT NULL +); + + +ALTER TABLE messages_access OWNER TO juick; + +-- +-- Name: messages_message_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE messages_message_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE messages_message_id_seq OWNER TO juick; + +-- +-- Name: messages_message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE messages_message_id_seq OWNED BY messages.message_id; + + +-- +-- Name: messages_tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE messages_tags ( + message_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE messages_tags OWNER TO juick; + +-- +-- Name: messages_txt; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE messages_txt ( + message_id bigint NOT NULL, + tags text, + repliesby text, + txt text NOT NULL +); + + +ALTER TABLE messages_txt OWNER TO juick; + +-- +-- Name: messages_votes; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE messages_votes ( + message_id bigint NOT NULL, + user_id bigint NOT NULL, + vote smallint DEFAULT 1::smallint NOT NULL +); + + +ALTER TABLE messages_votes OWNER TO juick; + +-- +-- Name: places; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE places ( + place_id bigint NOT NULL, + lat numeric(10,7) NOT NULL, + lon numeric(10,7) NOT NULL, + name character varying(64) NOT NULL, + descr character varying(255), + url character varying(128), + user_id bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE places OWNER TO juick; + +-- +-- Name: places_place_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE places_place_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE places_place_id_seq OWNER TO juick; + +-- +-- Name: places_place_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE places_place_id_seq OWNED BY places.place_id; + + +-- +-- Name: places_tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE places_tags ( + place_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE places_tags OWNER TO juick; + +-- +-- Name: pm; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE pm ( + user_id bigint NOT NULL, + user_id_to bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + txt text NOT NULL +); + + +ALTER TABLE pm OWNER TO juick; + +-- +-- Name: pm_inroster; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE pm_inroster ( + user_id bigint NOT NULL, + jid character varying(64) NOT NULL +); + + +ALTER TABLE pm_inroster OWNER TO juick; + +-- +-- Name: pm_streams; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE pm_streams ( + user_id bigint NOT NULL, + user_id_to bigint NOT NULL, + lastmessage timestamp with time zone NOT NULL, + lastview timestamp with time zone, + unread smallint DEFAULT 0::smallint NOT NULL +); + + +ALTER TABLE pm_streams OWNER TO juick; + +-- +-- Name: presence; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE presence ( + user_id bigint NOT NULL, + jid character varying(64), + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE presence OWNER TO juick; + +-- +-- Name: reader_links; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE reader_links ( + link_id bigint NOT NULL, + rss_id bigint NOT NULL, + url character varying(255) NOT NULL, + title character varying(255) NOT NULL, + ts timestamp with time zone NOT NULL +); + + +ALTER TABLE reader_links OWNER TO juick; + +-- +-- Name: reader_links_link_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE reader_links_link_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE reader_links_link_id_seq OWNER TO juick; + +-- +-- Name: reader_links_link_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE reader_links_link_id_seq OWNED BY reader_links.link_id; + + +-- +-- Name: reader_rss; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE reader_rss ( + rss_id bigint NOT NULL, + url character varying(255) NOT NULL, + lastcheck timestamp with time zone NOT NULL +); + + +ALTER TABLE reader_rss OWNER TO juick; + +-- +-- Name: reader_rss_rss_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE reader_rss_rss_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE reader_rss_rss_id_seq OWNER TO juick; + +-- +-- Name: reader_rss_rss_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE reader_rss_rss_id_seq OWNED BY reader_rss.rss_id; + + +-- +-- Name: replies; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE replies ( + message_id bigint NOT NULL, + reply_id smallint NOT NULL, + user_id bigint NOT NULL, + replyto smallint DEFAULT 0::smallint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + attach replies_attach, + txt text NOT NULL +); + + +ALTER TABLE replies OWNER TO juick; + +-- +-- Name: sphinx; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE sphinx ( + counter_id smallint NOT NULL, + max_id bigint NOT NULL +); + + +ALTER TABLE sphinx OWNER TO juick; + +-- +-- Name: subscr_messages; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE subscr_messages ( + message_id bigint NOT NULL, + suser_id bigint NOT NULL +); + + +ALTER TABLE subscr_messages OWNER TO juick; + +-- +-- Name: subscr_tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE subscr_tags ( + tag_id bigint NOT NULL, + suser_id bigint NOT NULL, + jid character varying(64) NOT NULL, + active boolean NOT NULL +); + + +ALTER TABLE subscr_tags OWNER TO juick; + +-- +-- Name: subscr_users; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE subscr_users ( + user_id bigint NOT NULL, + suser_id bigint NOT NULL, + jid character varying(64), + active boolean NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE subscr_users OWNER TO juick; + +-- +-- Name: tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE tags ( + tag_id bigint NOT NULL, + synonym_id bigint, + name character varying(70), + top boolean DEFAULT false NOT NULL, + noindex boolean DEFAULT false NOT NULL, + stat_messages bigint DEFAULT 0::bigint NOT NULL, + stat_users smallint DEFAULT 0::smallint NOT NULL +); + + +ALTER TABLE tags OWNER TO juick; + +-- +-- Name: tags_ignore; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE tags_ignore ( + tag_id bigint NOT NULL +); + + +ALTER TABLE tags_ignore OWNER TO juick; + +-- +-- Name: tags_synonyms; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE tags_synonyms ( + name character varying(64) NOT NULL, + changeto character varying(64) NOT NULL +); + + +ALTER TABLE tags_synonyms OWNER TO juick; + +-- +-- Name: tags_tag_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE tags_tag_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE tags_tag_id_seq OWNER TO juick; + +-- +-- Name: tags_tag_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE tags_tag_id_seq OWNED BY tags.tag_id; + + +-- +-- Name: telegram; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE telegram ( + user_id bigint, + tg_id numeric NOT NULL, + tg_name character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + loginhash character varying(36) +); + + +ALTER TABLE telegram OWNER TO juick; + +-- +-- Name: telegram_chats; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE telegram_chats ( + chat_id numeric +); + + +ALTER TABLE telegram_chats OWNER TO juick; + +-- +-- Name: top_ignore_messages; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE top_ignore_messages ( + message_id bigint NOT NULL +); + + +ALTER TABLE top_ignore_messages OWNER TO juick; + +-- +-- Name: top_ignore_tags; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE top_ignore_tags ( + tag_id bigint NOT NULL +); + + +ALTER TABLE top_ignore_tags OWNER TO juick; + +-- +-- Name: top_ignore_users; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE top_ignore_users ( + user_id bigint NOT NULL +); + + +ALTER TABLE top_ignore_users OWNER TO juick; + +-- +-- Name: twitter; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE twitter ( + user_id bigint NOT NULL, + access_token character varying(64) NOT NULL, + access_token_secret character varying(64) NOT NULL, + uname character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + crosspost boolean DEFAULT true NOT NULL +); + + +ALTER TABLE twitter OWNER TO juick; + +-- +-- Name: useroptions; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE useroptions ( + user_id bigint NOT NULL, + jnotify boolean DEFAULT true NOT NULL, + subscr_active boolean DEFAULT true NOT NULL, + off_ts timestamp with time zone, + xmppxhtml boolean DEFAULT false NOT NULL, + subscr_notify boolean DEFAULT true NOT NULL, + recommendations boolean DEFAULT true NOT NULL, + privacy_view boolean DEFAULT true NOT NULL, + privacy_reply boolean DEFAULT true NOT NULL, + privacy_pm boolean DEFAULT true NOT NULL, + repliesview boolean DEFAULT false NOT NULL +); + + +ALTER TABLE useroptions OWNER TO juick; + +-- +-- Name: users; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE users ( + id bigint NOT NULL, + nick character varying(64) NOT NULL, + passw character varying(32) NOT NULL, + lang users_lang DEFAULT '__'::users_lang NOT NULL, + banned smallint DEFAULT 0::smallint NOT NULL, + lastmessage bigint DEFAULT 0::bigint NOT NULL, + lastpm bigint DEFAULT 0::bigint NOT NULL, + lastphoto bigint DEFAULT 0::bigint NOT NULL, + karma smallint DEFAULT 0::smallint NOT NULL +); + + +ALTER TABLE users OWNER TO juick; + +-- +-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE users_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE users_id_seq OWNER TO juick; + +-- +-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE users_id_seq OWNED BY users.id; + + +-- +-- Name: users_refs; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE users_refs ( + user_id bigint NOT NULL, + ref bigint NOT NULL +); + + +ALTER TABLE users_refs OWNER TO juick; + +-- +-- Name: users_subscr; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE users_subscr ( + user_id bigint NOT NULL, + cnt smallint DEFAULT 0::smallint NOT NULL +); + + +ALTER TABLE users_subscr OWNER TO juick; + +-- +-- Name: usersinfo; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE usersinfo ( + user_id bigint NOT NULL, + jid character varying(32), + fullname character varying(32), + country character varying(32), + url character varying(64), + gender character varying(32), + bday character varying(10), + descr text +); + + +ALTER TABLE usersinfo OWNER TO juick; + +-- +-- Name: version; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE version ( + version numeric NOT NULL +); + + +ALTER TABLE version OWNER TO juick; + +-- +-- Name: vk; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE vk ( + user_id bigint, + vk_id numeric NOT NULL, + loginhash character varying(36), + access_token character varying(128) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + vk_name character varying(64) NOT NULL, + vk_link character varying(64) NOT NULL, + crosspost smallint DEFAULT 1::smallint NOT NULL +); + + +ALTER TABLE vk OWNER TO juick; + +-- +-- Name: winphone; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE winphone ( + user_id bigint NOT NULL, + url character varying(255) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE winphone OWNER TO juick; + +-- +-- Name: wl_users; Type: TABLE; Schema: public; Owner: juick; Tablespace: +-- + +CREATE TABLE wl_users ( + user_id bigint NOT NULL, + wl_user_id bigint NOT NULL +); + + +ALTER TABLE wl_users OWNER TO juick; + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY meon ALTER COLUMN id SET DEFAULT nextval('meon_id_seq'::regclass); + + +-- +-- Name: message_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY messages ALTER COLUMN message_id SET DEFAULT nextval('messages_message_id_seq'::regclass); + + +-- +-- Name: place_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY places ALTER COLUMN place_id SET DEFAULT nextval('places_place_id_seq'::regclass); + + +-- +-- Name: link_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY reader_links ALTER COLUMN link_id SET DEFAULT nextval('reader_links_link_id_seq'::regclass); + + +-- +-- Name: rss_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY reader_rss ALTER COLUMN rss_id SET DEFAULT nextval('reader_rss_rss_id_seq'::regclass); + + +-- +-- Name: tag_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY tags ALTER COLUMN tag_id SET DEFAULT nextval('tags_tag_id_seq'::regclass); + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass); + + +-- +-- Name: idx_20438_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY images + ADD CONSTRAINT idx_20438_primary PRIMARY KEY (mid, rid); + + +-- +-- Name: idx_20453_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY mail + ADD CONSTRAINT idx_20453_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20458_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY meon + ADD CONSTRAINT idx_20458_primary PRIMARY KEY (id); + + +-- +-- Name: idx_20483_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY messages + ADD CONSTRAINT idx_20483_primary PRIMARY KEY (message_id); + + +-- +-- Name: idx_20502_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY messages_txt + ADD CONSTRAINT idx_20502_primary PRIMARY KEY (message_id); + + +-- +-- Name: idx_20514_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY places + ADD CONSTRAINT idx_20514_primary PRIMARY KEY (place_id); + + +-- +-- Name: idx_20542_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY reader_links + ADD CONSTRAINT idx_20542_primary PRIMARY KEY (link_id); + + +-- +-- Name: idx_20551_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY reader_rss + ADD CONSTRAINT idx_20551_primary PRIMARY KEY (rss_id); + + +-- +-- Name: idx_20571_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY sphinx + ADD CONSTRAINT idx_20571_primary PRIMARY KEY (counter_id); + + +-- +-- Name: idx_20586_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY tags + ADD CONSTRAINT idx_20586_primary PRIMARY KEY (tag_id); + + +-- +-- Name: idx_20616_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY top_ignore_tags + ADD CONSTRAINT idx_20616_primary PRIMARY KEY (tag_id); + + +-- +-- Name: idx_20619_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY top_ignore_users + ADD CONSTRAINT idx_20619_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20622_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY twitter + ADD CONSTRAINT idx_20622_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20627_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY useroptions + ADD CONSTRAINT idx_20627_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20653_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY users + ADD CONSTRAINT idx_20653_primary PRIMARY KEY (id); + + +-- +-- Name: idx_20663_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY usersinfo + ADD CONSTRAINT idx_20663_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20672_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY users_subscr + ADD CONSTRAINT idx_20672_primary PRIMARY KEY (user_id); + + +-- +-- Name: idx_20694_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY wl_users + ADD CONSTRAINT idx_20694_primary PRIMARY KEY (user_id, wl_user_id); + + +-- +-- Name: idx_29418_primary; Type: CONSTRAINT; Schema: public; Owner: juick; Tablespace: +-- + +ALTER TABLE ONLY bl_users + ADD CONSTRAINT idx_29418_primary PRIMARY KEY (user_id, bl_user_id); + + +-- +-- Name: idx_20390_regid; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20390_regid ON android USING btree (regid); + + +-- +-- Name: idx_20390_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20390_user_id ON android USING btree (user_id); + + +-- +-- Name: idx_20404_tag_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20404_tag_id ON bl_tags USING btree (tag_id); + + +-- +-- Name: idx_20404_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20404_user_id ON bl_tags USING btree (user_id); + + +-- +-- Name: idx_20418_email; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20418_email ON emails USING btree (email); + + +-- +-- Name: idx_20421_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20421_user_id ON facebook USING btree (user_id); + + +-- +-- Name: idx_20432_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20432_user_id ON friends_facebook USING btree (user_id, friend_id); + + +-- +-- Name: idx_20441_token; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20441_token ON ios USING btree (token); + + +-- +-- Name: idx_20441_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20441_user_id ON ios USING btree (user_id); + + +-- +-- Name: idx_20445_jid; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20445_jid ON jids USING btree (jid); + + +-- +-- Name: idx_20445_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20445_user_id ON jids USING btree (user_id); + + +-- +-- Name: idx_20450_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20450_user_id ON logins USING btree (user_id); + + +-- +-- Name: idx_20483_attach; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_attach ON messages USING btree (attach); + + +-- +-- Name: idx_20483_hidden; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_hidden ON messages USING btree (hidden); + + +-- +-- Name: idx_20483_place_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_place_id ON messages USING btree (place_id); + + +-- +-- Name: idx_20483_popular; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_popular ON messages USING btree (popular); + + +-- +-- Name: idx_20483_ts; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_ts ON messages USING btree (ts); + + +-- +-- Name: idx_20483_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20483_user_id ON messages USING btree (user_id); + + +-- +-- Name: idx_20496_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20496_message_id ON messages_access USING btree (message_id); + + +-- +-- Name: idx_20499_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20499_message_id ON messages_tags USING btree (message_id); + + +-- +-- Name: idx_20499_message_id_2; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20499_message_id_2 ON messages_tags USING btree (message_id, tag_id); + + +-- +-- Name: idx_20499_tag_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20499_tag_id ON messages_tags USING btree (tag_id); + + +-- +-- Name: idx_20508_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20508_message_id ON messages_votes USING btree (message_id, user_id); + + +-- +-- Name: idx_20529_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20529_user_id ON pm_inroster USING btree (user_id); + + +-- +-- Name: idx_20529_user_id_2; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20529_user_id_2 ON pm_inroster USING btree (user_id, jid); + + +-- +-- Name: idx_20532_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20532_user_id ON pm_streams USING btree (user_id, user_id_to); + + +-- +-- Name: idx_20536_jid; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20536_jid ON presence USING btree (jid); + + +-- +-- Name: idx_20563_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20563_message_id ON replies USING btree (message_id); + + +-- +-- Name: idx_20563_ts; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20563_ts ON replies USING btree (ts); + + +-- +-- Name: idx_20563_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20563_user_id ON replies USING btree (user_id); + + +-- +-- Name: idx_20574_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20574_message_id ON subscr_messages USING btree (message_id, suser_id); + + +-- +-- Name: idx_20577_tag_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20577_tag_id ON subscr_tags USING btree (tag_id, suser_id); + + +-- +-- Name: idx_20580_suser_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20580_suser_id ON subscr_users USING btree (suser_id); + + +-- +-- Name: idx_20580_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20580_user_id ON subscr_users USING btree (user_id, suser_id); + + +-- +-- Name: idx_20586_synonym_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20586_synonym_id ON tags USING btree (synonym_id); + + +-- +-- Name: idx_20607_chat_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20607_chat_id ON telegram_chats USING btree (chat_id); + + +-- +-- Name: idx_20627_recommendations; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20627_recommendations ON useroptions USING btree (recommendations); + + +-- +-- Name: idx_20653_nick; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20653_nick ON users USING btree (nick); + + +-- +-- Name: idx_20669_ref; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20669_ref ON users_refs USING btree (ref); + + +-- +-- Name: idx_20682_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20682_user_id ON vk USING btree (user_id); + + +-- +-- Name: idx_20690_url; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_20690_url ON winphone USING btree (url); + + +-- +-- Name: idx_20690_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_20690_user_id ON winphone USING btree (user_id); + + +-- +-- Name: idx_29422_message_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_29422_message_id ON favorites USING btree (message_id); + + +-- +-- Name: idx_29422_user_id; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE INDEX idx_29422_user_id ON favorites USING btree (user_id); + + +-- +-- Name: idx_29422_user_id_2; Type: INDEX; Schema: public; Owner: juick; Tablespace: +-- + +CREATE UNIQUE INDEX idx_29422_user_id_2 ON favorites USING btree (user_id, message_id); + + +-- +-- Name: public; Type: ACL; Schema: -; Owner: postgres +-- + +REVOKE ALL ON SCHEMA public FROM PUBLIC; +REVOKE ALL ON SCHEMA public FROM postgres; +GRANT ALL ON SCHEMA public TO postgres; +GRANT ALL ON SCHEMA public TO PUBLIC; + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/src/main/resources/rome.properties b/src/main/resources/rome.properties new file mode 100644 index 00000000..fdb9aaa2 --- /dev/null +++ b/src/main/resources/rome.properties @@ -0,0 +1,2 @@ +rss_2.0.item.ModuleParser.classes=com.juick.server.api.rss.extension.JuickModuleParser +rss_2.0.item.ModuleGenerator.classes=com.juick.server.api.rss.extension.JuickModuleGenerator \ No newline at end of file diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql new file mode 100644 index 00000000..2e8fad9b --- /dev/null +++ b/src/main/resources/schema.sql @@ -0,0 +1,396 @@ +SET DB_CLOSE_ON_EXIT TRUE; + +CREATE TABLE IF NOT EXISTS `android` ( + `user_id` int(10) unsigned NOT NULL, + `regid` char(255) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +); +CREATE TABLE IF NOT EXISTS `auth` ( + `user_id` int(10) unsigned NOT NULL, + `protocol` enum('xmpp','email','sms') NOT NULL, + `account` char(64) NOT NULL, + `authcode` char(8) NOT NULL +); +CREATE TABLE IF NOT EXISTS `bl_tags` ( + `user_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL, +); +CREATE TABLE IF NOT EXISTS `bl_users` ( + `user_id` int(10) unsigned NOT NULL, + `bl_user_id` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`user_id`,`bl_user_id`) +); +CREATE TABLE IF NOT EXISTS `facebook` ( + `user_id` int(10) unsigned DEFAULT NULL, + `fb_id` bigint(20) unsigned NULL, + `loginhash` char(36) DEFAULT NULL, + `access_token` char(255) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `fb_name` char(64) NULL, + `fb_link` char(255) NULL, + `crosspost` tinyint(1) unsigned NOT NULL DEFAULT '1' +); + +CREATE TABLE IF NOT EXISTS `reactions` ( + `like_id` int(10) unsigned NOT NULL, + `description` varchar (100) NOT NULL +); +CREATE TABLE IF NOT EXISTS `favorites` ( + `user_id` int(10) unsigned NOT NULL, + `message_id` int(10) unsigned NOT NULL, + `ts` datetime NOT NULL, + `like_id` int(10), + foreign key (like_id) references reactions(like_id) +); + + + +CREATE TABLE IF NOT EXISTS `friends_facebook` ( + `user_id` int(10) unsigned NOT NULL, + `friend_id` bigint(20) unsigned NOT NULL, + UNIQUE KEY `user_id` (`user_id`,`friend_id`) +); +CREATE TABLE IF NOT EXISTS `images` ( + `mid` int(10) unsigned NOT NULL, + `rid` int(10) unsigned NOT NULL, + `thumb` int(10) unsigned NOT NULL, + `small` int(10) unsigned NOT NULL, + `medium` int(10) unsigned NOT NULL, + `height` int(10) unsigned NOT NULL, + `width` int(10) unsigned NOT NULL, + PRIMARY KEY (`mid`,`rid`) +); + +CREATE TABLE IF NOT EXISTS `mail` ( + `user_id` int(10) unsigned NOT NULL, + `hash` char(16) NOT NULL, + PRIMARY KEY (`user_id`) +); + +CREATE TABLE IF NOT EXISTS `meon` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(10) unsigned NOT NULL, + `link` char(255) NOT NULL, + `name` char(32) NOT NULL, + `ico` smallint(5) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +); + + + +CREATE TABLE IF NOT EXISTS `messages_access` ( + `message_id` int(10) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL +); + +CREATE TABLE IF NOT EXISTS `messages_tags` ( + `message_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL, + UNIQUE KEY `message_id_2` (`message_id`,`tag_id`) +); + +CREATE TABLE IF NOT EXISTS `messages_txt` ( + `message_id` int(10) unsigned NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `repliesby` varchar(96) DEFAULT NULL, + `txt` mediumtext NOT NULL, + PRIMARY KEY (`message_id`) +); + +CREATE TABLE IF NOT EXISTS `messages_votes` ( + `message_id` int(10) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `vote` tinyint(4) NOT NULL DEFAULT '1', + UNIQUE KEY `message_id` (`message_id`,`user_id`) +); + +CREATE TABLE IF NOT EXISTS `messenger` ( + `user_id` int(10) unsigned DEFAULT NULL, + `sender_id` bigint(20) NOT NULL, + `display_name` char(64) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `loginhash` char(36) DEFAULT NULL +); + +CREATE TABLE IF NOT EXISTS `places` ( + `place_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `lat` decimal(10,7) NOT NULL, + `lon` decimal(10,7) NOT NULL, + `name` char(64) NOT NULL, + `descr` char(255) DEFAULT NULL, + `url` char(128) DEFAULT NULL, + `user_id` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`place_id`) +); + +CREATE TABLE IF NOT EXISTS `places_tags` ( + `place_id` int(10) unsigned NOT NULL, + `tag_id` int(10) unsigned NOT NULL +); + +CREATE TABLE IF NOT EXISTS `pm` ( + `user_id` int(10) unsigned NOT NULL, + `user_id_to` int(10) unsigned NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `txt` text NOT NULL +); + +CREATE TABLE IF NOT EXISTS `pm_streams` ( + `user_id` int(10) unsigned NOT NULL, + `user_id_to` int(10) unsigned NOT NULL, + `lastmessage` datetime NOT NULL, + `lastview` datetime DEFAULT NULL, + `unread` smallint(5) unsigned NOT NULL DEFAULT '0', + UNIQUE KEY (`user_id`,`user_id_to`) +); + +CREATE TABLE IF NOT EXISTS `presence` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(64) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY (`jid`) +); + +CREATE TABLE IF NOT EXISTS `replies` ( + `message_id` int(10) unsigned NOT NULL, + `reply_id` smallint(5) unsigned NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `replyto` smallint(5) unsigned NOT NULL DEFAULT '0', + `ts` timestamp(9) NOT NULL DEFAULT CURRENT_TIMESTAMP, + `attach` nchar(3) check (attach in ('jpg', 'mp4', 'png')), + `txt` mediumtext NOT NULL +); + +CREATE TABLE IF NOT EXISTS `subscr_messages` ( + `message_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + `last_read_rid` smallint(5) unsigned NOT NULL DEFAULT '0', + UNIQUE KEY (`message_id`,`suser_id`) +); + +CREATE TABLE IF NOT EXISTS `subscr_tags` ( + `tag_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + UNIQUE KEY (`tag_id`,`suser_id`) +); + +CREATE TABLE IF NOT EXISTS `subscr_users` ( + `user_id` int(10) unsigned NOT NULL, + `suser_id` int(10) unsigned NOT NULL, + `jid` char(64) DEFAULT NULL, + `active` bit(1) NOT NULL DEFAULT TRUE, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY (`user_id`,`suser_id`) +); + +CREATE TABLE IF NOT EXISTS `tags` ( + `tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `synonym_id` int(10) unsigned DEFAULT NULL, + `name` varchar_ignorecase(70) DEFAULT NULL, + `top` tinyint(1) unsigned NOT NULL DEFAULT '0', + `noindex` tinyint(1) unsigned NOT NULL DEFAULT '0', + `stat_messages` int(10) unsigned NOT NULL DEFAULT '0', + `stat_users` smallint(5) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`tag_id`) +); + +CREATE TABLE IF NOT EXISTS `tags_ignore` ( + `tag_id` int(10) unsigned NOT NULL +); + +CREATE TABLE IF NOT EXISTS `tags_synonyms` ( + `name` char(64) NOT NULL, + `changeto` char(64) NOT NULL +); + +CREATE TABLE IF NOT EXISTS `telegram` ( + `user_id` int(10) unsigned DEFAULT NULL, + `tg_id` bigint(20) NOT NULL, + `tg_name` char(64) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `loginhash` char(36) DEFAULT NULL +); + +CREATE TABLE IF NOT EXISTS `telegram_chats` ( + `chat_id` bigint(20) DEFAULT NULL, + UNIQUE KEY `chat_id` (`chat_id`) +); + +CREATE TABLE IF NOT EXISTS `top_ignore_messages` ( + `message_id` int(10) unsigned NOT NULL +); + +CREATE TABLE IF NOT EXISTS `top_ignore_tags` ( + `tag_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`tag_id`) +); + +CREATE TABLE IF NOT EXISTS `top_ignore_users` ( + `user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`) +); + +CREATE TABLE IF NOT EXISTS `twitter` ( + `user_id` int(10) unsigned NOT NULL, + `access_token` char(64) NOT NULL, + `access_token_secret` char(64) NOT NULL, + `uname` char(64) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `crosspost` tinyint(1) unsigned NOT NULL DEFAULT '1', + PRIMARY KEY (`user_id`) +); + +CREATE TABLE IF NOT EXISTS `useroptions` ( + `user_id` int(10) unsigned NOT NULL, + `jnotify` tinyint(1) NOT NULL DEFAULT '1', + `subscr_active` tinyint(1) NOT NULL DEFAULT '1', + `off_ts` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `xmppxhtml` tinyint(1) NOT NULL DEFAULT '0', + `subscr_notify` tinyint(1) NOT NULL DEFAULT '1', + `recommendations` tinyint(1) NOT NULL DEFAULT '1', + `privacy_view` tinyint(1) NOT NULL DEFAULT '1', + `privacy_reply` tinyint(1) NOT NULL DEFAULT '1', + `privacy_pm` tinyint(1) NOT NULL DEFAULT '1', + `repliesview` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`) +); + +CREATE TABLE IF NOT EXISTS `users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nick` char(64) NOT NULL, + `passw` char(32) NOT NULL, + `lang` enum('en','ru','fr','fa','__') NOT NULL DEFAULT '__', + `banned` tinyint(3) unsigned NOT NULL DEFAULT '0', + `lastmessage` timestamp(9) NOT NULL DEFAULT CURRENT_TIMESTAMP, + `lastpm` int(11) NOT NULL DEFAULT '0', + `lastphoto` int(11) NOT NULL DEFAULT '0', + `karma` smallint(6) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `nick` (`nick`) +); + +CREATE TABLE IF NOT EXISTS `users_refs` ( + `user_id` int(10) unsigned NOT NULL, + `ref` int(10) unsigned NOT NULL +); + +CREATE TABLE IF NOT EXISTS `users_subscr` ( + `user_id` int(10) unsigned NOT NULL, + `cnt` smallint(5) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`) +); + +CREATE TABLE IF NOT EXISTS `usersinfo` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(32) DEFAULT NULL, + `fullname` char(32) DEFAULT NULL, + `country` char(32) DEFAULT NULL, + `url` char(64) DEFAULT NULL, + `gender` char(32) DEFAULT NULL, + `bday` char(10) DEFAULT NULL, + `descr` varchar(255) DEFAULT NULL, + PRIMARY KEY (`user_id`) +); +CREATE TABLE IF NOT EXISTS `emails` ( + `user_id` int(10) unsigned NOT NULL, + `email` char(64) NOT NULL PRIMARY KEY, + `subscr_hour` tinyint(4) DEFAULT NULL, + foreign key (user_id) references users(id) +); +CREATE TABLE IF NOT EXISTS `ios` ( + `user_id` int(10) unsigned NOT NULL, + `token` char(64) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `token` (`token`), + foreign key (user_id) references users(id) +); + +CREATE TABLE IF NOT EXISTS `jids` ( + `user_id` int(10) unsigned DEFAULT NULL, + `jid` char(64) NOT NULL, + `active` tinyint(1) NOT NULL DEFAULT '1', + `loginhash` char(36) DEFAULT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY `jid` (`jid`), + foreign key (user_id) references users(id) +); + +CREATE TABLE IF NOT EXISTS `logins` ( + `user_id` int(10) unsigned NOT NULL, + `hash` char(16) NOT NULL, + UNIQUE KEY (`user_id`) +); +CREATE TABLE IF NOT EXISTS `messages` ( + `message_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` int(10) unsigned NOT NULL, + `lang` enum('en','ru','fr','fa','__') NOT NULL DEFAULT '__', + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `replies` smallint(5) unsigned NOT NULL DEFAULT '0', + `maxreplyid` smallint(5) unsigned NOT NULL DEFAULT '0', + `privacy` tinyint(4) NOT NULL DEFAULT '1', + `readonly` tinyint(1) NOT NULL DEFAULT '0', + `attach` nchar(3) check (attach in ('jpg', 'mp4', 'png')), + `place_id` int(10) unsigned DEFAULT NULL, + `lat` decimal(10,7) DEFAULT NULL, + `lon` decimal(10,7) DEFAULT NULL, + `popular` tinyint(4) NOT NULL DEFAULT '0', + `hidden` tinyint(3) unsigned NOT NULL DEFAULT '0', + `likes` smallint(6) NOT NULL DEFAULT '0', + `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) references users(id) +); +CREATE TABLE IF NOT EXISTS `pm_inroster` ( + `user_id` int(10) unsigned NOT NULL, + `jid` char(64) NOT NULL, + UNIQUE KEY (`user_id`,`jid`), + FOREIGN KEY (`user_id`) references users(id) +); + +CREATE TABLE IF NOT EXISTS `version` ( + `version` bigint(20) NOT NULL +); + +CREATE TABLE IF NOT EXISTS `vk` ( + `user_id` int(10) unsigned DEFAULT NULL, + `vk_id` bigint(20) NOT NULL, + `loginhash` char(36) DEFAULT NULL, + `access_token` char(128) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `vk_name` char(64) NOT NULL, + `vk_link` char(64) NOT NULL, + `crosspost` bit(1) unsigned NOT NULL DEFAULT FALSE, + FOREIGN KEY (`user_id`) references users(id) +); + +CREATE TABLE IF NOT EXISTS `winphone` ( + `user_id` int(10) unsigned NOT NULL, + `url` char(255) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY (`url`), + FOREIGN KEY (`user_id`) references users(id) +); + +CREATE TABLE IF NOT EXISTS `wl_users` ( + `user_id` int(10) unsigned NOT NULL, + `wl_user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`,`wl_user_id`) +); + +CREATE CACHED TABLE PUBLIC."flyway_schema_history" ( + "installed_rank" INT NOT NULL, + "version" VARCHAR(50), + "description" VARCHAR(200) NOT NULL, + "type" VARCHAR(20) NOT NULL, + "script" VARCHAR(1000) NOT NULL, + "checksum" INT, + "installed_by" VARCHAR(100) NOT NULL, + "installed_on" TIMESTAMP DEFAULT CURRENT_TIMESTAMP() NOT NULL, + "execution_time" INT NOT NULL, + "success" BOOLEAN NOT NULL +); +ALTER TABLE PUBLIC."flyway_schema_history" ADD CONSTRAINT PUBLIC."flyway_schema_history_pk" PRIMARY KEY("installed_rank"); +-- 1 +/- SELECT COUNT(*) FROM PUBLIC."flyway_schema_history"; +INSERT INTO PUBLIC."flyway_schema_history"("installed_rank", "version", "description", "type", "script", "checksum", "installed_by", "installed_on", "execution_time", "success") VALUES +(1, '1', '<< Flyway Baseline >>', 'BASELINE', '<< Flyway Baseline >>', NULL, 'SA', TIMESTAMP '2018-08-14 13:05:13.724', 0, TRUE); \ No newline at end of file diff --git a/src/main/resources/static/favicon.png b/src/main/resources/static/favicon.png new file mode 100644 index 00000000..bc7161e2 Binary files /dev/null and b/src/main/resources/static/favicon.png differ diff --git a/src/main/resources/static/logo.png b/src/main/resources/static/logo.png new file mode 100644 index 00000000..933f6099 Binary files /dev/null and b/src/main/resources/static/logo.png differ diff --git a/src/main/resources/static/tagscloud.png b/src/main/resources/static/tagscloud.png new file mode 100644 index 00000000..3e1bf169 Binary files /dev/null and b/src/main/resources/static/tagscloud.png differ diff --git a/src/main/resources/templates/layouts/content.html b/src/main/resources/templates/layouts/content.html new file mode 100644 index 00000000..d2d29c4e --- /dev/null +++ b/src/main/resources/templates/layouts/content.html @@ -0,0 +1,38 @@ + + + + + + + + {% block headers %} + {{ headers | default('') | raw }} + {% endblock %} + {{ title | default('Juick') }} + + + + + + + + + + + + + + + + + + + + + + + 0 %}data-hash="{{visitor.authHash}}"{% endif %}> +{% block body %} +{% endblock %} + + diff --git a/src/main/resources/templates/layouts/default.html b/src/main/resources/templates/layouts/default.html new file mode 100644 index 00000000..343885c4 --- /dev/null +++ b/src/main/resources/templates/layouts/default.html @@ -0,0 +1,16 @@ +{% extends "layouts/content" %} +{% block body %} +{% include "views/partial/navigation" %} +
+
+ {% block content %} + {% endblock %} +
+ +
+{% include "views/partial/footer" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/layouts/minimal.html b/src/main/resources/templates/layouts/minimal.html new file mode 100644 index 00000000..15924521 --- /dev/null +++ b/src/main/resources/templates/layouts/minimal.html @@ -0,0 +1,10 @@ +{% extends "layouts/content" %} +{% block body %} +
+
+ {% block content %} + {% endblock %} +
+
+{% include "views/partial/footer" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/layouts/note.html b/src/main/resources/templates/layouts/note.html new file mode 100644 index 00000000..42b939c0 --- /dev/null +++ b/src/main/resources/templates/layouts/note.html @@ -0,0 +1,5 @@ +{% import "views/macros/tags" %} +

{{ msg | formatMessage }}

+{% if msg.tags.size > 0 %} +
{{ allTags(baseUri, msg.tags | tagsList) }}
+{% endif %} \ No newline at end of file diff --git a/src/main/resources/templates/views/404.html b/src/main/resources/templates/views/404.html new file mode 100644 index 00000000..02a790e6 --- /dev/null +++ b/src/main/resources/templates/views/404.html @@ -0,0 +1,11 @@ +{% extends "layouts/default" %} +{% block content %} +
+

Страница не найдена

+

Сожалеем, но страницу с этим адресом удалил её автор, либо её никогда не существовало.

+
+{% endblock %} + +{% block "column" %} +{% include "views/partial/homecolumn" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/blog.html b/src/main/resources/templates/views/blog.html new file mode 100644 index 00000000..91decad6 --- /dev/null +++ b/src/main/resources/templates/views/blog.html @@ -0,0 +1,24 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +{% if noindex %} + +{% endif %} +{% if paramTag | default('') is not empty %} +

← {{ i18n("messages","blog.allPostsWithTag") }} {{ paramTag.name | escape }}

+{% endif %} +
+{% for msg in msgs %} +{% include "views/partial/message" %} +{% endfor %} +
+{% if nextpage | default('') is not empty %} +

+{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% if noindex %} + +{% endif %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/blog_tags.html b/src/main/resources/templates/views/blog_tags.html new file mode 100644 index 00000000..48e517eb --- /dev/null +++ b/src/main/resources/templates/views/blog_tags.html @@ -0,0 +1,10 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +

+ {{ tags(user.name, tags) }} +

+{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/help.html b/src/main/resources/templates/views/help.html new file mode 100644 index 00000000..3a022497 --- /dev/null +++ b/src/main/resources/templates/views/help.html @@ -0,0 +1,10 @@ +{% extends "layouts/default" %} +{% block content %} +
+ {{ content | raw }} +
+{% endblock %} + +{% block "column" %} +{{ navigation | raw }} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/index.html b/src/main/resources/templates/views/index.html new file mode 100644 index 00000000..97d726de --- /dev/null +++ b/src/main/resources/templates/views/index.html @@ -0,0 +1,29 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +{% if noindex %} + +{% endif %} +{% for msg in msgs %} +{% include "views/partial/message" %} +{% endfor %} +{% if nextpage | default('') is not empty %} +

+{% endif %} +{% endblock %} +{% block "column" %} +{% if tag | default('') is not empty %} +{% include "views/partial/tagcolumn" %} +{% elseif visitor.uid > 0 %} +{% if discover %} +{% include "views/partial/homecolumn" %} +{% else %} +{% include "views/partial/usercolumn" %} +{% endif %} +{% else %} +{% include "views/partial/homecolumn" %} +{% endif %} +{% if noindex %} + +{% endif %} +{% endblock %} diff --git a/src/main/resources/templates/views/login.html b/src/main/resources/templates/views/login.html new file mode 100644 index 00000000..a538cb26 --- /dev/null +++ b/src/main/resources/templates/views/login.html @@ -0,0 +1,144 @@ + + + + Juick + + + + + + + + + +
juick.com © 2008-2018   Контакты · Помощь
+ +
+ {{ i18n("messages","label.register") }}: +
Facebook
+
ВКонтакте
+
+ +
+
+
+ + {{ i18n("messages","question.areRegistered") }} + +
+ + + +
+
+ + + diff --git a/src/main/resources/templates/views/login_success.html b/src/main/resources/templates/views/login_success.html new file mode 100644 index 00000000..ee71f12f --- /dev/null +++ b/src/main/resources/templates/views/login_success.html @@ -0,0 +1,13 @@ + + + + + Blank window + + + + + diff --git a/src/main/resources/templates/views/macros/tags.html b/src/main/resources/templates/views/macros/tags.html new file mode 100644 index 00000000..defed8e6 --- /dev/null +++ b/src/main/resources/templates/views/macros/tags.html @@ -0,0 +1,11 @@ +{% macro tags(uname="", tagsList) %} +{% for tag in tagsList %} +{{ tag | raw }} +{% endfor %} +{% endmacro %} + +{% macro allTags(baseUri, tagsList) %} +{% for tag in tagsList %} +#{{ tag | raw }} +{% endfor %} +{% endmacro %} \ No newline at end of file diff --git a/src/main/resources/templates/views/partial/footer.html b/src/main/resources/templates/views/partial/footer.html new file mode 100644 index 00000000..35972254 --- /dev/null +++ b/src/main/resources/templates/views/partial/footer.html @@ -0,0 +1,16 @@ + diff --git a/src/main/resources/templates/views/partial/homecolumn.html b/src/main/resources/templates/views/partial/homecolumn.html new file mode 100644 index 00000000..01448bca --- /dev/null +++ b/src/main/resources/templates/views/partial/homecolumn.html @@ -0,0 +1,25 @@ + +
+

{{ i18n("messages","link.trends") }}

+ {% include "views/partial/tags" %} + {% if showAdv | default(false) %} +

Наши друзья

+ конструктор сайтов + {% endif %} +
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/message.html b/src/main/resources/templates/views/partial/message.html new file mode 100644 index 00000000..00ca048c --- /dev/null +++ b/src/main/resources/templates/views/partial/message.html @@ -0,0 +1,76 @@ +
+
+ + {{ msg.user.name }} + +
+ {{ msg.user.name }} +
+ +
+ {{ tags(msg.user.name, msg.tags | tagsList) }} +
+
+

{{ msg | formatMessage }}

+ {% if msg.AttachmentType is not empty %} +

+ +

+ {% endif %} + +
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/navigation.html b/src/main/resources/templates/views/partial/navigation.html new file mode 100644 index 00000000..03b6c56d --- /dev/null +++ b/src/main/resources/templates/views/partial/navigation.html @@ -0,0 +1,36 @@ +
+
+ {% if visitor.uid > 0 %} + + {% else %} + + {% endif %} + + +
+
diff --git a/src/main/resources/templates/views/partial/settings_tabs.html b/src/main/resources/templates/views/partial/settings_tabs.html new file mode 100644 index 00000000..4715253e --- /dev/null +++ b/src/main/resources/templates/views/partial/settings_tabs.html @@ -0,0 +1,6 @@ +
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/tagcolumn.html b/src/main/resources/templates/views/partial/tagcolumn.html new file mode 100644 index 00000000..3e61d3d3 --- /dev/null +++ b/src/main/resources/templates/views/partial/tagcolumn.html @@ -0,0 +1,33 @@ +
+

*{{ tag.name }}

+
+{% if visitor is not empty and visitor.uid > 0 %} + +{% endif %} diff --git a/src/main/resources/templates/views/partial/tags.html b/src/main/resources/templates/views/partial/tags.html new file mode 100644 index 00000000..3235213e --- /dev/null +++ b/src/main/resources/templates/views/partial/tags.html @@ -0,0 +1,3 @@ +{% for tag in tags %} + {{ tag | raw }} +{% endfor %} \ No newline at end of file diff --git a/src/main/resources/templates/views/partial/usercolumn.html b/src/main/resources/templates/views/partial/usercolumn.html new file mode 100644 index 00000000..2b1963e3 --- /dev/null +++ b/src/main/resources/templates/views/partial/usercolumn.html @@ -0,0 +1,89 @@ +{% if visitor is not empty and visitor.uid > 0 and visitor.uid != user.uid %} +
+ + {{ user.name }} + +
+ +{% else %} +
+{% endif %} + +
+
+

+
+{% include "views/partial/usertags" %} +
+
+ + {% if iread is not empty %} +
+ {% for u in iread %} + + + {{ u.name }} + + + {% endfor %} +
+ {% endif %} + +
diff --git a/src/main/resources/templates/views/partial/usertags.html b/src/main/resources/templates/views/partial/usertags.html new file mode 100644 index 00000000..71d1303e --- /dev/null +++ b/src/main/resources/templates/views/partial/usertags.html @@ -0,0 +1,3 @@ +{% import "views/macros/tags" %} +{{ tags(user.name, tagStats) }} +... \ No newline at end of file diff --git a/src/main/resources/templates/views/pm_inbox.html b/src/main/resources/templates/views/pm_inbox.html new file mode 100644 index 00000000..e82e120e --- /dev/null +++ b/src/main/resources/templates/views/pm_inbox.html @@ -0,0 +1,35 @@ +{% extends "layouts/default" %} +{% block content %} +{% if not msgs.isEmpty() %} + +{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} diff --git a/src/main/resources/templates/views/pm_sent.html b/src/main/resources/templates/views/pm_sent.html new file mode 100644 index 00000000..dcda64d8 --- /dev/null +++ b/src/main/resources/templates/views/pm_sent.html @@ -0,0 +1,33 @@ +{% extends "layouts/default" %} +{% block content %} +
+
+
To:
+
+
+
+
+{% if not msgs.isEmpty() %} + +{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} diff --git a/src/main/resources/templates/views/post.html b/src/main/resources/templates/views/post.html new file mode 100644 index 00000000..3753b36c --- /dev/null +++ b/src/main/resources/templates/views/post.html @@ -0,0 +1,19 @@ +{% extends "layouts/minimal" %} +{% import "views/macros/tags" %} +{% block content %} +
+
+

+ Фото: + ({{ i18n("messages","postForm.imageFormats") }}) +

+

+ +
+ +

+
+
+

Теги:

+{{ tags(visitor.name, tags) }} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/post_success.html b/src/main/resources/templates/views/post_success.html new file mode 100644 index 00000000..2106f3cb --- /dev/null +++ b/src/main/resources/templates/views/post_success.html @@ -0,0 +1,19 @@ +{% extends "layouts/minimal" %} +{% block content %} +

Сообщение опубликовано

+

Поделитесь своим новым постом в социальных сетях:

+{% if sharetwi | default('') is not empty %} +

+ Отправить в Twitter

+{% endif %} +

+ Отправить в ВКонтакте

+{% if facebook | default('') is not empty %} +

+ Отправить в Facebook

+{% endif %} +

Ссылка на сообщение: {{ url }}

+{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_about.html b/src/main/resources/templates/views/settings_about.html new file mode 100644 index 00000000..bbf9e772 --- /dev/null +++ b/src/main/resources/templates/views/settings_about.html @@ -0,0 +1,20 @@ +{% extends "layouts/default" %} +{% block content %} +
+
+

Full name:

+

Country:

+

URL:
+ Please, start with "http://"

+

About:
+
+ Max. 255 symbols

+

Avatar:
+ Recommendations: PNG, 96x96, <50Kb. Also, JPG and GIF supported.

+

+
+
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_auth-email.html b/src/main/resources/templates/views/settings_auth-email.html new file mode 100644 index 00000000..e906d704 --- /dev/null +++ b/src/main/resources/templates/views/settings_auth-email.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +
+

{{ result }}

Settings.

+
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_main.html b/src/main/resources/templates/views/settings_main.html new file mode 100644 index 00000000..65fbc984 --- /dev/null +++ b/src/main/resources/templates/views/settings_main.html @@ -0,0 +1,151 @@ +{% extends "layouts/default" %} +{% block content %} +
+

Настройки

+
+
+ Notification options +

Reply notifications ("Message posted")

+

Subscriptions notifications ("@user subscribed...")

+

Posts recommendations ("Recommended by @user")

+

+
+
+
+ + Telegram + {% if telegram_name is not empty %} +
+
Telegram: {{ telegram_name }} — + + +
+
+ {% else %} +

To connect Telegram account: send any text message to @Juick_bot +

+ {% endif %} +
+ {% if jids | length > 0 %} +
+
+ + XMPP accounts + +

Your accounts:

+

+ {% for jid in jids %} +
+ {% endfor %} + {% for auth in auths %} + + — Confirm
+ {% endfor %} +

+ {% if jids | length > 1 %} +

+ {% endif %} +

To add new jabber account: send any text message to juick@juick.com +

+
+
+ {% endif %} +
+ + E-mail + +
+

Add account:
+ + + +

+
+
+

Your accounts:

+

+ {% for email in emails %} +
+ {% endfor %} + {% if emails is empty %} + -

+ {% else %} +

+ {% if jids | length > 1 %} +

+ {% endif %} + {% endif %} +
+ {% if emails is not empty %} + +
+

You can receive notifications to email:
+ Sent to + +

+
+ + {% endif %} +

 

+

You can post to Juick via e-mail. Send your plain text + messages to juick@juick.com. You can attach one photo or video file.

+
+
+ + Facebook + + {% if fbstatus.connected %} + {% if fbstatus.crosspostEnabled %} +
+
+ Facebook: Enabled — + + +
+
+ {% else %} +
+
+ Facebook: Disabled — + + +
+
+ {% endif %} + {% else %} +

Cross-posting to Facebook: Connect to Facebook

+ {% endif %} +
+
+ + Twitter + {% if twitter_name is not empty %} +
+
Twitter: {{ twitter_name }} — + + +
+
+ {% else %} +

Cross-posting to Twitter: Connect to Twitter

+ {% endif %} +
+ +
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_password.html b/src/main/resources/templates/views/settings_password.html new file mode 100644 index 00000000..aba0b139 --- /dev/null +++ b/src/main/resources/templates/views/settings_password.html @@ -0,0 +1,17 @@ +{% extends "layouts/default" %} +{% block content %} +
+
+ Changing your password +
+ +

Change password:
+ (max. length - 16 symbols)

+
+
+
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_privacy.html b/src/main/resources/templates/views/settings_privacy.html new file mode 100644 index 00000000..83b87b93 --- /dev/null +++ b/src/main/resources/templates/views/settings_privacy.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +
+

Privacy

+
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/settings_result.html b/src/main/resources/templates/views/settings_result.html new file mode 100644 index 00000000..d87a5ea6 --- /dev/null +++ b/src/main/resources/templates/views/settings_result.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +
+

{{ result | raw }}

+
+{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/signup.html b/src/main/resources/templates/views/signup.html new file mode 100644 index 00000000..d6eb921f --- /dev/null +++ b/src/main/resources/templates/views/signup.html @@ -0,0 +1,43 @@ +{% extends "layouts/default" %} +{% block content %} +

+ {% if type | slice(0, 1) == 'f' %} + Facebook + {% elseif type | slice(0, 1) == 'v' %} + VKontakte + {% elseif type | slice(0, 1) == 'e' %} + Email + {% elseif type | slice(0, 1) == 'd' %} + Telegram + {% endif %} + {{ account | raw }}

+ +

Связать с существующим аккаунтом Juick

+
+ + + + {% if visitor.getUID() > 0 %} + + {% else %} +

Имя пользователя:

+

Пароль:

+

+ {% endif %} +
+ +{% if type != "xmpp" %} +
+ +

Создать новый аккаунт Juick

+
+ + + +

Имя пользователя:
(От 2-х до 16-и латинских символов + и/или цифр, дефис)

+

Пароль:
(от 6-и до 32-х символов)

+

+
+{% endif %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/thread.html b/src/main/resources/templates/views/thread.html new file mode 100644 index 00000000..478258cf --- /dev/null +++ b/src/main/resources/templates/views/thread.html @@ -0,0 +1,175 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} + +
+ {% if visitor.uid > 0 %} + + {% endif %} +

{{ i18n("messages","reply.replies") }} ({{ replies.size() }})

+
+ + +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} \ No newline at end of file diff --git a/src/main/resources/templates/views/users.html b/src/main/resources/templates/views/users.html new file mode 100644 index 00000000..702ba6b9 --- /dev/null +++ b/src/main/resources/templates/views/users.html @@ -0,0 +1,17 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +
+ {% for u in users %} + + + {{ u.name }} + {{ u.name }} + + + {% endfor %} +
+{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} \ No newline at end of file -- cgit v1.2.3