From 93fe99d9bfc9ae00f4164ea0ba32290722dff4dd Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Wed, 31 Mar 2021 00:44:49 +0300
Subject: Resource filtering is handled by Spring Boot Maven plugin
---
src/main/resources-filtered/1x1.png | Bin 95 -> 0 bytes
src/main/resources-filtered/Transparent.gif | Bin 42 -> 0 bytes
src/main/resources-filtered/banner.txt | 13 -
src/main/resources-filtered/data-h2.sql | 9 -
src/main/resources-filtered/errors.properties | 20 -
src/main/resources-filtered/errors_ru.properties | 20 -
src/main/resources-filtered/juick-test-key.p12 | Bin 2389 -> 0 bytes
src/main/resources-filtered/juick.png | Bin 4298 -> 0 bytes
src/main/resources-filtered/messages.properties | 98 --
src/main/resources-filtered/messages_ru.properties | 96 --
src/main/resources-filtered/pg_schema_wip | 1539 --------------------
src/main/resources-filtered/rome.properties | 19 -
src/main/resources-filtered/schema-h2.sql | 397 -----
src/main/resources-filtered/static/av-96.png | Bin 2018 -> 0 bytes
src/main/resources-filtered/static/durov.png | Bin 31025 -> 0 bytes
src/main/resources-filtered/static/favicon.png | Bin 244 -> 0 bytes
src/main/resources-filtered/static/logo.png | Bin 1184 -> 0 bytes
src/main/resources-filtered/static/logo@2x.png | Bin 4822 -> 0 bytes
src/main/resources-filtered/static/tagscloud.png | Bin 42316 -> 0 bytes
.../resources-filtered/templates/email/html.html | 10 -
.../templates/email/plaintext.html | 5 -
.../templates/layouts/default.html | 54 -
.../templates/layouts/login.html | 280 ----
.../resources-filtered/templates/layouts/note.html | 5 -
.../resources-filtered/templates/views/404.html | 11 -
.../resources-filtered/templates/views/blog.html | 24 -
.../templates/views/blog_tags.html | 10 -
.../resources-filtered/templates/views/help.html | 12 -
.../resources-filtered/templates/views/index.html | 29 -
.../templates/views/login_success.html | 13 -
.../templates/views/macros/tags.html | 11 -
.../templates/views/partial/footer.html | 11 -
.../templates/views/partial/homecolumn.html | 25 -
.../templates/views/partial/message.html | 87 --
.../templates/views/partial/navigation.html | 43 -
.../templates/views/partial/settings_tabs.html | 11 -
.../templates/views/partial/tagcolumn.html | 26 -
.../templates/views/partial/tags.html | 3 -
.../templates/views/partial/usercolumn.html | 93 --
.../templates/views/partial/usertags.html | 3 -
.../templates/views/pm_inbox.html | 35 -
.../templates/views/pm_sent.html | 33 -
.../resources-filtered/templates/views/post.html | 22 -
.../templates/views/post_success.html | 19 -
.../templates/views/settings_about.html | 20 -
.../templates/views/settings_auth-email.html | 9 -
.../templates/views/settings_main.html | 154 --
.../templates/views/settings_password.html | 17 -
.../templates/views/settings_privacy.html | 9 -
.../templates/views/settings_result.html | 9 -
.../resources-filtered/templates/views/signup.html | 43 -
.../templates/views/signup_result.html | 6 -
.../resources-filtered/templates/views/thread.html | 188 ---
.../resources-filtered/templates/views/users.html | 17 -
src/main/resources-filtered/testkey.p8 | 5 -
src/main/resources/1x1.png | Bin 0 -> 95 bytes
src/main/resources/Transparent.gif | Bin 0 -> 42 bytes
src/main/resources/banner.txt | 13 +
src/main/resources/data-h2.sql | 9 +
src/main/resources/errors.properties | 20 +
src/main/resources/errors_ru.properties | 20 +
src/main/resources/juick-test-key.p12 | Bin 0 -> 2389 bytes
src/main/resources/juick.png | Bin 0 -> 4298 bytes
src/main/resources/messages.properties | 98 ++
src/main/resources/messages_ru.properties | 96 ++
src/main/resources/pg_schema_wip | 1539 ++++++++++++++++++++
src/main/resources/rome.properties | 19 +
src/main/resources/schema-h2.sql | 397 +++++
src/main/resources/static/av-96.png | Bin 0 -> 2018 bytes
src/main/resources/static/durov.png | Bin 0 -> 31025 bytes
src/main/resources/static/favicon.png | Bin 0 -> 244 bytes
src/main/resources/static/logo.png | Bin 0 -> 1184 bytes
src/main/resources/static/logo@2x.png | Bin 0 -> 4822 bytes
src/main/resources/static/tagscloud.png | Bin 0 -> 42316 bytes
src/main/resources/templates/email/html.html | 10 +
src/main/resources/templates/email/plaintext.html | 5 +
src/main/resources/templates/layouts/default.html | 54 +
src/main/resources/templates/layouts/login.html | 280 ++++
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 | 12 +
src/main/resources/templates/views/index.html | 29 +
.../resources/templates/views/login_success.html | 13 +
.../resources/templates/views/macros/tags.html | 11 +
.../resources/templates/views/partial/footer.html | 11 +
.../templates/views/partial/homecolumn.html | 25 +
.../resources/templates/views/partial/message.html | 87 ++
.../templates/views/partial/navigation.html | 43 +
.../templates/views/partial/settings_tabs.html | 11 +
.../templates/views/partial/tagcolumn.html | 26 +
.../resources/templates/views/partial/tags.html | 3 +
.../templates/views/partial/usercolumn.html | 93 ++
.../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 | 22 +
.../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 | 154 ++
.../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 +
.../resources/templates/views/signup_result.html | 6 +
src/main/resources/templates/views/thread.html | 188 +++
src/main/resources/templates/views/users.html | 17 +
src/main/resources/testkey.p8 | 5 +
110 files changed, 3563 insertions(+), 3563 deletions(-)
delete mode 100644 src/main/resources-filtered/1x1.png
delete mode 100644 src/main/resources-filtered/Transparent.gif
delete mode 100644 src/main/resources-filtered/banner.txt
delete mode 100644 src/main/resources-filtered/data-h2.sql
delete mode 100644 src/main/resources-filtered/errors.properties
delete mode 100644 src/main/resources-filtered/errors_ru.properties
delete mode 100644 src/main/resources-filtered/juick-test-key.p12
delete mode 100644 src/main/resources-filtered/juick.png
delete mode 100644 src/main/resources-filtered/messages.properties
delete mode 100644 src/main/resources-filtered/messages_ru.properties
delete mode 100644 src/main/resources-filtered/pg_schema_wip
delete mode 100644 src/main/resources-filtered/rome.properties
delete mode 100644 src/main/resources-filtered/schema-h2.sql
delete mode 100644 src/main/resources-filtered/static/av-96.png
delete mode 100644 src/main/resources-filtered/static/durov.png
delete mode 100644 src/main/resources-filtered/static/favicon.png
delete mode 100644 src/main/resources-filtered/static/logo.png
delete mode 100644 src/main/resources-filtered/static/logo@2x.png
delete mode 100644 src/main/resources-filtered/static/tagscloud.png
delete mode 100644 src/main/resources-filtered/templates/email/html.html
delete mode 100644 src/main/resources-filtered/templates/email/plaintext.html
delete mode 100644 src/main/resources-filtered/templates/layouts/default.html
delete mode 100644 src/main/resources-filtered/templates/layouts/login.html
delete mode 100644 src/main/resources-filtered/templates/layouts/note.html
delete mode 100644 src/main/resources-filtered/templates/views/404.html
delete mode 100644 src/main/resources-filtered/templates/views/blog.html
delete mode 100644 src/main/resources-filtered/templates/views/blog_tags.html
delete mode 100644 src/main/resources-filtered/templates/views/help.html
delete mode 100644 src/main/resources-filtered/templates/views/index.html
delete mode 100644 src/main/resources-filtered/templates/views/login_success.html
delete mode 100644 src/main/resources-filtered/templates/views/macros/tags.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/footer.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/homecolumn.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/message.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/navigation.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/settings_tabs.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/tagcolumn.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/tags.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/usercolumn.html
delete mode 100644 src/main/resources-filtered/templates/views/partial/usertags.html
delete mode 100644 src/main/resources-filtered/templates/views/pm_inbox.html
delete mode 100644 src/main/resources-filtered/templates/views/pm_sent.html
delete mode 100644 src/main/resources-filtered/templates/views/post.html
delete mode 100644 src/main/resources-filtered/templates/views/post_success.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_about.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_auth-email.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_main.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_password.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_privacy.html
delete mode 100644 src/main/resources-filtered/templates/views/settings_result.html
delete mode 100644 src/main/resources-filtered/templates/views/signup.html
delete mode 100644 src/main/resources-filtered/templates/views/signup_result.html
delete mode 100644 src/main/resources-filtered/templates/views/thread.html
delete mode 100644 src/main/resources-filtered/templates/views/users.html
delete mode 100644 src/main/resources-filtered/testkey.p8
create mode 100644 src/main/resources/1x1.png
create mode 100644 src/main/resources/Transparent.gif
create mode 100644 src/main/resources/banner.txt
create mode 100644 src/main/resources/data-h2.sql
create mode 100644 src/main/resources/errors.properties
create mode 100644 src/main/resources/errors_ru.properties
create mode 100644 src/main/resources/juick-test-key.p12
create mode 100644 src/main/resources/juick.png
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-h2.sql
create mode 100644 src/main/resources/static/av-96.png
create mode 100644 src/main/resources/static/durov.png
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/logo@2x.png
create mode 100644 src/main/resources/static/tagscloud.png
create mode 100644 src/main/resources/templates/email/html.html
create mode 100644 src/main/resources/templates/email/plaintext.html
create mode 100644 src/main/resources/templates/layouts/default.html
create mode 100644 src/main/resources/templates/layouts/login.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_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/signup_result.html
create mode 100644 src/main/resources/templates/views/thread.html
create mode 100644 src/main/resources/templates/views/users.html
create mode 100644 src/main/resources/testkey.p8
(limited to 'src/main')
diff --git a/src/main/resources-filtered/1x1.png b/src/main/resources-filtered/1x1.png
deleted file mode 100644
index 1914264c..00000000
Binary files a/src/main/resources-filtered/1x1.png and /dev/null differ
diff --git a/src/main/resources-filtered/Transparent.gif b/src/main/resources-filtered/Transparent.gif
deleted file mode 100644
index f191b280..00000000
Binary files a/src/main/resources-filtered/Transparent.gif and /dev/null differ
diff --git a/src/main/resources-filtered/banner.txt b/src/main/resources-filtered/banner.txt
deleted file mode 100644
index c81c89f7..00000000
--- a/src/main/resources-filtered/banner.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-${AnsiColor.BRIGHT_RED}
- ___ ___ ___ ___
- /\ \ /\__\ ___ /\ \ /\__\
- \:\ \ /:/ / /\ \ /::\ \ /:/ /
- ___ /::\__\ /:/ / \:\ \ /:/\:\ \ /:/__/
- /\ /:/\/__/ /:/ / ___ /::\__\ /:/ \:\ \ /::\__\____
- \:\/:/ / /:/__/ /\__\ __/:/\/__/ /:/__/ \:\__\ /:/\:::::\__\
- \::/ / \:\ \ /:/ / /\/:/ / \:\ \ \/__/ \/_|:|~~|~
- \/__/ \:\ /:/ / \::/__/ \:\ \ |:| |
- \:\/:/ / \:\__\ \:\ \ |:| |
- \::/ / \/__/ \:\__\ |:| |
- \/__/ \/__/ \|__|
-${AnsiColor.DEFAULT}
diff --git a/src/main/resources-filtered/data-h2.sql b/src/main/resources-filtered/data-h2.sql
deleted file mode 100644
index aff3e286..00000000
--- a/src/main/resources-filtered/data-h2.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-INSERT INTO users(id, nick, passw) VALUES(0, 'Anonymous', 'password');
-INSERT INTO tags(tag_id, name) VALUES(2, 'juick');
-INSERT INTO reactions (like_id, description) VALUES (1, 'like');
-INSERT INTO reactions (like_id, description) VALUES (2, 'love');
-INSERT INTO reactions (like_id, description) VALUES (3, 'lol');
-INSERT INTO reactions (like_id, description) VALUES (4, 'hmm');
-INSERT INTO reactions (like_id, description) VALUES (5, 'angry');
-INSERT INTO reactions (like_id, description) VALUES (6, 'uhblya');
-INSERT INTO reactions (like_id, description) VALUES (7, 'ugh');
diff --git a/src/main/resources-filtered/errors.properties b/src/main/resources-filtered/errors.properties
deleted file mode 100644
index 6040582e..00000000
--- a/src/main/resources-filtered/errors.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Copyright (C) 2008-2020, Juick
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-
-error.title = Error page
-
-error.login=Wrong user or password
\ No newline at end of file
diff --git a/src/main/resources-filtered/errors_ru.properties b/src/main/resources-filtered/errors_ru.properties
deleted file mode 100644
index a803a7cd..00000000
--- a/src/main/resources-filtered/errors_ru.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Copyright (C) 2008-2020, Juick
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-
-error.title = Произошла ошибка
-
-error.login=Произошла ошибка, проверьте имя пользователя и пароль
\ No newline at end of file
diff --git a/src/main/resources-filtered/juick-test-key.p12 b/src/main/resources-filtered/juick-test-key.p12
deleted file mode 100644
index 254004ec..00000000
Binary files a/src/main/resources-filtered/juick-test-key.p12 and /dev/null differ
diff --git a/src/main/resources-filtered/juick.png b/src/main/resources-filtered/juick.png
deleted file mode 100644
index a7b0e901..00000000
Binary files a/src/main/resources-filtered/juick.png and /dev/null differ
diff --git a/src/main/resources-filtered/messages.properties b/src/main/resources-filtered/messages.properties
deleted file mode 100644
index 2aceae3d..00000000
--- a/src/main/resources-filtered/messages.properties
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# Copyright (C) 2008-2020, Juick
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-
-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 100 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
-title.search=Search:
-
-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=Ignored
-blog.messages=Messages
-blog.comments=Comments
-blog.allPostsWithTag=All posts tagged
diff --git a/src/main/resources-filtered/messages_ru.properties b/src/main/resources-filtered/messages_ru.properties
deleted file mode 100644
index 487bf7d7..00000000
--- a/src/main/resources-filtered/messages_ru.properties
+++ /dev/null
@@ -1,96 +0,0 @@
-#
-# Copyright (C) 2008-2020, Juick
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-
-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, до 100 Мб
-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=Популярные
-title.search=Поиск:
-
-error.pageNotFound=Страница не найдена
-error.pageNotFound.description=Сожалеем, но страницу с этим адресом удалил её автор, либо её никогда не существовало.
-
-blog.blog=Блог
-blog.recommendations=Рекомендации
-blog.photos=Фотографии
-blog.iread=Я читаю
-blog.readers=Мои подписчики
-blog.bl=Игнорирую
-blog.messages=Сообщения
-blog.comments=Комментарии
-blog.allPostsWithTag=Все записи с тегом
diff --git a/src/main/resources-filtered/pg_schema_wip b/src/main/resources-filtered/pg_schema_wip
deleted file mode 100644
index 61178495..00000000
--- a/src/main/resources-filtered/pg_schema_wip
+++ /dev/null
@@ -1,1539 +0,0 @@
---
--- 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-filtered/rome.properties b/src/main/resources-filtered/rome.properties
deleted file mode 100644
index a50de51b..00000000
--- a/src/main/resources-filtered/rome.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 2008-2020, Juick
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-
-rss_2.0.item.ModuleParser.classes=com.juick.www.rss.extension.JuickModuleParser
-rss_2.0.item.ModuleGenerator.classes=com.juick.www.rss.extension.JuickModuleGenerator
\ No newline at end of file
diff --git a/src/main/resources-filtered/schema-h2.sql b/src/main/resources-filtered/schema-h2.sql
deleted file mode 100644
index c1b398bd..00000000
--- a/src/main/resources-filtered/schema-h2.sql
+++ /dev/null
@@ -1,397 +0,0 @@
-SET DB_CLOSE_ON_EXIT TRUE;
-SET MODE=MYSQL;
-
-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(0),
- `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-filtered/static/av-96.png b/src/main/resources-filtered/static/av-96.png
deleted file mode 100644
index 911c0522..00000000
Binary files a/src/main/resources-filtered/static/av-96.png and /dev/null differ
diff --git a/src/main/resources-filtered/static/durov.png b/src/main/resources-filtered/static/durov.png
deleted file mode 100644
index abb80940..00000000
Binary files a/src/main/resources-filtered/static/durov.png and /dev/null differ
diff --git a/src/main/resources-filtered/static/favicon.png b/src/main/resources-filtered/static/favicon.png
deleted file mode 100644
index bc7161e2..00000000
Binary files a/src/main/resources-filtered/static/favicon.png and /dev/null differ
diff --git a/src/main/resources-filtered/static/logo.png b/src/main/resources-filtered/static/logo.png
deleted file mode 100644
index 933f6099..00000000
Binary files a/src/main/resources-filtered/static/logo.png and /dev/null differ
diff --git a/src/main/resources-filtered/static/logo@2x.png b/src/main/resources-filtered/static/logo@2x.png
deleted file mode 100644
index 6febeaf9..00000000
Binary files a/src/main/resources-filtered/static/logo@2x.png and /dev/null differ
diff --git a/src/main/resources-filtered/static/tagscloud.png b/src/main/resources-filtered/static/tagscloud.png
deleted file mode 100644
index 3e1bf169..00000000
Binary files a/src/main/resources-filtered/static/tagscloud.png and /dev/null differ
diff --git a/src/main/resources-filtered/templates/email/html.html b/src/main/resources-filtered/templates/email/html.html
deleted file mode 100644
index 086df532..00000000
--- a/src/main/resources-filtered/templates/email/html.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{{ messageBody | raw }}
-
-
---
-
-You are receiving this because you are subscribed to this user, discussion, tag or mentioned.
-Reply to this email directly or
- {% if msg.mid > 0 %} {% endif %}view it on Juick.
-
-Configure or disable notifications
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/email/plaintext.html b/src/main/resources-filtered/templates/email/plaintext.html
deleted file mode 100644
index a0df0038..00000000
--- a/src/main/resources-filtered/templates/email/plaintext.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{{ messageBody }}
-
---
-You are receiving this because you are subscribed to this user, discussion, tag or mentioned.
-Reply to this email directly or view it on Juick: {{ messageUrl }}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/layouts/default.html b/src/main/resources-filtered/templates/layouts/default.html
deleted file mode 100644
index d3ce7dce..00000000
--- a/src/main/resources-filtered/templates/layouts/default.html
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
- {% block headers %}
- {{ headers | default('') | raw }}
- {% endblock %}
- {{ title | default('Juick') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0 %}data-hash="{{visitor.authHash}}" {% endif %}>
-
- {% include "views/partial/navigation" %}
-
-
-
- {% block content %}
- {% endblock %}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/layouts/login.html b/src/main/resources-filtered/templates/layouts/login.html
deleted file mode 100644
index 4a3be9b8..00000000
--- a/src/main/resources-filtered/templates/layouts/login.html
+++ /dev/null
@@ -1,280 +0,0 @@
-
-
-
-
- Juick
-
-
-
-
-
-
-
-
-
-
-
-
- {{ i18n("messages","label.register") }}:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/layouts/note.html b/src/main/resources-filtered/templates/layouts/note.html
deleted file mode 100644
index e832dc63..00000000
--- a/src/main/resources-filtered/templates/layouts/note.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% import "views/macros/tags" %}
-{{ msg | formatMessage }}
-{% if msg.tags | length > 0 %}
-{{ allTags(baseUri, msg.tags | tagsList) }}
-{% endif %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/404.html b/src/main/resources-filtered/templates/views/404.html
deleted file mode 100644
index 02a790e6..00000000
--- a/src/main/resources-filtered/templates/views/404.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{% 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-filtered/templates/views/blog.html b/src/main/resources-filtered/templates/views/blog.html
deleted file mode 100644
index 8d6a6581..00000000
--- a/src/main/resources-filtered/templates/views/blog.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% 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 %}
-{{ i18n("messages","messages.next") }} →
-{% endif %}
-{% if noindex %}
-
-{% endif %}
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/blog_tags.html b/src/main/resources-filtered/templates/views/blog_tags.html
deleted file mode 100644
index 48e517eb..00000000
--- a/src/main/resources-filtered/templates/views/blog_tags.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% 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-filtered/templates/views/help.html b/src/main/resources-filtered/templates/views/help.html
deleted file mode 100644
index 169ccb3f..00000000
--- a/src/main/resources-filtered/templates/views/help.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% 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-filtered/templates/views/index.html b/src/main/resources-filtered/templates/views/index.html
deleted file mode 100644
index e85a3aa1..00000000
--- a/src/main/resources-filtered/templates/views/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-{% 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 %}
-{{ i18n("messages","messages.next") }} →
-{% endif %}
-{% if noindex %}
-
-{% 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 %}
-{% endblock %}
diff --git a/src/main/resources-filtered/templates/views/login_success.html b/src/main/resources-filtered/templates/views/login_success.html
deleted file mode 100644
index ee71f12f..00000000
--- a/src/main/resources-filtered/templates/views/login_success.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- Blank window
-
-
-
-
-
diff --git a/src/main/resources-filtered/templates/views/macros/tags.html b/src/main/resources-filtered/templates/views/macros/tags.html
deleted file mode 100644
index 08687f5a..00000000
--- a/src/main/resources-filtered/templates/views/macros/tags.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{% macro tags(uname="", tagsList) %}
-{% for tag in tagsList %}
-{{ tag }}
-{% endfor %}
-{% endmacro %}
-
-{% macro allTags(baseUri, tagsList) %}
-{% for tag in tagsList %}
-#{{ tag }}
-{% endfor %}
-{% endmacro %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/footer.html b/src/main/resources-filtered/templates/views/partial/footer.html
deleted file mode 100644
index 9a627373..00000000
--- a/src/main/resources-filtered/templates/views/partial/footer.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/main/resources-filtered/templates/views/partial/homecolumn.html b/src/main/resources-filtered/templates/views/partial/homecolumn.html
deleted file mode 100644
index a4cca153..00000000
--- a/src/main/resources-filtered/templates/views/partial/homecolumn.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-{% include "views/partial/footer" %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/message.html b/src/main/resources-filtered/templates/views/partial/message.html
deleted file mode 100644
index 47dfb6c5..00000000
--- a/src/main/resources-filtered/templates/views/partial/message.html
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
- {{ tags(msg.user.name, msg.tags | tagsList) }}
-
- {{ msg | formatMessage }}
-
- {% if msg.AttachmentType is not empty %}
-
-
-
- {% endif %}
-
- {% if visitor.uid == msg.user.uid %}
-
-
-
- {% if msg.likes > 0 %} {{ msg.likes }}
- {% else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
- {% elseif visitor.uid > 0 %}
-
-
-
- {% if msg.likes > 0 %} {{ msg.likes }}
- {% else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
- {% else %}
-
-
-
- {% if msg.likes > 0 %}
- {{ msg.likes }}
- {% else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
-
- {% endif %}
- {% if (not msg.ReadOnly) or (visitor.uid == msg.user.uid) %}
-
- {% endif %}
-
-
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/navigation.html b/src/main/resources-filtered/templates/views/partial/navigation.html
deleted file mode 100644
index 184c8f2b..00000000
--- a/src/main/resources-filtered/templates/views/partial/navigation.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
diff --git a/src/main/resources-filtered/templates/views/partial/settings_tabs.html b/src/main/resources-filtered/templates/views/partial/settings_tabs.html
deleted file mode 100644
index 00f7068a..00000000
--- a/src/main/resources-filtered/templates/views/partial/settings_tabs.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- {% include "views/partial/footer" %}
-
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/tagcolumn.html b/src/main/resources-filtered/templates/views/partial/tagcolumn.html
deleted file mode 100644
index a7728ef3..00000000
--- a/src/main/resources-filtered/templates/views/partial/tagcolumn.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
*{{ tag.name }}
-
-{% if visitor is not empty and visitor.uid > 0 %}
-
-{% endif %}
-{% include "views/partial/footer" %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/tags.html b/src/main/resources-filtered/templates/views/partial/tags.html
deleted file mode 100644
index 4d05b7fb..00000000
--- a/src/main/resources-filtered/templates/views/partial/tags.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for tag in tags %}
- {{ tag }}
-{% endfor %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/usercolumn.html b/src/main/resources-filtered/templates/views/partial/usercolumn.html
deleted file mode 100644
index ee9ab267..00000000
--- a/src/main/resources-filtered/templates/views/partial/usercolumn.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- {% include "views/partial/usertags" %}
-
-
-
- {% if iread is not empty %}
-
- {% for u in iread %}
-
-
-
-
-
- {% endfor %}
-
- {% endif %}
-
-
-{% include "views/partial/footer" %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/partial/usertags.html b/src/main/resources-filtered/templates/views/partial/usertags.html
deleted file mode 100644
index 71d1303e..00000000
--- a/src/main/resources-filtered/templates/views/partial/usertags.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{% import "views/macros/tags" %}
-{{ tags(user.name, tagStats) }}
-...
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/pm_inbox.html b/src/main/resources-filtered/templates/views/pm_inbox.html
deleted file mode 100644
index f89b2923..00000000
--- a/src/main/resources-filtered/templates/views/pm_inbox.html
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends "layouts/default" %}
-{% block content %}
-{% if not msgs.isEmpty() %}
-
- {% for msg in msgs %}
-
-
-
-
-
{{ msg | formatMessage }}
-
-
-
- {% endfor %}
-
-{% endif %}
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
diff --git a/src/main/resources-filtered/templates/views/pm_sent.html b/src/main/resources-filtered/templates/views/pm_sent.html
deleted file mode 100644
index f0af71d3..00000000
--- a/src/main/resources-filtered/templates/views/pm_sent.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "layouts/default" %}
-{% block content %}
-
-{% if not msgs.isEmpty() %}
-
- {% for msg in msgs %}
-
-
-
-
{{ msg | formatMessage }}
-
-
- {% endfor %}
-
-{% endif %}
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
diff --git a/src/main/resources-filtered/templates/views/post.html b/src/main/resources-filtered/templates/views/post.html
deleted file mode 100644
index a77fa3bd..00000000
--- a/src/main/resources-filtered/templates/views/post.html
+++ /dev/null
@@ -1,22 +0,0 @@
-{% extends "layouts/default" %}
-{% import "views/macros/tags" %}
-{% block content %}
-
-
-
- Фото:
- ({{ i18n("messages","postForm.imageFormats") }})
-
-
- {{ body }}
-
-
-
-
-
-Теги:
-{{ tags(visitor.name, tags) }}
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
diff --git a/src/main/resources-filtered/templates/views/post_success.html b/src/main/resources-filtered/templates/views/post_success.html
deleted file mode 100644
index 2106f3cb..00000000
--- a/src/main/resources-filtered/templates/views/post_success.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{% 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-filtered/templates/views/settings_about.html b/src/main/resources-filtered/templates/views/settings_about.html
deleted file mode 100644
index 5e308671..00000000
--- a/src/main/resources-filtered/templates/views/settings_about.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{% 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-filtered/templates/views/settings_auth-email.html b/src/main/resources-filtered/templates/views/settings_auth-email.html
deleted file mode 100644
index e906d704..00000000
--- a/src/main/resources-filtered/templates/views/settings_auth-email.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% 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-filtered/templates/views/settings_main.html b/src/main/resources-filtered/templates/views/settings_main.html
deleted file mode 100644
index a6cca7a3..00000000
--- a/src/main/resources-filtered/templates/views/settings_main.html
+++ /dev/null
@@ -1,154 +0,0 @@
-{% extends "layouts/default" %}
-{% block content %}
-
- Настройки
- {%if not visitor.verified %}
- Verify your account by adding email or social account
- {% endif %}
-
-
- 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 %}
- {{ jid }}
- {% endfor %}
- {% for auth in auths %}
- {{ auth.account }}
- — 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 %}
- {{ email }}
- {% 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
- Disabled
- {% for email in emails %}
-
- {{ email }}
-
- {% endfor %}
-
-
-
-
-
- {% 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:
- {% endif %}
-
-
-
- Twitter
- {% if twitter_name is not empty %}
-
- Twitter: {{ twitter_name }} —
-
-
-
-
- {% else %}
- Cross-posting to Twitter:
- {% endif %}
-
-
-
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/settings_tabs" %}
-{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/settings_password.html b/src/main/resources-filtered/templates/views/settings_password.html
deleted file mode 100644
index 99c1676e..00000000
--- a/src/main/resources-filtered/templates/views/settings_password.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% 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-filtered/templates/views/settings_privacy.html b/src/main/resources-filtered/templates/views/settings_privacy.html
deleted file mode 100644
index 83b87b93..00000000
--- a/src/main/resources-filtered/templates/views/settings_privacy.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% 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-filtered/templates/views/settings_result.html b/src/main/resources-filtered/templates/views/settings_result.html
deleted file mode 100644
index d87a5ea6..00000000
--- a/src/main/resources-filtered/templates/views/settings_result.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% 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-filtered/templates/views/signup.html b/src/main/resources-filtered/templates/views/signup.html
deleted file mode 100644
index d6eb921f..00000000
--- a/src/main/resources-filtered/templates/views/signup.html
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "layouts/default" %}
-{% block content %}
-
- {% if type | slice(0, 1) == 'f' %}
-
- {% elseif type | slice(0, 1) == 'v' %}
-
- {% elseif type | slice(0, 1) == 'e' %}
-
- {% elseif type | slice(0, 1) == 'd' %}
-
- {% 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-filtered/templates/views/signup_result.html b/src/main/resources-filtered/templates/views/signup_result.html
deleted file mode 100644
index b204e1b8..00000000
--- a/src/main/resources-filtered/templates/views/signup_result.html
+++ /dev/null
@@ -1,6 +0,0 @@
-{% extends "layouts/default" %}
-{% block content %}
-
- {{ result | raw }}
-
-{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/thread.html b/src/main/resources-filtered/templates/views/thread.html
deleted file mode 100644
index f1563a7c..00000000
--- a/src/main/resources-filtered/templates/views/thread.html
+++ /dev/null
@@ -1,188 +0,0 @@
-{% extends "layouts/default" %}
-{% import "views/macros/tags" %}
-{% block content %}
-
-
-
-
-
-
- {{ tags(msg.user.name, msg.tags | tagsList) }}
-
- {{ msg | formatMessage }}
-
- {% if msg.AttachmentType is not empty %}
-
- {% endif %}
-
- {% if visitor.uid == msg.user.uid %}
-
-
-
- {% if msg.Likes > 0 %} {{ msg.Likes }}
- {% else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
- {% elseif visitor.uid > 0 %}
-
-
-
- {% if msg.Likes > 0 %} {{ msg.Likes }}
- {% else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
- {% else %}
-
-
-
- {% if msg.Likes > 0 %} {{ msg.Likes }}
- {%else %}
- {{ i18n("messages","message.recommend") }}
- {% endif %}
-
-
- {% endif %}
- {% if visitor.uid > 0 %}
- {% if visitor.uid != msg.user.uid %}
- {% if visitorSubscribed %}
-
-
- {{ i18n("messages","message.subscribed") }}
-
- {% else %}
-
-
- {{ i18n("messages","message.subscribe") }}
-
- {% endif %}
- {% else %}
-
-
- {{ i18n("messages","message.delete") }}
-
- {% endif %}
- {% endif %}
-
- {% if msg.VisitorCanComment %}
-
- {% endif %}
- {% if recomm is not empty %}
-
{{ i18n("messages","message.recommendedBy") }}
- {% for rec in recomm %}
- {% if rec.uri.toString() is empty %}
-
@{{ rec.name }} {% if loop.index < (loop.length - 1) %}, {% endif %}
- {% else %}
-
@{{ rec.name }} {% if loop.index < (loop.length - 1) %}, {% endif %}
- {% endif %}
- {% endfor %}
- {% if msg.likes > recomm.size() %}
- {{ i18n("messages","message.recommendedOthers", msg.likes - recomm.size()) }}
- {% endif %}
-
- {% endif %}
-
-
-
-
- {% if visitor.uid > 0 %}
-
- {% endif %}
-
{{ i18n("messages","reply.replies") }} ({{ replies.size() }})
-
-
-
- {% for msg in replies %}
-
-
-
-
{{ msg | formatMessage }}
- {% if msg.AttachmentType is not empty %}
-
- {% endif %}
-
/{{ msg.rid }}
- {% if msg.replyto > 0 %}
- {{ i18n("messages","reply.inReplyTo") }}
/{{ msg.replyto }}
- {% endif %}
- {% if msg.VisitorCanComment %}
- ·
-
-
- {% elseif visitor.uid == 0 %}
- ·
{{ i18n("messages","reply.reply") }}
-
- {% else %}
-
- {% endif %}
-
-
- {% endfor %}
-
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/templates/views/users.html b/src/main/resources-filtered/templates/views/users.html
deleted file mode 100644
index 702ba6b9..00000000
--- a/src/main/resources-filtered/templates/views/users.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% extends "layouts/default" %}
-{% import "views/macros/tags" %}
-{% block content %}
-
-{% endblock %}
-{% block "column" %}
-{% include "views/partial/usercolumn" %}
-{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources-filtered/testkey.p8 b/src/main/resources-filtered/testkey.p8
deleted file mode 100644
index 1e5d0f98..00000000
--- a/src/main/resources-filtered/testkey.p8
+++ /dev/null
@@ -1,5 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg72/yb71r7uVirjpf
-vjAPZ5aUR0si2c1yH6Lt/NlhWcWhRANCAAQydvu0D1+DTVM0/U0rbxHfkG3AswYw
-hZZk58QvxSbxoBcmoLLMKAuaNBCVg+4I0xKvCfB0dkIjRATNpveON8y3
------END PRIVATE KEY-----
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/banner.txt b/src/main/resources/banner.txt
new file mode 100644
index 00000000..c81c89f7
--- /dev/null
+++ b/src/main/resources/banner.txt
@@ -0,0 +1,13 @@
+${AnsiColor.BRIGHT_RED}
+ ___ ___ ___ ___
+ /\ \ /\__\ ___ /\ \ /\__\
+ \:\ \ /:/ / /\ \ /::\ \ /:/ /
+ ___ /::\__\ /:/ / \:\ \ /:/\:\ \ /:/__/
+ /\ /:/\/__/ /:/ / ___ /::\__\ /:/ \:\ \ /::\__\____
+ \:\/:/ / /:/__/ /\__\ __/:/\/__/ /:/__/ \:\__\ /:/\:::::\__\
+ \::/ / \:\ \ /:/ / /\/:/ / \:\ \ \/__/ \/_|:|~~|~
+ \/__/ \:\ /:/ / \::/__/ \:\ \ |:| |
+ \:\/:/ / \:\__\ \:\ \ |:| |
+ \::/ / \/__/ \:\__\ |:| |
+ \/__/ \/__/ \|__|
+${AnsiColor.DEFAULT}
diff --git a/src/main/resources/data-h2.sql b/src/main/resources/data-h2.sql
new file mode 100644
index 00000000..aff3e286
--- /dev/null
+++ b/src/main/resources/data-h2.sql
@@ -0,0 +1,9 @@
+INSERT INTO users(id, nick, passw) VALUES(0, 'Anonymous', 'password');
+INSERT INTO tags(tag_id, name) VALUES(2, 'juick');
+INSERT INTO reactions (like_id, description) VALUES (1, 'like');
+INSERT INTO reactions (like_id, description) VALUES (2, 'love');
+INSERT INTO reactions (like_id, description) VALUES (3, 'lol');
+INSERT INTO reactions (like_id, description) VALUES (4, 'hmm');
+INSERT INTO reactions (like_id, description) VALUES (5, 'angry');
+INSERT INTO reactions (like_id, description) VALUES (6, 'uhblya');
+INSERT INTO reactions (like_id, description) VALUES (7, 'ugh');
diff --git a/src/main/resources/errors.properties b/src/main/resources/errors.properties
new file mode 100644
index 00000000..6040582e
--- /dev/null
+++ b/src/main/resources/errors.properties
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2008-2020, Juick
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+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..a803a7cd
--- /dev/null
+++ b/src/main/resources/errors_ru.properties
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2008-2020, Juick
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+error.title = Произошла ошибка
+
+error.login=Произошла ошибка, проверьте имя пользователя и пароль
\ No newline at end of file
diff --git a/src/main/resources/juick-test-key.p12 b/src/main/resources/juick-test-key.p12
new file mode 100644
index 00000000..254004ec
Binary files /dev/null and b/src/main/resources/juick-test-key.p12 differ
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/messages.properties b/src/main/resources/messages.properties
new file mode 100644
index 00000000..2aceae3d
--- /dev/null
+++ b/src/main/resources/messages.properties
@@ -0,0 +1,98 @@
+#
+# Copyright (C) 2008-2020, Juick
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+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 100 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
+title.search=Search:
+
+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=Ignored
+blog.messages=Messages
+blog.comments=Comments
+blog.allPostsWithTag=All posts tagged
diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties
new file mode 100644
index 00000000..487bf7d7
--- /dev/null
+++ b/src/main/resources/messages_ru.properties
@@ -0,0 +1,96 @@
+#
+# Copyright (C) 2008-2020, Juick
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+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, до 100 Мб
+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=Популярные
+title.search=Поиск:
+
+error.pageNotFound=Страница не найдена
+error.pageNotFound.description=Сожалеем, но страницу с этим адресом удалил её автор, либо её никогда не существовало.
+
+blog.blog=Блог
+blog.recommendations=Рекомендации
+blog.photos=Фотографии
+blog.iread=Я читаю
+blog.readers=Мои подписчики
+blog.bl=Игнорирую
+blog.messages=Сообщения
+blog.comments=Комментарии
+blog.allPostsWithTag=Все записи с тегом
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..a50de51b
--- /dev/null
+++ b/src/main/resources/rome.properties
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2008-2020, Juick
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+rss_2.0.item.ModuleParser.classes=com.juick.www.rss.extension.JuickModuleParser
+rss_2.0.item.ModuleGenerator.classes=com.juick.www.rss.extension.JuickModuleGenerator
\ No newline at end of file
diff --git a/src/main/resources/schema-h2.sql b/src/main/resources/schema-h2.sql
new file mode 100644
index 00000000..c1b398bd
--- /dev/null
+++ b/src/main/resources/schema-h2.sql
@@ -0,0 +1,397 @@
+SET DB_CLOSE_ON_EXIT TRUE;
+SET MODE=MYSQL;
+
+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(0),
+ `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/av-96.png b/src/main/resources/static/av-96.png
new file mode 100644
index 00000000..911c0522
Binary files /dev/null and b/src/main/resources/static/av-96.png differ
diff --git a/src/main/resources/static/durov.png b/src/main/resources/static/durov.png
new file mode 100644
index 00000000..abb80940
Binary files /dev/null and b/src/main/resources/static/durov.png differ
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/logo@2x.png b/src/main/resources/static/logo@2x.png
new file mode 100644
index 00000000..6febeaf9
Binary files /dev/null and b/src/main/resources/static/logo@2x.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/email/html.html b/src/main/resources/templates/email/html.html
new file mode 100644
index 00000000..086df532
--- /dev/null
+++ b/src/main/resources/templates/email/html.html
@@ -0,0 +1,10 @@
+{{ messageBody | raw }}
+
+
+--
+
+You are receiving this because you are subscribed to this user, discussion, tag or mentioned.
+Reply to this email directly or
+ {% if msg.mid > 0 %} {% endif %}view it on Juick.
+
+Configure or disable notifications
\ No newline at end of file
diff --git a/src/main/resources/templates/email/plaintext.html b/src/main/resources/templates/email/plaintext.html
new file mode 100644
index 00000000..a0df0038
--- /dev/null
+++ b/src/main/resources/templates/email/plaintext.html
@@ -0,0 +1,5 @@
+{{ messageBody }}
+
+--
+You are receiving this because you are subscribed to this user, discussion, tag or mentioned.
+Reply to this email directly or view it on Juick: {{ messageUrl }}
\ No newline at end of file
diff --git a/src/main/resources/templates/layouts/default.html b/src/main/resources/templates/layouts/default.html
new file mode 100644
index 00000000..d3ce7dce
--- /dev/null
+++ b/src/main/resources/templates/layouts/default.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+ {% block headers %}
+ {{ headers | default('') | raw }}
+ {% endblock %}
+ {{ title | default('Juick') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 %}data-hash="{{visitor.authHash}}" {% endif %}>
+
+ {% include "views/partial/navigation" %}
+
+
+
+ {% block content %}
+ {% endblock %}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/layouts/login.html b/src/main/resources/templates/layouts/login.html
new file mode 100644
index 00000000..4a3be9b8
--- /dev/null
+++ b/src/main/resources/templates/layouts/login.html
@@ -0,0 +1,280 @@
+
+
+
+
+ Juick
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ i18n("messages","label.register") }}:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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..e832dc63
--- /dev/null
+++ b/src/main/resources/templates/layouts/note.html
@@ -0,0 +1,5 @@
+{% import "views/macros/tags" %}
+{{ msg | formatMessage }}
+{% if msg.tags | length > 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..8d6a6581
--- /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 %}
+{{ i18n("messages","messages.next") }} →
+{% endif %}
+{% if noindex %}
+
+{% endif %}
+{% endblock %}
+{% block "column" %}
+{% include "views/partial/usercolumn" %}
+{% 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..169ccb3f
--- /dev/null
+++ b/src/main/resources/templates/views/help.html
@@ -0,0 +1,12 @@
+{% 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..e85a3aa1
--- /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 %}
+{{ i18n("messages","messages.next") }} →
+{% endif %}
+{% if noindex %}
+
+{% 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 %}
+{% endblock %}
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..08687f5a
--- /dev/null
+++ b/src/main/resources/templates/views/macros/tags.html
@@ -0,0 +1,11 @@
+{% macro tags(uname="", tagsList) %}
+{% for tag in tagsList %}
+{{ tag }}
+{% endfor %}
+{% endmacro %}
+
+{% macro allTags(baseUri, tagsList) %}
+{% for tag in tagsList %}
+#{{ tag }}
+{% 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..9a627373
--- /dev/null
+++ b/src/main/resources/templates/views/partial/footer.html
@@ -0,0 +1,11 @@
+
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..a4cca153
--- /dev/null
+++ b/src/main/resources/templates/views/partial/homecolumn.html
@@ -0,0 +1,25 @@
+
+
+{% include "views/partial/footer" %}
\ 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..47dfb6c5
--- /dev/null
+++ b/src/main/resources/templates/views/partial/message.html
@@ -0,0 +1,87 @@
+
+
+
+
+ {{ tags(msg.user.name, msg.tags | tagsList) }}
+
+ {{ msg | formatMessage }}
+
+ {% if msg.AttachmentType is not empty %}
+
+
+
+ {% endif %}
+
+ {% if visitor.uid == msg.user.uid %}
+
+
+
+ {% if msg.likes > 0 %} {{ msg.likes }}
+ {% else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+ {% elseif visitor.uid > 0 %}
+
+
+
+ {% if msg.likes > 0 %} {{ msg.likes }}
+ {% else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+ {% else %}
+
+
+
+ {% if msg.likes > 0 %}
+ {{ msg.likes }}
+ {% else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+
+ {% endif %}
+ {% if (not msg.ReadOnly) or (visitor.uid == msg.user.uid) %}
+
+ {% 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..184c8f2b
--- /dev/null
+++ b/src/main/resources/templates/views/partial/navigation.html
@@ -0,0 +1,43 @@
+
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..00f7068a
--- /dev/null
+++ b/src/main/resources/templates/views/partial/settings_tabs.html
@@ -0,0 +1,11 @@
+
+
+ {% include "views/partial/footer" %}
+
\ 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..a7728ef3
--- /dev/null
+++ b/src/main/resources/templates/views/partial/tagcolumn.html
@@ -0,0 +1,26 @@
+
+
*{{ tag.name }}
+
+{% if visitor is not empty and visitor.uid > 0 %}
+
+{% endif %}
+{% include "views/partial/footer" %}
\ No newline at end of file
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..4d05b7fb
--- /dev/null
+++ b/src/main/resources/templates/views/partial/tags.html
@@ -0,0 +1,3 @@
+{% for tag in tags %}
+ {{ tag }}
+{% 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..ee9ab267
--- /dev/null
+++ b/src/main/resources/templates/views/partial/usercolumn.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+ {% include "views/partial/usertags" %}
+
+
+
+ {% if iread is not empty %}
+
+ {% for u in iread %}
+
+
+
+
+
+ {% endfor %}
+
+ {% endif %}
+
+
+{% include "views/partial/footer" %}
\ No newline at end of file
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..f89b2923
--- /dev/null
+++ b/src/main/resources/templates/views/pm_inbox.html
@@ -0,0 +1,35 @@
+{% extends "layouts/default" %}
+{% block content %}
+{% if not msgs.isEmpty() %}
+
+ {% for msg in msgs %}
+
+
+
+
+
{{ msg | formatMessage }}
+
+
+
+
+
+
+ {% endfor %}
+
+{% 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..f0af71d3
--- /dev/null
+++ b/src/main/resources/templates/views/pm_sent.html
@@ -0,0 +1,33 @@
+{% extends "layouts/default" %}
+{% block content %}
+
+
+
+{% if not msgs.isEmpty() %}
+
+ {% for msg in msgs %}
+
+
+
+
{{ msg | formatMessage }}
+
+
+ {% endfor %}
+
+{% 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..a77fa3bd
--- /dev/null
+++ b/src/main/resources/templates/views/post.html
@@ -0,0 +1,22 @@
+{% extends "layouts/default" %}
+{% import "views/macros/tags" %}
+{% block content %}
+
+
+
+ Фото:
+ ({{ i18n("messages","postForm.imageFormats") }})
+
+
+ {{ body }}
+
+
+
+
+
+Теги:
+{{ tags(visitor.name, tags) }}
+{% endblock %}
+{% block "column" %}
+{% include "views/partial/usercolumn" %}
+{% endblock %}
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..5e308671
--- /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..a6cca7a3
--- /dev/null
+++ b/src/main/resources/templates/views/settings_main.html
@@ -0,0 +1,154 @@
+{% extends "layouts/default" %}
+{% block content %}
+
+ Настройки
+ {%if not visitor.verified %}
+ Verify your account by adding email or social account
+ {% endif %}
+
+
+ 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 %}
+ {{ jid }}
+ {% endfor %}
+ {% for auth in auths %}
+ {{ auth.account }}
+ — 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 %}
+ {{ email }}
+ {% 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
+ Disabled
+ {% for email in emails %}
+
+ {{ email }}
+
+ {% endfor %}
+
+
+
+
+
+ {% 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:
+ {% endif %}
+
+
+
+ Twitter
+ {% if twitter_name is not empty %}
+
+ Twitter: {{ twitter_name }} —
+
+
+
+
+ {% else %}
+ Cross-posting 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..99c1676e
--- /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' %}
+
+ {% elseif type | slice(0, 1) == 'v' %}
+
+ {% elseif type | slice(0, 1) == 'e' %}
+
+ {% elseif type | slice(0, 1) == 'd' %}
+
+ {% 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/signup_result.html b/src/main/resources/templates/views/signup_result.html
new file mode 100644
index 00000000..b204e1b8
--- /dev/null
+++ b/src/main/resources/templates/views/signup_result.html
@@ -0,0 +1,6 @@
+{% extends "layouts/default" %}
+{% block content %}
+
+ {{ result | raw }}
+
+{% 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..f1563a7c
--- /dev/null
+++ b/src/main/resources/templates/views/thread.html
@@ -0,0 +1,188 @@
+{% extends "layouts/default" %}
+{% import "views/macros/tags" %}
+{% block content %}
+
+
+
+
+
+
+ {{ tags(msg.user.name, msg.tags | tagsList) }}
+
+ {{ msg | formatMessage }}
+
+ {% if msg.AttachmentType is not empty %}
+
+ {% endif %}
+
+ {% if visitor.uid == msg.user.uid %}
+
+
+
+ {% if msg.Likes > 0 %} {{ msg.Likes }}
+ {% else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+ {% elseif visitor.uid > 0 %}
+
+
+
+ {% if msg.Likes > 0 %} {{ msg.Likes }}
+ {% else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+ {% else %}
+
+
+
+ {% if msg.Likes > 0 %} {{ msg.Likes }}
+ {%else %}
+ {{ i18n("messages","message.recommend") }}
+ {% endif %}
+
+
+ {% endif %}
+ {% if visitor.uid > 0 %}
+ {% if visitor.uid != msg.user.uid %}
+ {% if visitorSubscribed %}
+
+
+ {{ i18n("messages","message.subscribed") }}
+
+ {% else %}
+
+
+ {{ i18n("messages","message.subscribe") }}
+
+ {% endif %}
+ {% else %}
+
+
+ {{ i18n("messages","message.delete") }}
+
+ {% endif %}
+ {% endif %}
+
+ {% if msg.VisitorCanComment %}
+
+ {% endif %}
+ {% if recomm is not empty %}
+
{{ i18n("messages","message.recommendedBy") }}
+ {% for rec in recomm %}
+ {% if rec.uri.toString() is empty %}
+
@{{ rec.name }} {% if loop.index < (loop.length - 1) %}, {% endif %}
+ {% else %}
+
@{{ rec.name }} {% if loop.index < (loop.length - 1) %}, {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% if msg.likes > recomm.size() %}
+ {{ i18n("messages","message.recommendedOthers", msg.likes - recomm.size()) }}
+ {% endif %}
+
+ {% endif %}
+
+
+
+
+ {% if visitor.uid > 0 %}
+
+ {% endif %}
+
{{ i18n("messages","reply.replies") }} ({{ replies.size() }})
+
+
+
+ {% for msg in replies %}
+
+
+
+
{{ msg | formatMessage }}
+ {% if msg.AttachmentType is not empty %}
+
+ {% endif %}
+
/{{ msg.rid }}
+ {% if msg.replyto > 0 %}
+ {{ i18n("messages","reply.inReplyTo") }}
/{{ msg.replyto }}
+ {% endif %}
+ {% if msg.VisitorCanComment %}
+ ·
+
+
+ {% elseif visitor.uid == 0 %}
+ ·
{{ i18n("messages","reply.reply") }}
+
+ {% else %}
+
+ {% endif %}
+
+
+ {% endfor %}
+
+{% 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 %}
+
+{% endblock %}
+{% block "column" %}
+{% include "views/partial/usercolumn" %}
+{% endblock %}
\ No newline at end of file
diff --git a/src/main/resources/testkey.p8 b/src/main/resources/testkey.p8
new file mode 100644
index 00000000..1e5d0f98
--- /dev/null
+++ b/src/main/resources/testkey.p8
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg72/yb71r7uVirjpf
+vjAPZ5aUR0si2c1yH6Lt/NlhWcWhRANCAAQydvu0D1+DTVM0/U0rbxHfkG3AswYw
+hZZk58QvxSbxoBcmoLLMKAuaNBCVg+4I0xKvCfB0dkIjRATNpveON8y3
+-----END PRIVATE KEY-----
--
cgit v1.2.3