diff --git a/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java index ba6af97..e6af052 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/SpringConfig.java @@ -23,6 +23,7 @@ public class SpringConfig { @Bean public ViewResolver viewResolver() { FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver(); + viewResolver.setContentType("text/html;charset=UTF-8"); viewResolver.setCache(true); viewResolver.setSuffix(".ftl"); return viewResolver; diff --git a/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java b/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java index 2e3ea30..b6b3e04 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/SpringMvcConfig.java @@ -14,7 +14,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter public class SpringMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/ks3logo.svg") - .addResourceLocations("classpath:/kinosearch/kinosearch3/webpp/"); + final String staticPath = "classpath:/kinosearch/kinosearch3/webpp/static/"; + registry.addResourceHandler("/*.svg").addResourceLocations(staticPath); + registry.addResourceHandler("/*.css").addResourceLocations(staticPath); + registry.addResourceHandler("/*.png").addResourceLocations(staticPath); } } diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java index 68b75c7..3e043c3 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java @@ -18,10 +18,20 @@ public class WebAppController { private final Logger logger = LoggerFactory.getLogger(WebAppController.class); @RequestMapping(value = "/", method = RequestMethod.GET) - public String hello() { + public String index() { return "index"; } + @RequestMapping(value = "/blog.html", method = RequestMethod.GET) + public String blog() { + return "blog"; + } + + @RequestMapping(value = "/about.html", method = RequestMethod.GET) + public String about() { + return "about"; + } + @RequestMapping(value = "/favicon.ico") public void favicon(HttpServletResponse response) { try { diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/about.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/about.ftl new file mode 100644 index 0000000..c67e2fc --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/about.ftl @@ -0,0 +1,38 @@ +[#ftl] +[#include "header.inc.ftl"] +
+ +

KinoSearch - это онлайн-кинотеатр без рекламы.

+ +

+ Да, вот так просто и коротко можно описать данный сервис. Но в отличии от других своих "коллег", + он минималистичен и быстроработающий. Потому что здесь нет рекламы и каких-либо тежеловесных javascript-библиотек. +

+ +

Зачем создавать очередной сайт с сериальчиками?

+ +

+ Наверное потому, что лично меня (автора) заколебала реклама, которая мешает смотреть любимый фильм или сериал. + Да, я прекрасно знаю о существовании блокировщиков рекламы и для чего её пихают на такие сервисы. Все хотят кушать. + Но если бы дело ограничивалось только рекламой на PC, то претензий было бы меньше.
+ Так получается, что мне хочется посмотреть кинцо на мобильном телефоне. И что же случается, когда я открываю страницу с плеером? + Правильно! Куча рекламы. Ну ладно, давайте пролистнём её и... Что? Я просто тапнул на экран, а у меня открылось 3 вкладки с рекламой?? + Причем на одной из таких вкладок была попытка что-то купить "за мой счет" автоматически (спасибо Билайну за отключенную такую услугу). + Когда же я "кликаю" на "play" в плеере, что бы начать просмотр, то вновь открываються 2-3 вкладки с рекламой... +

+

+ И хоть я привожу пример скомпилированный из ситуаций на различный онлайн-кинотеатров, в какой-то момент у меня, что называется, "бомбануло". + Это я еще умолчал факт того, что многие кинотеатры (на момент конца 2015 года) не имели оформления для мобильных устройств. +

+

+ Так и родилась идея сделать "свой кинотеатр, с мобильным интерфейсом и минималистичностью" +

+
+ +

Для правообладателей и прочих "копирастов"

+ +

+ Начнем с того, что данный сервис не хранит никаких видеоматериалов. Сервис работает по принципу того-же Яндекса или Mail.ru: есть база + с фильмами, есть "поисковик" по этой базе. Если хотите что-то заблокировать - блокируйте у "провайдеров контента", которые указываются на страницах сервиса. +

+[#include "fother.inc.ftl"] \ No newline at end of file diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/blog.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/blog.ftl new file mode 100644 index 0000000..e0b320c --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/blog.ftl @@ -0,0 +1,101 @@ +[#ftl] +[#include "header.inc.ftl"] +
+ +
+
+
+ +
+
+

Version 3.0.0 alpha

+

Полностью изменены внутренние механизмы работы сервиса. Поиск теперь осуществляется почти моментально!

+

К фильмам/сериалам добавлены постеры, описание и год выпуска.

+

+ Изменения затронули и "запоминалку" просмотров. Хранить всю эту информацию в cookies, признаюсь, была самой плохой идеей. + Очень быстро активные пользователи стали натыкаться на ошибку 400 Bad request, что в нашем случае интерпритировалось как "слишком много cookies". + В связи с этим было принято следующее решение: +

+
    +
  1. "запоминалка" будет фиксировать только последнее просмотренное кино/сериал
  2. +
  3. для увеличения "памяти", необходимо будет зарегистрироваться
  4. +
+

Регистрация, к слову, реализована через социальные сети и прочих провайдеров учетных записей.

+
+
+
+
+ +
+
+

Version 2.0.9

+
    +
  • удален кинотеатр HDRezka
  • +
  • добавлен кинотеатр Seasonvar
  • +
  • множественные исправления и оптимизации алгоритмов
  • +
+
+
+
+
+ +
+
+

Version 2.0.8

+

Множество изменений "под капотом".

+
+
+
+
+ +
+
+

Version 2.0.7c

+
    +
  • [эксперементально] плеер воспроизводит сериалы
  • +
  • возможность продолжить просмотр с сохранённой позиции
  • +
  • название фильма/серии над плеером
  • +
+
+
+
+
+ +
+
+

Version 2.0.7b

+

Прошлый раз код идеально работал на localhost, а на реальном сервере заглох. Пришлось переделывать. + Зато теперь точно всё должно заработать.

+

Пришлось отказаться от воспроизведения сериалов. С ними придётся отдельно повозиться.

+
+
+
+
+ +
+
+

Version 2.0.7

+

Долгожданное обновление: наконец то появился плеер! О да! Долой центнеры рекламы, что предлагает нам... да что только не! Начиная от "купи слона", до "мега-умбер-онлайн игра, клонов которой уже нисчесть! играй сейчас! живо!!!".

+

Кхм. Простите.

+

Вообщем, тестовая вариация плеера запущена для кинотеатра OnlineLife. Если нареканий не будет, то запущу и для остальных.

+
+
+
+
+ +
+
+

Version 2.0.6

+
    +
  • группировка одинаковых фильмов
  • +
  • новости проекта на главной странице
  • +
+
+
+
+
+

информация о более ранних версиях была утеряна

+
+
+
+[#include "fother.inc.ftl"] \ No newline at end of file diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/fother.inc.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/fother.inc.ftl new file mode 100644 index 0000000..17c7245 --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/fother.inc.ftl @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/header.inc.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/header.inc.ftl new file mode 100644 index 0000000..368d57a --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/header.inc.ftl @@ -0,0 +1,22 @@ + + + + + + + + + +
+

KinoSearch

+
+
+
+ Найти: + + + + +
+
+
мини-блог | о сервисе
\ No newline at end of file diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl index eaf7710..987fa61 100644 --- a/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl +++ b/src/main/resources/kinosearch/kinosearch3/webpp/index.ftl @@ -1,9 +1,3 @@ [#ftl] - - - - - -

KinoSearch 3.0.0-alpha

- - \ No newline at end of file +[#include "header.inc.ftl"] +[#include "fother.inc.ftl"] \ No newline at end of file diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/ks3logo.svg b/src/main/resources/kinosearch/kinosearch3/webpp/static/ks3logo.svg similarity index 100% rename from src/main/resources/kinosearch/kinosearch3/webpp/ks3logo.svg rename to src/main/resources/kinosearch/kinosearch3/webpp/static/ks3logo.svg diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/static/noise-background.png b/src/main/resources/kinosearch/kinosearch3/webpp/static/noise-background.png new file mode 100644 index 0000000..2c34b7c Binary files /dev/null and b/src/main/resources/kinosearch/kinosearch3/webpp/static/noise-background.png differ diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/static/style.css b/src/main/resources/kinosearch/kinosearch3/webpp/static/style.css new file mode 100644 index 0000000..8415ada --- /dev/null +++ b/src/main/resources/kinosearch/kinosearch3/webpp/static/style.css @@ -0,0 +1,42 @@ +body { + background: #f3f3f3 url('/noise-background.png'); + background-size: auto; + padding-bottom: 1em; +} + +.title { + text-shadow: 0 0 .2em rgba(0, 0, 0, 0.2); + font-family: sans-serif; + text-align: center; + font-size: 3em; + font-weight: bold; +} + +.title img { + vertical-align: bottom; + height: 1.119em; + display: inline-block; +} + +.title a { + text-decoration: none; + color: inherit; +} + +.minimenu { + text-align: center; + color: #888; + font-size: small; +} + +hr { + border-top-color: #d4d4d4; +} + +.news time { + font-weight: bold; +} + +.news .row { + margin-bottom: 2em; +} \ No newline at end of file