Этот проект признан заменить админку сайта tv-games.ru и сделать администрирование увлекательным занятием.
Зачем это понадобилось?
В первую очередь очень напрягает добавлять новые видео. В частности, необходимо:
- Скопипастить название
- Организовать ЧПУ-замену
- Выставить дату публикации. Очень напрягает листать календарь
- Мета-описание, ключевые слова
- Возрастной ценз - ну, это не напрягает, ладно :)
- URL ролика - для Ютуба надо вычленить какую-то часть, для ВК определённая строка - всё это несколько напрягает
- Вводный и полный текст - опять же, копипаст либо писанина от себя
- Автор:
- Имя
- Сайт
- Почта
- Статистика (не трогаем)
- Изображение - его приходится генерировать, обрабатывать, заливать по FTP и прочее - крайне обременительный этап.
- Состояние - включено по умочанию.
- Доступность - всем или только зарегистрированным.
- Какие-то лишние поля, отвлекающие внимание.
В базе данных есть место для картинки (OpenGraph) и другой информации
Итак, что я думаю.
- На первых порах, пока не разберусь с авторизацией и прочим, будет необходимо прятать эту админку.
- Скопирую компоновку нынешней админки, она вполне работающая.
У меня есть база данных по околоигровым книгам и журналам. Чтобы не изобретать велосипед - собрана она была в Calibre. Движок не идеальный в некоторых отношениях, но, пока из бесплатного лучшего я не встречал.
На сайте уже несколько лет ведётся сбор подобных книг, и возникла идея автоматизировать процесс добавления книг.
Движок сайта + Calibre позволяют сделать нечто интересное.
Книги сортируются по платформам. Есть книги и журналы, в которых описано несколько платформ. Если есть одна
доминирующая платформа, книга будет лежать в ней. Если их несколько, то в console
или в computers
.
В остальных платформах будет отдельная тема Упоминание в:
...
Сейчас задача номер один - использовать всю доступную информацию для генерации.
- Теги - ключевых словах, в кратком и полном виде. Брать только текущую платформу.
- Теги - в тексте
- Дополнительные теги в тексте
- Страницы упоминаний (альт теги) nes_citation
- Страницы книг в поиске nes_search
- Страницы со ссылками на журналы (альт теги) nes_magazines
- Выводить журналы - все на одной странице с картинками. Даты и данные выводить, издателя - только если меняется
- Дампить в подкатегории (серии). Корректировать ссылки на них
Общий ход работ:
- Вытаскивать данные из Calibre
- Аудит + фикс
- Вытаскивать данные с сайта
- Сличать, находить разницу
- Собирать из Calibre файлы в отдельную категорию
- images
- files
- unzip/unrar
- Обновлять на сайте 60%
- added
- updated
- deleted
- images - проще пока вручную
- files - проще пока вручную
Обновлялка на сайте
Новое:
- комиксы [comics] - на них делать ссылки как в упоминаниях журналов
- документация по железу+программированию [doc] - собирать как солюшены
- документация по эмуляторам [emulator] - собирать как солюшены
- описания и похождения [guide] - собирать как солюшены
- мануалы консолей, включая сервисные [manual] - собирать как журналы
TODO "
- сделать SQL dos для сайта. почистить названия.
- забиндить с dos.zone 2.1 добавить отсутствующие
- забрать оттуда всё что можно
- забиндить с моби
- забрать оттуда всё что можно
todo генерить список тех кто сканировал-обрабатывал (если и то и то то оставлять одного). считать количество, список у кого > 2. > 10 - жирным. избранные - красным.
todo унифицировать sitecpu, cpu, генерацию всех uri. задокументировать
- Чистить ББК, УДК, выделять авторский знак. Инфа об этом внизу страницы.
- Эксперимент - 1 книга - 1 каталог. Внутри и обложки и текстовое описание в виде отдельных файлов.
-
Полные описания:
-> - Форматировать изображения согласно их габаритам (средние габариты, если они неизвестны)
- Журналы (гайды????) отдельно
- На сайте для них своя секция magazines, свои категории (названия журналов)
- Каким-то образом давать ссылки на отдельные журналы с их описаниями - но это не критично, сделал разворачивание покуда.
- Несколько каталогов, с группировкой по издательствам, и так далее. Чтобы было приятно читать и сводить данные.
- Реализовать качество скана (звёздочки, 5-10 баллов), своя шкала - разрешение, размытие, отсутствие страниц, общее качество, итд.
[v] имена файлов на уникальность [v] подумать как грамотно оформлять журналы - из первого берётся описания для краткого текста, из остальных только для основного текста
- добавить GD в базу
- прочесать журналы с http://tehnoarhiv.ru
- прочесать https://mcgrp.ru на мануалы (МНОГО!!!) [v] ко всем гайдам дать обложки игр либо арт - только к тем, что идут первыми. [v] добавить в гайды все материалы из дневников и форума [v] описания игр могут подходить к нескольким платформам
- рейтинги обратно в calibre (when update)
- высший пилотаж - перелинковать книги где необходимо (например, 50 игр для 3DO), волшебный мир, итд. [v] постараться всех авторов засунуть в авторы
- шерстить cbr на наличие tiff проверить порядок
- manual clean cpus, add new books, magazines, comics.
- total audit
[v] Пересчитать рубрики, пересчитать категории [v] проверить ссылки на скачивание [v] полностью проверить весь генерируемый контент [v] генерить страницы всех гайдов для форума
- SEO - Загонять в EXIF максимально инфу по книгам Apache commons Imaging https://stackoverflow.com/questions/36868013/editing-jpeg-exif-data-with-java
- генерить новостные анонсы по изменениям
- SEO - Open Graph - подумать.
- SEO - у всех искусственных страниц продумать описания и ключевые слова
[v] в коде, если книга, журнал или комикс - хардкодить ссылку на внешний источник. [v] кастомизировать кнопку скачивания, если ссылка
[test] для остальных документов предусмотреть вывод на скачку остальных файлов. [test] порядок - оригинальный (DATA ID, а в архивах по порядку следования).
-
нужен рендерер для вывода ВСЕХ обзоров в 2 видах. 1. группировка по авторам. 2. по системам. сортировка в алфавитном порядке. без полного текста возможно, будет нужен третий вариант - по месяцам, опять же с группировкой
-
при выводе списков описаний можно выводить статистику - кто и сколько, чтобы подстёгивать народ. Можно в виде таблицы
[v] при генерации ссылок на скачивание генерить картинки с соответствующим расширением
[v] поскольку места на сайте не хватает - залить всё в облако и предоставить доступ. [v] солюшены и эмуляторы держать на сайте
-
Всё ещё думать про журналы. Может ещё один блок для описания серии???
-
Рендерер - разбить на маленькие процедурки, унифицировать код.
-
magazines - если больше определённого количества - оформлять как категорию. возможно, стоит ввести ещё один флаг в калибре. или прописывать в тегах. например, группировать журналы или генерить по-одному
-? magazines - если группированы на странице то выводить все данные в книжном виде.
-
magazines - есть мысль выводить журналы в поиске со всеми журналами
-
magazines - разыскиваемые - выводить картинки???
-
копирование файлов - логировать в окно, показывать прогресс. то же самое с картинками
-
compare - одного сравнения базы Calibre мало. надо проходиться по файлам. Например смена обложки в базе не регистрируется, только дата изменения. Для ускорения - сканить файлы только изменённых книг. Но для полного аудита надо уметь сканить всё.
-
надо закрепить даты всех книг иначе постоянно выдаёт обновление public
-
audit - magazines without serie
[v] cpu - уникальность
- wise error processing / specialized http client
DUMP: трудность - менять кодировку в соответствии с таблицей. Вероятно, спасает переход на чистый UTF-8 DUMP TODO: многопоточность TODO DUMP BLOB (HEX OR NOT) - с сервера идут уже корявые данные. в идеале - отказаться от конвертации кодировки и отправлять как есть. и да - нужно слать кодировку для базы данных но это далеко идущие планы.
Файлы пока можно заливать вручную.
TODO есть предположение, что если в тексте есть юникод, то пхп не справляется с его вставкой. Подумать как чистить текст, возможно в автоматическом режиме
было в dumper.php: define('CHARSET', 'auto'); define('RESTORE_CHARSET', 'cp1251');
TODO надо дать возможность генерации только новых книг (количество дней в прошлое)
Реализован полный CRUD по видео.
Идея такая - сразу запрашиваем ссылку на видео и вытаскиваем максимальное число данных без участия пользователя.
Так же вытаскиваю все возможные картинки
Что надо сделать:
- теги
Баги:
- После редактирования видео сбрасывается количество видео на страницу, хотя, отображаются все.
- Почему-то показывается лишняя страница
- После выбора категории не пересчитывается число страниц и не позиционируется на первую
- Сортировка по дате (Emugamer TV) работает неверно
- Очень не нравится ограничение на длину строки. Как-то предлагать обходить его.
- Если в тексте кавычки и другие специальные знаки, то они отображаются как '
- Игровой Историк - при показе по 10 две лишние страницы
Что не сделано:
- Комменты к видео - их было бы неплохо засунуть в META
- META - научиться вычислять верные ключевые слова, добавлять какие-то свои
- Заливка своей картинки
- Обработка картинок
- Несколько вариантов сжатия (палитра, png, jpg)
- Корректная обработка не-ютуба
- Корректная работа с расширениями
- Перейти от toggles к radiobuttons
- Пакетное раскидывание видео по дням
- Для видео следует хранить две даты - создания (для истории) и показа (для плеера)
- Кнопки стирания мета данных
- Кнопки индивидуального обновления метаданных
- При превышениии длины хотя бы показывать на сколько
- Список видео (с возможностью сортировки):
- ID
- Название/категория (вероятно предпросмотр картинки)
- Опубликовано
- Просмотров
- Комментарии
- Управление (Включение и выключение видео, предпросмотр, удаление, редактирование)
- Отметить
- В верху количество на страницу, категории
Этого уже много, большее, например, редактирование категорий пока не планирую
Поскольку с запуском в IDE проблем не возникает (например, в IntelliJ IDEA это правый клик по файлу MainApp, дальше Run..., или Ctrl+Shift+F10), опишу, как это делается в командной строке.
- Сборка:
sbt package
- Запуск (Linux):
./run.sh
- Запуск (Windows):
./run.bat
У sbt есть ещё несколько полезных ключей: clean
, compile
, run
, и т.д.
https://javagraphics.java.net/ http://javagraphics.blogspot.md/2014/02/images-color-palette-reduction.html
https://www.idrsolutions.com/jdeli/download https://blog.idrsolutions.com/2015/07/how-to-generate-smaller-png-files-in-java/ https://blog.idrsolutions.com/2015/04/how-to-write-jpeg-images-in-java/ https://blog.idrsolutions.com/2015/04/how-to-write-out-png-images-in-java-2/
https://files.stroyinf.ru/Data2/1/4293722/4293722724.pdf https://ifap.ru/library/gost/7042020.pdf file:///C:/Users/user/Downloads/%D0%93%D0%9E%D0%A1%D0%A2%20%D0%A0%20704-2006.pdf https://meganorm.ru/Data2/1/4293850/4293850363.htm
http://гпоунпк.рф/bibl/9.pdf http://mpgu.su/ob-mpgu/struktura/biblioteka/prepodavatelyam/rossiyskiy-indeks-nauchnogo-tsitirovaniya-rints/prisvoenie-avtorskogo-znaka-indeksa-bbk-i-udk/ https://molochnoe.ru/library/to_prep_asp/authors_index http://sainfo.ru/liter/znak.php http://prepodavatel-xxi.ru/sites/default/files/prisvoenie_avtorskogo_znaka_UDK_i_BBK.pdf https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%B7%D0%BD%D0%B0%D0%BA https://bon-anza.ru/reference.php?id=5 http://lib.ugtu.net/page/udk-i-bbk/ https://avtor-online.ru/udk-bbk
https://www.google.com/search?q=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0+%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F+%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0+%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8+%D0%B1%D0%B1%D0%BA+%D1%83%D0%B4%D0%BA&client=firefox-b-d&sxsrf=ALiCzsZf-UisQ3UwOdt_qCOWsX3ynYRoJQ:1660209729270&ei=Qcr0Yq3yD_Dh7_UPlvOvYA&start=10&sa=N&ved=2ahUKEwjtlqmZu775AhXw8LsIHZb5CwwQ8tMDegQIARA9&biw=1436&bih=938&dpr=1 http://www.uraledu.ru/node/4928 https://www.ntspi.ru/library/directories_and_files/ http://karlib.kz/ru/prof-meropriyatiya/32-metodicheskij-blog/1197-v-pomoshch-nachinayushchemu-bibliotekaryu http://prohschool.beloblast.ru/bibl/doc/norm/instrukcija_ob_uchete_bibliotechnogo_fonda.pdf http://гпоунпк.рф/bibl/8.pdf https://www.ipu.ru/structure/information-services/polygraphy/20804 https://dwax.ru/bibliotechnaya-klassifikaciya-bbk-bibliotechno-bibliograficheskaya-klassifikaciya/ https://author.today/post/140940 http://roslavl.library67.ru/files/382/bbk.pdf https://lib.uni-dubna.ru/biblweb/recomends/ShkolaIndex.pdf
https://studme.org/359791/tehnika/osnovnye_vidy_tipy_pechatnyh_izdaniy https://www.ifap.ru/library/gost/7602003.pdf https://spbarchives.ru/-/prilozenie-1-vidy-pecatnyh-izdanii