xmoj-script 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.github/.config.yml +21 -0
  2. package/.github/ISSUE_TEMPLATE/bug.yml +30 -0
  3. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  4. package/.github/ISSUE_TEMPLATE/docs.yml +25 -0
  5. package/.github/ISSUE_TEMPLATE/feature.yml +25 -0
  6. package/.github/dependabot.yml +12 -0
  7. package/.github/labeler.yml +12 -0
  8. package/.github/pull_request_template.md +10 -0
  9. package/.github/workflows/AutoLabelIssue.yml +24 -0
  10. package/.github/workflows/AutoLablePR.yml +23 -0
  11. package/.github/workflows/CodeQL.yml +29 -0
  12. package/.github/workflows/Daily.yml +23 -0
  13. package/.github/workflows/DependencyScan.yml +13 -0
  14. package/.github/workflows/Prerelease.yml +43 -0
  15. package/.github/workflows/Release.yml +45 -0
  16. package/.github/workflows/UpdateToRelease.yml +30 -0
  17. package/.github/workflows/UpdateVersion.yml +26 -0
  18. package/.gitmodules +3 -0
  19. package/.vscode/settings.json +148 -0
  20. package/404.html +362 -0
  21. package/AddonScript.js +10 -0
  22. package/CNAME +1 -0
  23. package/CODE_OF_CONDUCT.md +218 -0
  24. package/Compare.md +21 -0
  25. package/Images/1.png +0 -0
  26. package/Images/10.png +0 -0
  27. package/Images/11.png +0 -0
  28. package/Images/12.png +0 -0
  29. package/Images/13.png +0 -0
  30. package/Images/14.png +0 -0
  31. package/Images/15.png +0 -0
  32. package/Images/16.png +0 -0
  33. package/Images/17.png +0 -0
  34. package/Images/2.png +0 -0
  35. package/Images/3.png +0 -0
  36. package/Images/4.png +0 -0
  37. package/Images/5.png +0 -0
  38. package/Images/6.png +0 -0
  39. package/Images/7.png +0 -0
  40. package/Images/8.png +0 -0
  41. package/Images/9.png +0 -0
  42. package/LICENSE +674 -0
  43. package/README.md +86 -0
  44. package/SECURITY.md +12 -0
  45. package/Update/AutoLabel.js +179 -0
  46. package/Update/GetVersion.js +20 -0
  47. package/Update/UpdateToRelease.js +73 -0
  48. package/Update/UpdateVersion.js +80 -0
  49. package/Update/package.json +7 -0
  50. package/Update.json +702 -0
  51. package/XMOJ.png +0 -0
  52. package/XMOJ.user.js +4490 -0
  53. package/backend/.github/.config.yml +21 -0
  54. package/backend/.github/ISSUE_TEMPLATE/bug.yml +30 -0
  55. package/backend/.github/ISSUE_TEMPLATE/config.yml +5 -0
  56. package/backend/.github/ISSUE_TEMPLATE/feature.yml +25 -0
  57. package/backend/.github/dependabot.yml +12 -0
  58. package/backend/.github/labeler.yml +14 -0
  59. package/backend/LICENSE +661 -0
  60. package/backend/README.md +3 -0
  61. package/backend/Source/BBSSpider.js +50 -0
  62. package/backend/Source/Database.ts +188 -0
  63. package/backend/Source/Initial.sql +95 -0
  64. package/backend/Source/Output.ts +14 -0
  65. package/backend/Source/Process.ts +1227 -0
  66. package/backend/Source/Result.ts +24 -0
  67. package/backend/Source/XMOJ-bbs.code-workspace +11 -0
  68. package/backend/Source/index.ts +31 -0
  69. package/backend/bun.lockb +0 -0
  70. package/backend/package.json +19 -0
  71. package/backend/wrangler.toml +17 -0
  72. package/eula.md +121 -0
  73. package/favicon.ico +0 -0
  74. package/index.html +947 -0
  75. package/package.json +22 -0
  76. package/robots.txt +2 -0
  77. package/sitemap-live/0.xml +26 -0
  78. package/sitemap.xml +6 -0
package/404.html ADDED
@@ -0,0 +1,362 @@
1
+ <!DOCTYPE html>
2
+ <style>
3
+ @import url('https://fonts.googleapis.com/css?family=Audiowide&display=swap');
4
+
5
+ html,
6
+ body {
7
+ margin: 0px;
8
+ overflow: hidden;
9
+ }
10
+
11
+ div {
12
+ position: absolute;
13
+ top: 0%;
14
+ left: 0%;
15
+ height: 100%;
16
+ width: 100%;
17
+ margin: 0px;
18
+ background: radial-gradient(circle, #240015 0%, #12000b 100%);
19
+ overflow: hidden;
20
+ }
21
+
22
+ .wrap {
23
+ position: absolute;
24
+ left: 50%;
25
+ top: 50%;
26
+ transform: translate(-50%, -50%);
27
+ }
28
+
29
+ h2 {
30
+ position: absolute;
31
+ top: 50%;
32
+ left: 50%;
33
+ margin-top: 150px;
34
+ font-size: 32px;
35
+ text-transform: uppercase;
36
+ transform: translate(-50%, -50%);
37
+ display: block;
38
+ color: #12000a;
39
+ font-weight: 300;
40
+ font-family: Audiowide;
41
+ text-shadow: 0px 0px 4px #12000a;
42
+ animation: fadeInText 3s ease-in 3.5s forwards, flicker4 5s linear 7.5s infinite, hueRotate 6s ease-in-out 3s infinite;
43
+ }
44
+
45
+ #svgWrap_1,
46
+ #svgWrap_2 {
47
+ position: absolute;
48
+ height: auto;
49
+ width: 600px;
50
+ max-width: 100%;
51
+ top: 50%;
52
+ left: 50%;
53
+ transform: translate(-50%, -50%);
54
+ }
55
+
56
+ #svgWrap_1,
57
+ #svgWrap_2,
58
+ div {
59
+ animation: hueRotate 6s ease-in-out 3s infinite;
60
+ }
61
+
62
+ #id1_1,
63
+ #id2_1,
64
+ #id3_1 {
65
+ stroke: #ff005d;
66
+ stroke-width: 3px;
67
+ fill: transparent;
68
+ filter: url(#glow);
69
+ }
70
+
71
+ #id1_2,
72
+ #id2_2,
73
+ #id3_2 {
74
+ stroke: #12000a;
75
+ stroke-width: 3px;
76
+ fill: transparent;
77
+ filter: url(#glow);
78
+ }
79
+
80
+ #id3_1 {
81
+ stroke-dasharray: 940px;
82
+ stroke-dashoffset: -940px;
83
+ animation: drawLine3 2.5s ease-in-out 0s forwards, flicker3 4s linear 4s infinite;
84
+ }
85
+
86
+ #id2_1 {
87
+ stroke-dasharray: 735px;
88
+ stroke-dashoffset: -735px;
89
+ animation: drawLine2 2.5s ease-in-out 0.5s forwards, flicker2 4s linear 4.5s infinite;
90
+ }
91
+
92
+ #id1_1 {
93
+ stroke-dasharray: 940px;
94
+ stroke-dashoffset: -940px;
95
+ animation: drawLine1 2.5s ease-in-out 1s forwards, flicker1 4s linear 5s infinite;
96
+ }
97
+
98
+ @keyframes drawLine1 {
99
+ 0% {
100
+ stroke-dashoffset: -940px;
101
+ }
102
+
103
+ 100% {
104
+ stroke-dashoffset: 0px;
105
+ }
106
+ }
107
+
108
+ @keyframes drawLine2 {
109
+ 0% {
110
+ stroke-dashoffset: -735px;
111
+ }
112
+
113
+ 100% {
114
+ stroke-dashoffset: 0px;
115
+ }
116
+ }
117
+
118
+ @keyframes drawLine3 {
119
+ 0% {
120
+ stroke-dashoffset: -940px;
121
+ }
122
+
123
+ 100% {
124
+ stroke-dashoffset: 0px;
125
+ }
126
+ }
127
+
128
+ @keyframes flicker1 {
129
+ 0% {
130
+ stroke: #ff005d;
131
+ }
132
+
133
+ 1% {
134
+ stroke: transparent;
135
+ }
136
+
137
+ 3% {
138
+ stroke: transparent;
139
+ }
140
+
141
+ 4% {
142
+ stroke: #ff005d;
143
+ }
144
+
145
+ 6% {
146
+ stroke: #ff005d;
147
+ }
148
+
149
+ 7% {
150
+ stroke: transparent;
151
+ }
152
+
153
+ 13% {
154
+ stroke: transparent;
155
+ }
156
+
157
+ 14% {
158
+ stroke: #ff005d;
159
+ }
160
+
161
+ 100% {
162
+ stroke: #ff005d;
163
+ }
164
+ }
165
+
166
+ @keyframes flicker2 {
167
+ 0% {
168
+ stroke: #ff005d;
169
+ }
170
+
171
+ 50% {
172
+ stroke: #ff005d;
173
+ }
174
+
175
+ 51% {
176
+ stroke: transparent;
177
+ }
178
+
179
+ 61% {
180
+ stroke: transparent;
181
+ }
182
+
183
+ 62% {
184
+ stroke: #ff005d;
185
+ }
186
+
187
+ 100% {
188
+ stroke: #ff005d;
189
+ }
190
+ }
191
+
192
+ @keyframes flicker3 {
193
+ 0% {
194
+ stroke: #ff005d;
195
+ }
196
+
197
+ 1% {
198
+ stroke: transparent;
199
+ }
200
+
201
+ 10% {
202
+ stroke: transparent;
203
+ }
204
+
205
+ 11% {
206
+ stroke: #ff005d;
207
+ }
208
+
209
+ 40% {
210
+ stroke: #ff005d;
211
+ }
212
+
213
+ 41% {
214
+ stroke: transparent;
215
+ }
216
+
217
+ 45% {
218
+ stroke: transparent;
219
+ }
220
+
221
+ 46% {
222
+ stroke: #ff005d;
223
+ }
224
+
225
+ 100% {
226
+ stroke: #ff005d;
227
+ }
228
+ }
229
+
230
+ @keyframes flicker4 {
231
+ 0% {
232
+ color: #ff005d;
233
+ text-shadow: 0px 0px 4px #ff005d;
234
+ }
235
+
236
+ 30% {
237
+ color: #ff005d;
238
+ text-shadow: 0px 0px 4px #ff005d;
239
+ }
240
+
241
+ 31% {
242
+ color: #12000a;
243
+ text-shadow: 0px 0px 4px #12000a;
244
+ }
245
+
246
+ 32% {
247
+ color: #ff005d;
248
+ text-shadow: 0px 0px 4px #ff005d;
249
+ }
250
+
251
+ 36% {
252
+ color: #ff005d;
253
+ text-shadow: 0px 0px 4px #ff005d;
254
+ }
255
+
256
+ 37% {
257
+ color: #12000a;
258
+ text-shadow: 0px 0px 4px #12000a;
259
+ }
260
+
261
+ 41% {
262
+ color: #12000a;
263
+ text-shadow: 0px 0px 4px #12000a;
264
+ }
265
+
266
+ 42% {
267
+ color: #ff005d;
268
+ text-shadow: 0px 0px 4px #ff005d;
269
+ }
270
+
271
+ 85% {
272
+ color: #ff005d;
273
+ text-shadow: 0px 0px 4px #ff005d;
274
+ }
275
+
276
+ 86% {
277
+ color: #12000a;
278
+ text-shadow: 0px 0px 4px #12000a;
279
+ }
280
+
281
+ 95% {
282
+ color: #12000a;
283
+ text-shadow: 0px 0px 4px #12000a;
284
+ }
285
+
286
+ 96% {
287
+ color: #ff005d;
288
+ text-shadow: 0px 0px 4px #ff005d;
289
+ }
290
+
291
+ 100% {
292
+ color: #ff005d;
293
+ text-shadow: 0px 0px 4px #ff005d;
294
+ }
295
+ }
296
+
297
+ @keyframes fadeInText {
298
+ 1% {
299
+ color: #12000a;
300
+ text-shadow: 0px 0px 4px #12000a;
301
+ }
302
+
303
+ 70% {
304
+ color: #ff005d;
305
+ text-shadow: 0px 0px 14px #ff005d;
306
+ }
307
+
308
+ 100% {
309
+ color: #ff005d;
310
+ text-shadow: 0px 0px 4px #ff005d;
311
+ }
312
+ }
313
+
314
+ @keyframes hueRotate {
315
+ 0% {
316
+ filter: hue-rotate(0deg);
317
+ }
318
+
319
+ 50% {
320
+ filter: hue-rotate(-120deg);
321
+ }
322
+
323
+ 100% {
324
+ filter: hue-rotate(0deg);
325
+ }
326
+ }
327
+ </style>
328
+ <div></div>
329
+ <svg id="svgWrap_2" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 700 250">
330
+ <g>
331
+ <path id="id3_2"
332
+ d="M195.7 232.67h-37.1V149.7H27.76c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98H158.6V29.62h37.1v203.05z" />
333
+ <path id="id2_2"
334
+ d="M470.69 147.71c0 8.31-1.06 16.17-3.19 23.58-2.12 7.41-5.12 14.28-8.99 20.6-3.87 6.33-8.45 11.99-13.74 16.99-5.29 5-11.07 9.28-17.35 12.81a85.146 85.146 0 0 1-20.04 8.14 83.637 83.637 0 0 1-21.67 2.83H319.3c-7.46 0-14.73-.94-21.81-2.83-7.08-1.89-13.76-4.6-20.04-8.14a88.292 88.292 0 0 1-17.35-12.81c-5.29-5-9.84-10.67-13.66-16.99-3.82-6.32-6.8-13.19-8.92-20.6-2.12-7.41-3.19-15.27-3.19-23.58v-33.13c0-12.46 2.34-23.88 7.01-34.27 4.67-10.38 10.92-19.33 18.76-26.83 7.83-7.5 16.87-13.36 27.12-17.56 10.24-4.2 20.93-6.3 32.07-6.3h66.41c7.36 0 14.58.94 21.67 2.83 7.08 1.89 13.76 4.6 20.04 8.14a88.292 88.292 0 0 1 17.35 12.81c5.29 5 9.86 10.67 13.74 16.99 3.87 6.33 6.87 13.19 8.99 20.6 2.13 7.41 3.19 15.27 3.19 23.58v33.14zm-37.1-33.13c0-7.27-1.32-13.88-3.96-19.82-2.64-5.95-6.16-11.04-10.55-15.29-4.39-4.25-9.46-7.5-15.22-9.77-5.76-2.27-11.8-3.35-18.13-3.26h-66.41c-6.14-.09-12.11.97-17.91 3.19-5.81 2.22-10.95 5.43-15.44 9.63-4.48 4.2-8.07 9.3-10.76 15.29-2.69 6-4.04 12.67-4.04 20.04v33.13c0 7.36 1.32 14.02 3.96 19.97 2.64 5.95 6.18 11.02 10.62 15.22 4.44 4.2 9.56 7.43 15.36 9.7 5.8 2.27 11.87 3.35 18.2 3.26h66.41c7.27 0 13.85-1.2 19.75-3.61s10.93-5.73 15.08-9.98 7.36-9.32 9.63-15.22c2.27-5.9 3.4-12.34 3.4-19.33v-33.15zm-16-26.91a17.89 17.89 0 0 1 2.83 6.73c.47 2.41.47 4.77 0 7.08-.47 2.31-1.39 4.48-2.76 6.51-1.37 2.03-3.14 3.75-5.31 5.17l-99.4 66.41c-1.61 1.23-3.26 2.08-4.96 2.55-1.7.47-3.45.71-5.24.71-3.02 0-5.9-.71-8.64-2.12-2.74-1.42-4.96-3.44-6.66-6.09a17.89 17.89 0 0 1-2.83-6.73c-.47-2.41-.5-4.77-.07-7.08.43-2.31 1.3-4.48 2.62-6.51 1.32-2.03 3.07-3.75 5.24-5.17l99.69-66.41a17.89 17.89 0 0 1 6.73-2.83c2.41-.47 4.77-.47 7.08 0 2.31.47 4.48 1.37 6.51 2.69 2.03 1.32 3.75 3.02 5.17 5.09z" />
335
+ <path id="id1_2"
336
+ d="M688.33 232.67h-37.1V149.7H520.39c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98h112.57V29.62h37.1v203.05z" />
337
+ </g>
338
+ </svg>
339
+ <svg id="svgWrap_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 700 250">
340
+ <g>
341
+ <path id="id3_1"
342
+ d="M195.7 232.67h-37.1V149.7H27.76c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98H158.6V29.62h37.1v203.05z" />
343
+ <path id="id2_1"
344
+ d="M470.69 147.71c0 8.31-1.06 16.17-3.19 23.58-2.12 7.41-5.12 14.28-8.99 20.6-3.87 6.33-8.45 11.99-13.74 16.99-5.29 5-11.07 9.28-17.35 12.81a85.146 85.146 0 0 1-20.04 8.14 83.637 83.637 0 0 1-21.67 2.83H319.3c-7.46 0-14.73-.94-21.81-2.83-7.08-1.89-13.76-4.6-20.04-8.14a88.292 88.292 0 0 1-17.35-12.81c-5.29-5-9.84-10.67-13.66-16.99-3.82-6.32-6.8-13.19-8.92-20.6-2.12-7.41-3.19-15.27-3.19-23.58v-33.13c0-12.46 2.34-23.88 7.01-34.27 4.67-10.38 10.92-19.33 18.76-26.83 7.83-7.5 16.87-13.36 27.12-17.56 10.24-4.2 20.93-6.3 32.07-6.3h66.41c7.36 0 14.58.94 21.67 2.83 7.08 1.89 13.76 4.6 20.04 8.14a88.292 88.292 0 0 1 17.35 12.81c5.29 5 9.86 10.67 13.74 16.99 3.87 6.33 6.87 13.19 8.99 20.6 2.13 7.41 3.19 15.27 3.19 23.58v33.14zm-37.1-33.13c0-7.27-1.32-13.88-3.96-19.82-2.64-5.95-6.16-11.04-10.55-15.29-4.39-4.25-9.46-7.5-15.22-9.77-5.76-2.27-11.8-3.35-18.13-3.26h-66.41c-6.14-.09-12.11.97-17.91 3.19-5.81 2.22-10.95 5.43-15.44 9.63-4.48 4.2-8.07 9.3-10.76 15.29-2.69 6-4.04 12.67-4.04 20.04v33.13c0 7.36 1.32 14.02 3.96 19.97 2.64 5.95 6.18 11.02 10.62 15.22 4.44 4.2 9.56 7.43 15.36 9.7 5.8 2.27 11.87 3.35 18.2 3.26h66.41c7.27 0 13.85-1.2 19.75-3.61s10.93-5.73 15.08-9.98 7.36-9.32 9.63-15.22c2.27-5.9 3.4-12.34 3.4-19.33v-33.15zm-16-26.91a17.89 17.89 0 0 1 2.83 6.73c.47 2.41.47 4.77 0 7.08-.47 2.31-1.39 4.48-2.76 6.51-1.37 2.03-3.14 3.75-5.31 5.17l-99.4 66.41c-1.61 1.23-3.26 2.08-4.96 2.55-1.7.47-3.45.71-5.24.71-3.02 0-5.9-.71-8.64-2.12-2.74-1.42-4.96-3.44-6.66-6.09a17.89 17.89 0 0 1-2.83-6.73c-.47-2.41-.5-4.77-.07-7.08.43-2.31 1.3-4.48 2.62-6.51 1.32-2.03 3.07-3.75 5.24-5.17l99.69-66.41a17.89 17.89 0 0 1 6.73-2.83c2.41-.47 4.77-.47 7.08 0 2.31.47 4.48 1.37 6.51 2.69 2.03 1.32 3.75 3.02 5.17 5.09z" />
345
+ <path id="id1_1"
346
+ d="M688.33 232.67h-37.1V149.7H520.39c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98h112.57V29.62h37.1v203.05z" />
347
+ </g>
348
+ </svg>
349
+
350
+ <svg>
351
+ <defs>
352
+ <filter id="glow">
353
+ <fegaussianblur class="blur" result="coloredBlur" stddeviation="4"></fegaussianblur>
354
+ <femerge>
355
+ <femergenode in="coloredBlur"></femergenode>
356
+ <femergenode in="SourceGraphic"></femergenode>
357
+ </femerge>
358
+ </filter>
359
+ </defs>
360
+ </svg>
361
+
362
+ <h2>Page Not Found</h2>
package/AddonScript.js ADDED
@@ -0,0 +1,10 @@
1
+ if (localStorage.getItem("UserScript-ImportantNotice-20231015") == null) {
2
+ let InputValue = prompt("警告!警告!警告!请仔细阅读以下内容!请检查你是否安装了两个脚本! 如果是, 请删除一个. 如果你已经明白了这些内容,那么请在下方输入“我已知晓”并点击确定。");
3
+ if (InputValue != "我已知晓") {
4
+ alert("您输入的内容不正确!请重新安装用户脚本!安装指南在https://www.seanoj.edu.eu.org/#Install。");
5
+ window.location.href = "https://www.seanoj.edu.eu.org/#Install";
6
+ }
7
+ else {
8
+ localStorage.setItem("UserScript-ImportantNotice-20231015", "true")
9
+ }
10
+ }
package/CNAME ADDED
@@ -0,0 +1 @@
1
+ ghpages.xmoj-bbs.tech
@@ -0,0 +1,218 @@
1
+ # 贡献者公约
2
+
3
+ ## 我们的承诺
4
+
5
+ 身为社区成员、贡献者和领袖,我们承诺使社区参与者不受骚扰,无论其年龄、体型、可见或不可见的缺陷、族裔、性征、性别认同和表达、经验水平、教育程度、社会与经济地位、国籍、相貌、种族、种姓、肤色、宗教信仰、性倾向或性取向如何。
6
+
7
+ 我们承诺以有助于建立开放、友善、多样化、包容、健康社区的方式行事和互动。
8
+
9
+ ## 我们的准则
10
+
11
+ 有助于为我们的社区创造积极环境的行为例子包括但不限于:
12
+
13
+ * 表现出对他人的同情和善意
14
+ * 尊重不同的主张、观点和感受
15
+ * 提出和大方接受建设性意见
16
+ * 承担责任并向受我们错误影响的人道歉
17
+ * 注重社区共同诉求,而非个人得失
18
+
19
+ 不当行为例子包括:
20
+
21
+ * 使用情色化的语言或图像,及性引诱或挑逗
22
+ * 嘲弄、侮辱或诋毁性评论,以及人身或政治攻击
23
+ * 公开或私下的骚扰行为
24
+ * 未经他人明确许可,公布他人的私人信息,如物理或电子邮件地址
25
+ * 其他有理由认定为违反职业操守的不当行为
26
+
27
+ ## 责任和权力
28
+
29
+ 社区领袖有责任解释和落实我们所认可的行为准则,并妥善公正地对他们认为不当、威胁、冒犯或有害的任何行为采取纠正措施。
30
+
31
+ 社区领导有权力和责任删除、编辑或拒绝或拒绝与本行为准则不相符的评论(comment)、提交(commits)、代码、维基(wiki)编辑、议题(issues)或其他贡献,并在适当时机知采取措施的理由。
32
+
33
+ ## 适用范围
34
+
35
+ 本行为准则适用于所有社区场合,也适用于在公共场所代表社区时的个人。
36
+
37
+ 代表社区的情形包括使用官方电子邮件地址、通过官方社交媒体帐户发帖或在线上或线下活动中担任指定代表。
38
+
39
+ ## 监督
40
+
41
+ 辱骂、骚扰或其他不可接受的行为可通过 jpxx_chenlangning@outlook.com 向负责监督的社区领袖报告。
42
+ 所有投诉都将得到及时和公平的审查和调查。
43
+
44
+ 所有社区领袖都有义务尊重任何事件报告者的隐私和安全。
45
+
46
+ ## 处理方针
47
+
48
+ 社区领袖将遵循下列社区处理方针来明确他们所认定违反本行为准则的行为的处理方式:
49
+
50
+ ### 1. 纠正
51
+
52
+ **社区影响**:使用不恰当的语言或其他在社区中被认定为不符合职业道德或不受欢迎的行为。
53
+
54
+ **处理意见**:由社区领袖发出非公开的书面警告,明确说明违规行为的性质,并解释举止如何不妥。或将要求公开道歉。
55
+
56
+ ### 2. 警告
57
+
58
+ **社区影响**:单个或一系列违规行为。
59
+
60
+ **处理意见**:警告并对连续性行为进行处理。在指定时间内,不得与相关人员互动,包括主动与行为准则执行者互动。这包括避免在社区场所和外部渠道中的互动。违反这些条款可能会导致临时或永久封禁。
61
+
62
+ ### 3. 临时封禁
63
+
64
+ **社区影响**: 严重违反社区准则,包括持续的不当行为。
65
+
66
+ **处理意见**: 在指定时间内,暂时禁止与社区进行任何形式的互动或公开交流。在此期间,不得与相关人员进行公开或私下互动,包括主动与行为准则执行者互动。违反这些条款可能会导致永久封禁。
67
+
68
+ ### 4. 永久封禁
69
+
70
+ **社区影响**:行为模式表现出违反社区准则,包括持续的不当行为、骚扰个人或攻击或贬低某个类别的个体。
71
+
72
+ **处理意见**:永久禁止在社区内进行任何形式的公开互动。
73
+
74
+ ## 参见
75
+
76
+ 本行为准则改编自 [Contributor Covenant][homepage] 2.1 版, 参见 [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]。
77
+
78
+ 社区处理方针灵感来源于 [Mozilla's code of conduct enforcement ladder][Mozilla CoC]。
79
+
80
+ 有关本行为准则的常见问题的答案,参见 [https://www.contributor-covenant.org/faq][FAQ]。
81
+ 其他语言翻译参见 [https://www.contributor-covenant.org/translations][translations]。
82
+
83
+ [homepage]: https://www.contributor-covenant.org
84
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
85
+ [Mozilla CoC]: https://github.com/mozilla/diversity
86
+ [FAQ]: https://www.contributor-covenant.org/faq
87
+ [translations]: https://www.contributor-covenant.org/translations
88
+
89
+ ***
90
+
91
+ # Contributor Covenant Code of Conduct
92
+
93
+ ## Our Pledge
94
+
95
+ We as members, contributors, and leaders pledge to make participation in our
96
+ community a harassment-free experience for everyone, regardless of age, body
97
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
98
+ identity and expression, level of experience, education, socio-economic status,
99
+ nationality, personal appearance, race, religion, or sexual identity
100
+ and orientation.
101
+
102
+ We pledge to act and interact in ways that contribute to an open, welcoming,
103
+ diverse, inclusive, and healthy community.
104
+
105
+ ## Our Standards
106
+
107
+ Examples of behavior that contributes to a positive environment for our
108
+ community include:
109
+
110
+ * Demonstrating empathy and kindness toward other people
111
+ * Being respectful of differing opinions, viewpoints, and experiences
112
+ * Giving and gracefully accepting constructive feedback
113
+ * Accepting responsibility and apologizing to those affected by our mistakes,
114
+ and learning from the experience
115
+ * Focusing on what is best not just for us as individuals, but for the
116
+ overall community
117
+
118
+ Examples of unacceptable behavior include:
119
+
120
+ * The use of sexualized language or imagery, and sexual attention or
121
+ advances of any kind
122
+ * Trolling, insulting or derogatory comments, and personal or political attacks
123
+ * Public or private harassment
124
+ * Publishing others' private information, such as a physical or email
125
+ address, without their explicit permission
126
+ * Other conduct which could reasonably be considered inappropriate in a
127
+ professional setting
128
+
129
+ ## Enforcement Responsibilities
130
+
131
+ Community leaders are responsible for clarifying and enforcing our standards of
132
+ acceptable behavior and will take appropriate and fair corrective action in
133
+ response to any behavior that they deem inappropriate, threatening, offensive,
134
+ or harmful.
135
+
136
+ Community leaders have the right and responsibility to remove, edit, or reject
137
+ comments, commits, code, wiki edits, issues, and other contributions that are
138
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
139
+ decisions when appropriate.
140
+
141
+ ## Scope
142
+
143
+ This Code of Conduct applies within all community spaces, and also applies when
144
+ an individual is officially representing the community in public spaces.
145
+ Examples of representing our community include using an official e-mail address,
146
+ posting via an official social media account, or acting as an appointed
147
+ representative at an online or offline event.
148
+
149
+ ## Enforcement
150
+
151
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
152
+ reported to the community leaders responsible for enforcement at
153
+ jpxx_chenlangning@outlook.com.
154
+ All complaints will be reviewed and investigated promptly and fairly.
155
+
156
+ All community leaders are obligated to respect the privacy and security of the
157
+ reporter of any incident.
158
+
159
+ ## Enforcement Guidelines
160
+
161
+ Community leaders will follow these Community Impact Guidelines in determining
162
+ the consequences for any action they deem in violation of this Code of Conduct:
163
+
164
+ ### 1. Correction
165
+
166
+ **Community Impact**: Use of inappropriate language or other behavior deemed
167
+ unprofessional or unwelcome in the community.
168
+
169
+ **Consequence**: A private, written warning from community leaders, providing
170
+ clarity around the nature of the violation and an explanation of why the
171
+ behavior was inappropriate. A public apology may be requested.
172
+
173
+ ### 2. Warning
174
+
175
+ **Community Impact**: A violation through a single incident or series
176
+ of actions.
177
+
178
+ **Consequence**: A warning with consequences for continued behavior. No
179
+ interaction with the people involved, including unsolicited interaction with
180
+ those enforcing the Code of Conduct, for a specified period of time. This
181
+ includes avoiding interactions in community spaces as well as external channels
182
+ like social media. Violating these terms may lead to a temporary or
183
+ permanent ban.
184
+
185
+ ### 3. Temporary Ban
186
+
187
+ **Community Impact**: A serious violation of community standards, including
188
+ sustained inappropriate behavior.
189
+
190
+ **Consequence**: A temporary ban from any sort of interaction or public
191
+ communication with the community for a specified period of time. No public or
192
+ private interaction with the people involved, including unsolicited interaction
193
+ with those enforcing the Code of Conduct, is allowed during this period.
194
+ Violating these terms may lead to a permanent ban.
195
+
196
+ ### 4. Permanent Ban
197
+
198
+ **Community Impact**: Demonstrating a pattern of violation of community
199
+ standards, including sustained inappropriate behavior, harassment of an
200
+ individual, or aggression toward or disparagement of classes of individuals.
201
+
202
+ **Consequence**: A permanent ban from any sort of public interaction within
203
+ the community.
204
+
205
+ ## Attribution
206
+
207
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
208
+ version 2.0, available at
209
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
210
+
211
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct
212
+ enforcement ladder](https://github.com/mozilla/diversity).
213
+
214
+ [homepage]: https://www.contributor-covenant.org
215
+
216
+ For answers to common questions about this code of conduct, see the FAQ at
217
+ https://www.contributor-covenant.org/faq. Translations are available at
218
+ https://www.contributor-covenant.org/translations.
package/Compare.md ADDED
@@ -0,0 +1,21 @@
1
+ | 项目 | [小明的OJ 论坛](https://xmoj.flarum.cloud/) 基本弃坑,不再更新 | [XMOJ增强脚本](https://web.xmoj-bbs.tech/) |
2
+ | :------------------ | :---------------------------------------------------------- | :---------------------------------------------------------------------- |
3
+ | 界面 | :+1: 界面很好看 | :x: 界面不是很好看 |
4
+ | `Markdown`与`KaTex` | :+1: 支持 | :+1: 支持 |
5
+ | 论坛功能 | :+1: 支持投票、邮件提醒、博客、头像等衍生功能 | :x: 仅支持论坛与私信 |
6
+ | 总体功能 | :x: 仅支持论坛与Blog | :+1: 支持ACM排名等多种实用功能 |
7
+ | 浏览 | :x: 访问后看到的不是XMOJ域名 | :+1: 访问后看到的域名也是XMOJ |
8
+ | 管理 | :+1: 管理内容丰富 | :x: 无法进行细致的管理 |
9
+ | 隐私 | :x: “小明”可以看到你发的内容 | :+1: 你的浏览记录完全被保护不会被“小明”看到 |
10
+ | 稳定性 | :x: 服务器相对稳定 (请勿使用共享办公室WiFi访问) | :+1: 服务器稳定 |
11
+ | 安全性 | :+1: 使用Cloudflare保护 | :+1: 使用Cloudflare保护 |
12
+ | 开发过程 | :x: 套的模板,加入了权限、昵称、CDN等 | :+1: 从零开始手写开发 |
13
+ | 服务器开源 | :+1: [模板在Github上开源](https://github.com/flarum/flarum) | :+1: [完全在Github上开源](https://github.com/PythonSmall-Q/XMOJ-Script) |
14
+ | 服务器地点 | :+1: 中国贵州贵阳市+Cloudflare泛播 | :+1: Cloudflare泛播 |
15
+ | 域名 | :x: 使用共享域名(单独域名申请中) | :+1: 使用单独域名 |
16
+ | 安装方式 | :+1: 无需安装,直接使用 | :x: 需要安装用户脚本管理器 |
17
+ | 账号 | :x: 需要注册账号或者使用第三方登录 | :+1: 与XMOJ账号通用,自动登录 |
18
+ | 言论安全性 | :+1: 评论可以被自动过滤 | :x: 评论只能管理员手动删除 |
19
+ | 言论自由度 | :x: 攻击性发言可能会被自动屏蔽 | :+1: 管理员一般不会删除评论 |
20
+ | 网站安全性 | :+1: 使用SSL证书加密 | :+1: 使用SSL证书加密 |
21
+ | 更新速度 | :x:开发者咕咕咕,于是弃坑了 | :+1:较快 |
package/Images/1.png ADDED
Binary file
package/Images/10.png ADDED
Binary file
package/Images/11.png ADDED
Binary file
package/Images/12.png ADDED
Binary file
package/Images/13.png ADDED
Binary file
package/Images/14.png ADDED
Binary file
package/Images/15.png ADDED
Binary file
package/Images/16.png ADDED
Binary file
package/Images/17.png ADDED
Binary file
package/Images/2.png ADDED
Binary file
package/Images/3.png ADDED
Binary file
package/Images/4.png ADDED
Binary file
package/Images/5.png ADDED
Binary file
package/Images/6.png ADDED
Binary file
package/Images/7.png ADDED
Binary file
package/Images/8.png ADDED
Binary file
package/Images/9.png ADDED
Binary file