Coder Social home page Coder Social logo

scpru / rufoundation Goto Github PK

View Code? Open in Web Editor NEW
39.0 6.0 11.0 8.93 MB

Wiki engine compatible with Wikidot developed by Russian SCP Branch.

Home Page: https://scpfoundation.net/

License: MIT License

Python 28.05% TypeScript 14.35% SCSS 0.48% CSS 6.10% HTML 1.07% Dockerfile 0.06% JavaScript 6.87% Rust 42.75% Shell 0.05% RenderScript 0.21%
scp django wikidot python scp-wiki rufoundation

rufoundation's Introduction

RuFoundation

Wiki engine compatible with Wikidot developed by Russian SCP Branch

scp-ru

Requirements

Note: this is what I tested with, your mileage may differ.

  • Windows 10
  • NodeJS v17.3.0
  • Python 3.10.1
  • Rust 1.63

How to launch

  • First navigate to web/js and execute yarn install
  • Then navigate to system/js and execute yarn install
  • After that, from the root project directory, run:
    • pip install -r requirements.txt
    • python manage.py migrate
    • python manage.py runserver --watch

Seeding the database

To start working, the following objects are required:

  • Minimally one website record (for localhost)
  • Some pages (such as nav:top or nav:side) that are critical for proper appearance

You can provision these basic structures by running the following commands:

  • python manage.py createsite -s scp-ru -d localhost:8000 -t "SCP Foundation" -H "Russian branch"
  • python manage.py seed -s scp-ru

Running in Docker

Requirements (tested with):

  • Docker 20.10.14
  • Docker-Compose 1.29.2

Getting started

To start the project, use:

  • docker-compose up

To completely delete all data, use:

  • docker-compose down
  • rm -rf ./files ./archive ./postgresql

To create users, sites and seed inside the database, start the project and afterwards use syntax such as this:

  • docker exec -it scpdev_web python manage.py createsite -s scp-ru -d localhost -t "SCP Foundation" -H "Russian branch"
  • docker exec -it scpdev_web seed -s scp-ru

To update current app that is running, do:

  • docker-compose up -d --no-deps --build web

Note: in more recent versions, you may want to use docker compose instead of docker-compose.

rufoundation's People

Contributors

btomaev avatar dependabot[bot] avatar fallenss avatar jewalky avatar lordkalinin avatar maestrogame avatar mrnereof avatar parussman avatar rhombus-h avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rufoundation's Issues

Все филиалы под одной крышей?

Идея такова. Домен scpfoundation.net становится общим. Для каждого филиала выделяется домен третьего уровня, который работает с сервером филиала (например ru.scpfoundation.net A 222.222.222, en.scpfoundation.net A 111.111.111.111).
Все, кто приходят на корневой домен рассылаются на филиалы согласно геопозиции и языку браузера.

Полигоны всех филиалов размещяются на доменах четвёртого уровня по схеме sandbox.*.scpfoundation.net.

Сам домен scpfoundation.net становится доменом-редеректором.

Да, я в курсе что это капитально, и что меня пошлют, но предложить-то можно.

Закреп: Правила оформления багов

Правила

  1. Каждый баг должен отправляться отдельной темой.
  2. Перед отправкой бага убедитесь что такой баг уже не описан.
  3. Постарайтесь выбрать осмысленный заголовок для бага, т.к. именно по нему будут позже определять приоритет, а также искать существующие баги. Например, не "листпейджес", а "в листпейджес не работает XXX".
  4. При баге, появляющемся на конкретной статье — обязательна ссылка на статью.
  5. При баге, для которого по какой-то причине ссылка на статью невозможна или не имеет смысла (например, сломавшееся мобильное меню сайта) — обязателен скриншот.

ВАЖНО: Баги, связанные с безопасностью сайта (XSS и иные уязвимости), репортить в личку дискорда jewalky, MrNereof#3953 либо в телеграм @jewalky, либо скайп или вконтакт jewalky. Предпочтителен дискорд. На гитхабе — не репортить! Будут удаляться.

Если разработчик посмотрит на баг и не поймёт, что вы хотели сказать — баг будет молча закрыт и не исправлен.

Дополнение: баги, которые должны быть исправлены с помощью функционала сайта

Например, отсутствующие компоненты и т.п. — не являются багами движка и должны исправляться в самих страницах.

Подобные баги будут помечаться тэгом "has to be fixed on user side" и закрываться. В комментариях как правило будет написано, что конкретно нужно сделать.

[Фильтр по таким багам]

Вопрос наказаний

Итак, товарищи. Вам, я думаю, хорошо известно, что на Викидоте вопросс наказаний решался просто — баном, без вариантов.
Сейчайс же, когда пишется новый движёк, возникает вопрос: а может, стоит сделать возможность раздельных наказаний? Например: только запрет на редактирование. Или только запрет на оценку. Или только на комментрарии.
Думаю, подобная фича, совмещённая с правильной политикой, будет поошерять честное отбытие наказаний и вразумление народа, а не пложение альтов.

Сделать поиск

По тэгам и словам в статьях
Решить что делать с ListPages (offset) т.к. в данный момент в таком случае будут найдены фрагменты, а не основная страница

Рейтинг статей

Добавить рейтинг статей:

  • Поле рейтинга в странице с привязкой к пользователю
  • [[module Rate]]
  • Отображение рейтинга
  • Система голосования
  • Список проголосовавших

Ближайшие фиксы на новом сайте

  • права юзеров (в данный момент отсутствуют наглухо)
  • ограничение на размер текста в статье (?)
  • ограничение на общее занятое файлами место в фонде
  • module TagCloud
  • module PagesByTag
  • [[toc]]

Ошибка отдачи mp3 с сервера

при использовании html audio в статье для воспроизведения mp3 файлов находящихся на ruFoundation сервере
возникают следующие ошибки:
на браузере chromium невозможно перемотать аудиодорожку в плеере (возможно только слушать и ставить на паузу)
в консоле браузера была замечена ошибка при подгрузке mp3 файла (:ERR_QUIC_PROTOCOL_ERROR)

в браузере firefox возможно перематывать аудиодорожку но ползунок дергается после перемотки
(наверное неправильно оценивает длительность файла)

при использовании url mp3 файла с другого сервера, все работает нормально в обоих браузерах
https://scpfoundation.net/draft:mawak
тут пример бага

Кнопка "Назад на сайт"

Кнопочка в профиле и входе в профиль вместо возврата на предыдущую страницу отправляет на главную.

Починить возвращение правок

В данный момент оно выключено, потому что каждая правка отменяется отдельной новой правкой и это пиздец. Надо переделать чтобы ревизия отмены была ОДНОЙ ревизией и включить назад

Чеклист к первому релизу

  • Регистрация пользователей админом через инвайт
    • Создание пользователя с юзернеймом и емейлом (@MrNereof)
    • Высылание емейла с текстом про инвайт и запросом вида "перейдите на сайт, чтобы подтвердить емейл и установить пароль" (@MrNereof)
  • Логин в админ-панель (@MrNereof)
  • Базовый функционал управления сайтом в админке (@MrNereof)
  • Логин в пользовательскую часть сайта (@MrNereof)
  • Кнопка "вход" сверху справа + выпадающее меню если юзер залогинен (@jewalky)
  • (опционально) Публичный профиль пользователя (@MrNereof)
  • Редактирования профиля пользователя (как минимум в части пароля, емейла и юзернейма) (@MrNereof)
  • Восстановление пароля через емейл (@MrNereof)
  • Стили для системных страниц (@jewalky)
  • Редактирование страниц
    • Поддержка юзеров в страницах (@MrNereof)
    • Версии в страницах (@jewalky)
    • Поддержка юзеров в версиях страниц (@MrNereof)
    • (опционально) Просмотр предыдущих версий страниц и кнопка вернуть ревизию (@MrNereof)
    • (опционально) Предпросмотр перед сохранением (@MrNereof)
    • Редактирование тэгов (@MrNereof)
    • Загрузка файлов (@jewalky)
    • Установка и снятие родительской страницы (@MrNereof)
    • Смена имени страницы (@MrNereof)
  • Блокировка страниц для редактирования только админом (по категориям) (@MrNereof)
  • Блокировка отдельных страниц (галочка на конкретной странице) (@MrNereof)
  • Рейтинг страниц (@MrNereof, @jewalky)
  • Удаление страницы в категорию deleted: (@MrNereof)
  • Удаление страницы с концами (@MrNereof)
  • Расширенная модель пользователя (@MrNereof)
  • Несколько сайтов на одном хостинге (с разделением по доменам) и админка к этому (@jewalky)
  • Перевод продуктовой версии сайта в докер и на PostgreSQL (@jewalky)
  • Обеспечить высылание емейла на проде (@jewalky)
  • Система рейтинга от 0 до 5 (флоатами, по 0.5) (@jewalky)
  • Допиливание сидера из архива чтобы восстанавливались все ревизии, файлы и оригинальные юзеры из викидота (@jewalky)

Категории через ":"

Меня терзают смутные сомнения, что это не совсем правильно...

Дело в том, что, если у меня ещё не совсем голова отвалилась, то в случаях типа этого, следует перенгсить, а не переиминовывать файл (~/deleted/name заместо ~/deleted:name). Аналогично с системными страницами — мне кажется, они должны лежать в ~/system/ а не в ~.

Не могу пояснить, от чего мне кажется, что это стоит сделать так, но да.

`label`?

В общем. У гитхаба есть такая фича — лейблы. Может, нам стоит ею воспользоватся?

Некоторые прикреплённые картинки (файлы) при попытке посмотреть их не открываются в новой вкладке, вместо этого выскакивает предложение скачать файл

https://scpfoundation.net/draft:ltva

Maxw_Avatar.png например открывается в новой вкладке, WFC_roofs.jpg предлагает скачать

Происходит в списке файлов под страницей

Заголовок не отображается, если это последний элемент в исходнике

(Баг ли хз)

Заголовки работают через раз.
Если просто ввести:

  • Заголовок первого уровня

То оно не работает
А вот так:

  • Заголовок первого уровня
    ++ Заголовок второго уровня
    +++ Заголовок третьего уровня
    ++++ Заголовок четвёртого уровня
    +++++ Заголовок пятого уровня

То оно работает
(Тестил в своем черновике)
https://scpfoundation.net/draft:saintly

upd: Плюс в "Заголовок первого уровня" съел гитхаб, на сайте он есть

Не работает функционал сайта на старых устройствах

Использовал для просмотра сайта старенький планшет на базе андроида 4.2 с соответствующими версиями браузеров. На викидоте всё работало нормально можно было и писать и править, но с переходом на новый сайт увидел то, что видно на скриншотах. Отсутствуют все кнопки на нижней панели, и кнопка входа и регистрации вверху. Пробовал разные браузеры, переходил на "версию сайта для пк" и смотрел на другом устройстве с андроидом 4.4, проблема во всех случаях остаётся. На более новых устройствах ( андроид 10) всё работает нормально.

Screenshot_2022-08-11-08-57-17
Screenshot_2022-08-11-08-57-27
.

Создать to-do list

Предлагаю создать список фич, которые на данный момент являются недостяющими и внести этот список в корень проэкта. Это позволит другим людям присойденятся и создавать PRы с нужными улудшениями.

MIT vs GPL

Собсно, тайтлом всё сказано. Почему MIT, а не GPL?

To-do: user*

  • Создать отображение пользователей через [[*user ]]
    • Оценить фронт работ

Не обновляются обратные ссылки со страницы при её переименовании или удалении

Воспроизведение:

  1. создать страницу scp-xy
  2. создать страницу scp-xz
  3. на первой странице написать [[include scp-xz]]
  4. удалить страницу scp-xy

Проблема: на странице scp-xz всё ещё указано, что на неё ссылается страница scp-xy. Но ссылка будет жёлтой (несуществующей).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.