Бэкенд этого проекта делится на API и статические ресурсы.
master
является официальной версией. Также можно выбрать соответствующую фиксацию по тегу./backend/db_template.sql
в базу данных и загрузите все файлы из папки /backend/
на веб-сервер.config.php
.Access-Control-Allow-Origin: *
.
add_header 'Access-Control-Allow-Origin' '*';
в конфигурацию.Примечание:
master
— официальная версия. Также можно выбрать соответствующий коммит по тегу./static/
на сервер.master
— официальная версия. Также можно выбрать соответствующий коммит по тегу.staticURL
(статические ресурсы) и backendURL
(API) в /TsinghuaCloudRemake.user.js
./TsinghuaCloudRemake.user.js
в браузере и обновите страницу. Установите скрипт в окне Tampermonkey.Для повышения эффективности разработки и расширения возможностей проекта используется архитектура с разделением на пользовательский скрипт, статический бэкенд и API.
Когда пользователь посещает облачное хранилище университета Цинхуа, Tampermonkey запускает пользовательский скрипт. Скрипт определяет, нужно ли перейти в режим Remake, основываясь на информации текущей страницы. На данный момент режим активируется только на страницах с видео.
После перехода в режим Remake пользовательский скрипт получает статические ресурсы с настроенного статического бэкенда и изменяет текущую страницу на основе этих ресурсов. Затем активирует JavaScript-код в статических ресурсах и завершает выполнение.
JavaScript-код в статических ресурсах инициализирует различные интерактивные интерфейсы и получает необходимую информацию с бэкенда, изменяя текущую страницу.
/TsinghuaCloudRemake.user.js
, содержит основные настройки, сопоставление типов страниц и функции загрузки ресурсов, но не включает реализацию логики, которая влияет на конкретные страницы.
Эта структура значительно уменьшает размер пользовательского скрипта и позволяет выполнять горячее обновление бэкенда без необходимости частого обновления скрипта пользователем.
Кроме того, в пользовательском скрипте зарезервировано сопоставление для файлов других типов. Это означает, что если в будущем потребуется улучшить обработку других типов файлов, достаточно будет добавить небольшое количество кода и написать новый бэкенд.
Чтобы обеспечить безопасность данных пользователей, пользовательский скрипт не использует UnsafeWindow, а передаёт конфигурационную информацию через элемент <meta>
.
Статический бэкенд содержит код для изменения страниц и выполнения логики.
Поскольку статический бэкенд не является частью пользовательского скрипта, JavaScript-код будет работать в режиме native.
API бэкенд разработан на PHP и включает операции с базой данных и обработку данных.
Принцип разработки API бэкенда заключается в минимизации вычислений для снижения нагрузки на сервер. Кроме того, API бэкенд стремится стать интерфейсом между фронтендом и базой данных.
С версии v1.0.0-beta-2
для лёгкого изменения и разработки были введены компоненты.
Компоненты состоят из файла входа widget.js
и других ресурсов, которые загружаются асинхронно.
Файл /static/widgets.json
содержит массив с краткой информацией обо всех компонентах. При использовании компонентов необходимо заполнить информацию о них в файле /static/widgets.json
, например:
{
"id": "shao-note",
"url": "",
"name": "SHAO Note",
"description": "A note taking widget based on SHAO-Pastebin",
"context": [
"video"
],
"enabled": true
}
Ключ | Тип значения | Название | Описание |
---|---|---|---|
id |
string | Идентификатор компонента | Строка для идентификации компонента, состоящая только из строчных букв английского алфавита, цифр и дефисов |
url |
string | URL компонента | Если необходимо загрузить компонент из внешнего адреса, укажите этот URL, иначе оставьте пустым |
name |
string | Имя компонента | Название компонента |
description |
string | Описание компонента | Описание компонента |
context |
array | Среда компонента | В этом массиве перечислены среды, в которых компонент будет активирован |
enabled |
boolean | Активировать компонент | Если значение равно true, компонент будет активирован |
Можно загрузить компоненты из внешних адресов, указав URL в ключе url
. Если url
пуст, скрипт загрузит файл widget.js
из папки widgets
в каталоге статических ресурсов бэкенда с именем, соответствующим идентификатору компонента.
Во время работы компонента можно просмотреть информацию обо всех компонентах, вызвав глобальную переменную widgetList
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )