Добавление поддержки баннера

This commit is contained in:
2024-03-20 14:20:44 +04:00
parent a08d3c2e4e
commit 5ad296e61e
8 changed files with 119 additions and 74 deletions
+17
View File
@@ -0,0 +1,17 @@
# [Условия использования бесплатного контента](https://forumd.ru/viewtopic.php?id=5751#rule)
1. Данные правила относятся к бесплатным скриптам, кодам, шаблонам, графике, а также гайдам, сделанным в рамках проекта [ForumD.ru](https://forumd.ru/).
Под данные правила попадают [разработки специалистов ForumD.ru](https://forumd.ru/viewforum.php?id=33) (в том числе бывших, сделанные в период участия в нашем проекте), а также отдельных пользователей форума, пожелавших применять к своему бесплатному контенту данные правила использования и распространения.
2. Весь бесплатный контент, сделанный в рамках проекта ForumD.ru, можно свободно использовать любых целях.
3. При этом, весь производный контент (модификации скриптов, стилевых решений, макетов, гайды и уроки по нашим работам и т.п.), выложенный в открытый доступ, должен распространяться на таких же свободных условиях.
Администрация оставляет за собой право цитировать производный контент, выложенный в открытый доступ, с указанием авторства и ссылки на источник.
4. При публикации авторских работ, где использовался наш контент, на любых ресурсах, необходимо указывать использованный в работе бесплатный контент и автора с **кликабельной прямой ссылкой на топик с контентом. В случае отсутствия ссылок на использованный бесплатный контент, администрация форума оставляет за собой право размещать в публичном доступе производный от нашего контент, использованный в авторской работе.
5. Также можно цитировать любой бесплатный контент на других сайтах, форумах, блогах в социальных сетях и т.д. с указанием автора и ссылки на [ForumD.ru](https://forumd.ru/). В случае цитирования наших работ, статей, уроков или гайдов на других площадках, мы оставляем за собой право цитировать ваш контент в ответ, естественно, с указанием авторства и ссылки на источник.
6. Необязательное, но очень приятное для нас условие - обратная связь. Взяли? В теме скрипта, кода, макета или графики напишите "спасибо" и укажите ссылку где используется или цитируется наша разработка.
7. Вся [команда и мастера ForumD](https://forumd.ru/pages/contacts) обязуются соблюдать свои же условия.
+8 -1
View File
@@ -1,4 +1,11 @@
/* /*!
* mybb-april-fools 1.0.0
* https://forumd.ru/viewtopic.php?id=7372
* Система первоапрельских розыгрышей для форумов MyBB
* @author kozhilya
* @license https://forumd.ru/viewtopic.php?id=5751#rule
*/
/*
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
* This devtool is neither made for production nor for readable output files. * This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file in the browser devtools. * It uses "eval()" calls to create a separate source file in the browser devtools.
+7 -1
View File
File diff suppressed because one or more lines are too long
+33 -32
View File
@@ -7,6 +7,7 @@
"": { "": {
"name": "mybb-april-fools", "name": "mybb-april-fools",
"version": "1.0.0", "version": "1.0.0",
"license": "https://forumd.ru/viewtopic.php?id=5751#rule",
"dependencies": { "dependencies": {
"cursor-effects": "^1.0.11", "cursor-effects": "^1.0.11",
"jquery": "^3.6.4", "jquery": "^3.6.4",
@@ -32,7 +33,7 @@
"markdown-it": "^13.0.1", "markdown-it": "^13.0.1",
"markdown-it-container": "^3.0.0", "markdown-it-container": "^3.0.0",
"prettier": "^2.8.2", "prettier": "^2.8.2",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.10",
"ts-loader": "^9.4.2", "ts-loader": "^9.4.2",
"tsify": "^5.0.4", "tsify": "^5.0.4",
"typescript": "^5.0.2", "typescript": "^5.0.2",
@@ -1770,30 +1771,30 @@
} }
}, },
"node_modules/@jridgewell/set-array": { "node_modules/@jridgewell/set-array": {
"version": "1.1.2", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/source-map": { "node_modules/@jridgewell/source-map": {
"version": "0.3.2", "version": "0.3.6",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.9" "@jridgewell/trace-mapping": "^0.3.25"
} }
}, },
"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dependencies": { "dependencies": {
"@jridgewell/set-array": "^1.0.1", "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9" "@jridgewell/trace-mapping": "^0.3.24"
}, },
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
@@ -1805,12 +1806,12 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.17", "version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dependencies": { "dependencies": {
"@jridgewell/resolve-uri": "3.1.0", "@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "1.4.14" "@jridgewell/sourcemap-codec": "^1.4.14"
} }
}, },
"node_modules/@jsdoc/salty": { "node_modules/@jsdoc/salty": {
@@ -2373,9 +2374,9 @@
} }
}, },
"node_modules/@types/eslint": { "node_modules/@types/eslint": {
"version": "8.21.3", "version": "8.56.6",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.6.tgz",
"integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", "integrity": "sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==",
"dependencies": { "dependencies": {
"@types/estree": "*", "@types/estree": "*",
"@types/json-schema": "*" "@types/json-schema": "*"
@@ -10648,12 +10649,12 @@
"dev": true "dev": true
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.16.8", "version": "5.29.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz",
"integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==",
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.2", "@jridgewell/source-map": "^0.3.3",
"acorn": "^8.5.0", "acorn": "^8.8.2",
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.20"
}, },
@@ -10665,15 +10666,15 @@
} }
}, },
"node_modules/terser-webpack-plugin": { "node_modules/terser-webpack-plugin": {
"version": "5.3.7", "version": "5.3.10",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
"integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "^0.3.17", "@jridgewell/trace-mapping": "^0.3.20",
"jest-worker": "^27.4.5", "jest-worker": "^27.4.5",
"schema-utils": "^3.1.1", "schema-utils": "^3.1.1",
"serialize-javascript": "^6.0.1", "serialize-javascript": "^6.0.1",
"terser": "^5.16.5" "terser": "^5.26.0"
}, },
"engines": { "engines": {
"node": ">= 10.13.0" "node": ">= 10.13.0"
+12 -5
View File
@@ -1,4 +1,14 @@
{ {
"version": "1.0.0",
"name": "mybb-april-fools",
"description": "Система первоапрельских розыгрышей для форумов MyBB",
"homepage": "https://forumd.ru/viewtopic.php?id=7372",
"author": {
"name": "kozhilya",
"url": "https://forumd.ru/viewtopic.php?id=6412"
},
"repository": "github:kozhilya/mybb-april-fools",
"license": "https://forumd.ru/viewtopic.php?id=5751#rule",
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.21.0", "@babel/cli": "^7.21.0",
"@babel/core": "^7.21.3", "@babel/core": "^7.21.3",
@@ -19,7 +29,7 @@
"markdown-it": "^13.0.1", "markdown-it": "^13.0.1",
"markdown-it-container": "^3.0.0", "markdown-it-container": "^3.0.0",
"prettier": "^2.8.2", "prettier": "^2.8.2",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.10",
"ts-loader": "^9.4.2", "ts-loader": "^9.4.2",
"tsify": "^5.0.4", "tsify": "^5.0.4",
"typescript": "^5.0.2", "typescript": "^5.0.2",
@@ -37,8 +47,5 @@
"cursor-effects": "^1.0.11", "cursor-effects": "^1.0.11",
"jquery": "^3.6.4", "jquery": "^3.6.4",
"webpack-utf8-bom": "^1.4.0" "webpack-utf8-bom": "^1.4.0"
}, }
"version": "1.0.0",
"description": "Mybb April Fools",
"name": "mybb-april-fools"
} }
+21
View File
@@ -0,0 +1,21 @@
const path = require('path');
const webpack = require('webpack');
const rootDir = path.resolve(__dirname);
const date = (new Date()).toLocaleDateString("ru-RU", 'yyyy-MM-dd');
const pckg = require(path.join(rootDir, 'package.json'));
const bannerContent = `
${pckg.name} ${pckg.version} (${date})
${pckg.homepage}
${pckg.description}
@author ${pckg.author.name}
@license ${pckg.license}
`.trim();
const libBanner = new webpack.BannerPlugin({
banner: bannerContent,
test: /\.js$/
});
module.exports = { libBanner };
+4 -34
View File
@@ -1,10 +1,8 @@
// Generated using webpack-cli https://github.com/webpack/webpack-cli
const path = require("path"); const path = require("path");
const webpack = require("webpack"); const webpack = require("webpack");
const BomPlugin = require("webpack-utf8-bom"); const BomPlugin = require("webpack-utf8-bom");
const { exec } = require("node:child_process");
const TerserPlugin = require("terser-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin");
const { libBanner } = require("./webpack.banner");
const isProduction = process.env.NODE_ENV == "production"; const isProduction = process.env.NODE_ENV == "production";
@@ -16,19 +14,8 @@ const config = {
}, },
plugins: [ plugins: [
new BomPlugin(true), new BomPlugin(true),
{ libBanner,
apply: (compiler) => { libUpload,
compiler.hooks.afterEmit.tap("AfterEmitPlugin", (compilation) => {
exec("./upload.sh", (err, stdout, stderr) => {
if (stdout) process.stdout.write(stdout);
if (stderr) process.stderr.write(stderr);
console.log("Uploaded.");
});
});
},
},
// Add your plugins here
// Learn more about plugins from https://webpack.js.org/configuration/plugins/
], ],
module: { module: {
rules: [ rules: [
@@ -45,8 +32,6 @@ const config = {
test: /\.html$/i, test: /\.html$/i,
loader: "html-loader", loader: "html-loader",
}, },
// Add your rules for custom modules here
// Learn more about loaders from https://webpack.js.org/loaders/
], ],
}, },
resolve: { resolve: {
@@ -64,6 +49,7 @@ const config = {
terserOptions: { terserOptions: {
compress: true, compress: true,
}, },
extractComments: false,
minify: TerserPlugin.uglifyJsMinify, minify: TerserPlugin.uglifyJsMinify,
})], })],
}, },
@@ -77,19 +63,3 @@ module.exports = () => {
} }
return config; return config;
}; };
/*
{
"compilerOptions": {
"module": "AMD",
"lib": ["es2017", "dom"],
"rootDir": "./src/",
"outFile": "dist/april-fools.js",
"moduleResolution": "nodenext",
"esModuleInterop": true
},
"files": [
"src/main.ts"
]
}
*/
+16
View File
@@ -0,0 +1,16 @@
const { exec } = require("node:child_process");
const libUpload = {
apply: (compiler) => {
compiler.hooks.afterEmit.tap("AfterEmitPlugin", (compilation) => {
exec("./upload.sh", (err, stdout, stderr) => {
if (stdout) process.stdout.write(stdout);
if (stderr) process.stderr.write(stderr);
console.log("Uploaded.");
});
});
},
}
module.exports