Add search.js

This commit is contained in:
2026-11-10 09:11:29 +00:00
والد 903b5ab685
کامیت 246473e6ff
+76
مشاهده پرونده
@@ -0,0 +1,76 @@
const fs = require("fs");
const path = require("path");
const readline = require("readline");
const filePath = path.join(__dirname, "SadenTel_Documents.csv");
// خواندن فایل CSV
const fileContent = fs.readFileSync(filePath, "utf8");
// تبدیل CSV به آرایه اسناد
const lines = fileContent.trim().split(/\r?\n/);
const documents = lines.slice(1).map(line => {
const columns = line.split(",");
return {
row: columns[0],
title: columns[1],
id: columns[2]
};
});
// ایجاد محیط دریافت ورودی
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// جست‌وجوی اسناد
function searchDocument(query) {
const searchText = query.trim().toLowerCase();
const results = documents.filter(doc =>
doc.title.toLowerCase().includes(searchText) ||
doc.id.toLowerCase().includes(searchText)
);
if (results.length === 0) {
console.log("\nسندی پیدا نشد.");
return;
}
console.log(`\nتعداد نتایج: ${results.length}\n`);
results.forEach(doc => {
console.log("------------------------------");
console.log("عنوان سند:", doc.title);
console.log("شناسه داخلی:", doc.id);
console.log("ردیف:", doc.row);
});
console.log("------------------------------");
}
// دریافت عبارت جست‌وجو
function askSearch() {
rl.question("\nنام یا شناسه سند را وارد کنید (برای خروج exit): ", query => {
if (query.trim().toLowerCase() === "exit") {
rl.close();
return;
}
if (query.trim() === "") {
console.log("لطفاً عبارت جست‌وجو را وارد کنید.");
} else {
searchDocument(query);
}
askSearch();
});
}
console.log("===== SadenTel Document Search =====");
askSearch();