improve: name and description format
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
// struct-activity.mjs
|
// struct-activity.mjs
|
||||||
|
import pangu from 'pangu';
|
||||||
import { logger } from '../utils/logger.mjs';
|
import { logger } from '../utils/logger.mjs';
|
||||||
|
|
||||||
let clubSchema = {
|
let clubSchema = {
|
||||||
@@ -51,7 +52,15 @@ async function applyFields(field, structuredActivityData) {
|
|||||||
structuredActivityData.category = field.fData;
|
structuredActivityData.category = field.fData;
|
||||||
break;
|
break;
|
||||||
case field.fID == "activityname":
|
case field.fID == "activityname":
|
||||||
structuredActivityData.name = field.fData;
|
structuredActivityData.name = field.fData.replaceAll(" "," ");
|
||||||
|
structuredActivityData.name = structuredActivityData.name.replaceAll(")", ")");
|
||||||
|
structuredActivityData.name = structuredActivityData.name.replaceAll("(", "(");
|
||||||
|
structuredActivityData.name = structuredActivityData.name.replaceAll("’", "'");
|
||||||
|
structuredActivityData.name = structuredActivityData.name.replaceAll(".", "");
|
||||||
|
structuredActivityData.name = structuredActivityData.name.replaceAll("IssuesT台上的社会问题", "Issues T 台上的社会问题");
|
||||||
|
structuredActivityData.name =
|
||||||
|
structuredActivityData.name.replaceAll("校管弦乐团(新老成员都适用", "校管弦乐团(新老成员都适用)").replaceAll("))",")");
|
||||||
|
structuredActivityData.name = pangu.spacing(structuredActivityData.name);
|
||||||
break;
|
break;
|
||||||
case field.fID == "day":
|
case field.fID == "day":
|
||||||
structuredActivityData.meeting.day = field.fData;
|
structuredActivityData.meeting.day = field.fData;
|
||||||
@@ -91,8 +100,12 @@ async function applyFields(field, structuredActivityData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function postProcess(structuredActivityData) {
|
async function postProcess(structuredActivityData) {
|
||||||
|
// Format description
|
||||||
structuredActivityData.description = structuredActivityData.description.replaceAll("<br/>","\n");
|
structuredActivityData.description = structuredActivityData.description.replaceAll("<br/>","\n");
|
||||||
structuredActivityData.description = structuredActivityData.description.replaceAll("\u000B","\v");
|
structuredActivityData.description = structuredActivityData.description.replaceAll("\u000B","\v");
|
||||||
|
structuredActivityData.description = pangu.spacing(structuredActivityData.description);
|
||||||
|
structuredActivityData.description = structuredActivityData.description.replaceAll("\n ","\n");
|
||||||
|
// Finishing fields
|
||||||
if (structuredActivityData.name.search("Student-led") != -1 ||
|
if (structuredActivityData.name.search("Student-led") != -1 ||
|
||||||
structuredActivityData.name.search("学生社团") != -1 ||
|
structuredActivityData.name.search("学生社团") != -1 ||
|
||||||
structuredActivityData.name.search("(SL)") != -1) {
|
structuredActivityData.name.search("(SL)") != -1) {
|
||||||
@@ -107,8 +120,8 @@ async function postProcess(structuredActivityData) {
|
|||||||
if (!grades || grades.length < 3) {
|
if (!grades || grades.length < 3) {
|
||||||
throw new Error('Invalid grade format in schedule');
|
throw new Error('Invalid grade format in schedule');
|
||||||
}
|
}
|
||||||
structuredActivityData.grades.min = grades[1];
|
structuredActivityData.grades.min = parseInt(grades[1]).toString(10);
|
||||||
structuredActivityData.grades.max = grades[2];
|
structuredActivityData.grades.max = parseInt(grades[2]).toString(10);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(`Failed to parse grades: ${error.message}`);
|
logger.error(`Failed to parse grades: ${error.message}`);
|
||||||
structuredActivityData.grades.min = null;
|
structuredActivityData.grades.min = null;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"ioredis": "^5.6.1",
|
"ioredis": "^5.6.1",
|
||||||
"node-fetch": "^3.3.2",
|
"node-fetch": "^3.3.2",
|
||||||
"p-limit": "^6.2.0",
|
"p-limit": "^6.2.0",
|
||||||
|
"pangu": "^4.0.7",
|
||||||
"uuid": "^11.1.0"
|
"uuid": "^11.1.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
|
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
|
||||||
|
|||||||
9
pnpm-lock.yaml
generated
9
pnpm-lock.yaml
generated
@@ -32,6 +32,9 @@ importers:
|
|||||||
p-limit:
|
p-limit:
|
||||||
specifier: ^6.2.0
|
specifier: ^6.2.0
|
||||||
version: 6.2.0
|
version: 6.2.0
|
||||||
|
pangu:
|
||||||
|
specifier: ^4.0.7
|
||||||
|
version: 4.0.7
|
||||||
uuid:
|
uuid:
|
||||||
specifier: ^11.1.0
|
specifier: ^11.1.0
|
||||||
version: 11.1.0
|
version: 11.1.0
|
||||||
@@ -683,6 +686,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
|
resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
|
pangu@4.0.7:
|
||||||
|
resolution: {integrity: sha512-weZKJIwwy5gjt4STGVUH9bix3BGk7wZ2ahtIypwe3e/mllsrIZIvtfLx1dPX56GcpZFOCFKmeqI1qVuB9enRzA==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
parseurl@1.3.3:
|
parseurl@1.3.3:
|
||||||
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
@@ -1886,6 +1893,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yocto-queue: 1.2.1
|
yocto-queue: 1.2.1
|
||||||
|
|
||||||
|
pangu@4.0.7: {}
|
||||||
|
|
||||||
parseurl@1.3.3: {}
|
parseurl@1.3.3: {}
|
||||||
|
|
||||||
path-to-regexp@8.2.0: {}
|
path-to-regexp@8.2.0: {}
|
||||||
|
|||||||
Reference in New Issue
Block a user