Spaces:
Running
Running
<!-- | |
https://huggingface.co/spaces/theWitcher/sagi-ai-tools | |
https://huggingface.co/spaces/theWitcher/sagi-ai-tools/blob/main/index.html | |
--> | |
<html lang="he" dir="rtl"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>ארגז הכלים שלי לבינה מלאכותית</title> | |
<script src="https://cdn.tailwindcss.com"> | |
function getYouTubeID(url) { | |
const match = url.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([^?&\/\s]+)/); | |
return match ? match[1] : ''; | |
} | |
function renderVideos() { | |
const videosContainer = document.getElementById('videosContainer'); | |
if (!videosContainer) return; | |
videosContainer.innerHTML = ''; | |
toolsData.videos.forEach(video => { | |
const videoId = getYouTubeID(video.url); | |
const embedUrl = `https://www.youtube.com/embed/${videoId}`; | |
const videoCard = document.createElement('div'); | |
videoCard.className = 'bg-white rounded-lg shadow-sm border border-gray-100 overflow-hidden'; | |
videoCard.innerHTML = ` | |
<div class="relative pt-[56.25%]"> | |
<iframe class="absolute top-0 left-0 w-full h-full" src="${embedUrl}" frameborder="0" | |
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" | |
allowfullscreen></iframe> | |
</div> | |
<div class="p-4"> | |
<h3 class="text-lg font-semibold mb-2">${video.title}</h3> | |
<p class="text-gray-600 text-sm mb-3">${video.description}</p> | |
<p class="text-gray-500 text-xs">${formatDate(video.date)}</p> | |
</div> | |
`; | |
videosContainer.appendChild(videoCard); | |
}); | |
} | |
window.addEventListener('DOMContentLoaded', () => { | |
renderVideos(); | |
}); | |
</script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Arimo:wght@400;500;600;700&display=swap'); | |
body { | |
font-family: 'Arimo', sans-serif; | |
background-color: #f9fafb; | |
} | |
.tool-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
} | |
.category-filter .active { | |
background-color: #3b82f6; | |
color: white; | |
} | |
.gradient-text { | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
} | |
/* RTL specific styles */ | |
[dir="rtl"] .rotate-180 { | |
transform: rotate(180deg); | |
} | |
/* Mobile menu styles */ | |
.mobile-menu { | |
max-height: 0; | |
overflow: hidden; | |
transition: max-height 0.3s ease-out; | |
} | |
.mobile-menu.open { | |
max-height: 500px; | |
} | |
/* Admin badge */ | |
.admin-badge { | |
position: absolute; | |
top: -8px; | |
right: -8px; | |
background-color: #ef4444; | |
color: white; | |
border-radius: 9999px; | |
width: 20px; | |
height: 20px; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 10px; | |
} | |
/* Futuristic profile image */ | |
.profile-container { | |
position: relative; | |
width: 200px; | |
height: 200px; | |
margin: 0 auto; | |
} | |
.profile-image { | |
width: 100%; | |
height: 100%; | |
border-radius: 50%; | |
object-fit: cover; | |
border: 4px solid #3b82f6; | |
box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); | |
position: relative; | |
z-index: 2; | |
} | |
.tech-circle { | |
position: absolute; | |
border-radius: 50%; | |
border: 2px solid rgba(59, 130, 246, 0.7); | |
animation: rotate infinite linear; | |
} | |
.tech-circle-1 { | |
width: 220px; | |
height: 220px; | |
top: -10px; | |
left: -10px; | |
animation-duration: 15s; | |
border-style: dashed; | |
} | |
.tech-circle-2 { | |
width: 240px; | |
height: 240px; | |
top: -20px; | |
left: -20px; | |
animation-duration: 20s; | |
animation-direction: reverse; | |
} | |
.tech-circle-3 { | |
width: 260px; | |
height: 260px; | |
top: -30px; | |
left: -30px; | |
animation-duration: 25s; | |
border-style: dotted; | |
} | |
@keyframes rotate { | |
from { transform: rotate(0deg); } | |
to { transform: rotate(360deg); } | |
} | |
.tech-dots { | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
border-radius: 50%; | |
z-index: 1; | |
} | |
.tech-dot { | |
position: absolute; | |
width: 8px; | |
height: 8px; | |
background-color: #8b5cf6; | |
border-radius: 50%; | |
transform: translate(-50%, -50%); | |
} | |
/* Futuristic AI elements */ | |
.ai-particle { | |
position: absolute; | |
background: linear-gradient(135deg, #3b82f6, #8b5cf6); | |
border-radius: 50%; | |
opacity: 0.6; | |
filter: blur(10px); | |
z-index: 0; | |
} | |
.ai-circuit { | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: | |
radial-gradient(circle at center, transparent 0%, #f9fafb 100%), | |
linear-gradient(90deg, transparent 49%, rgba(59, 130, 246, 0.1) 50%, transparent 51%), | |
linear-gradient(0deg, transparent 49%, rgba(59, 130, 246, 0.1) 50%, transparent 51%); | |
background-size: 20px 20px; | |
border-radius: 50%; | |
opacity: 0.3; | |
} | |
</style> | |
</head> | |
<body class="min-h-screen"> | |
<!-- Header --> | |
<header class="bg-white shadow-sm sticky top-0 z-40"> | |
<div class="container mx-auto px-4 py-4"> | |
<div class="flex justify-between items-center"> | |
<div class="flex items-center"> | |
<!-- Mobile menu button --> | |
<button id="mobileMenuButton" class="md:hidden text-gray-600 mr-4"> | |
<i class="fas fa-bars text-xl"></i> | |
</button> | |
<div> | |
<h1 class="text-2xl md:text-3xl font-bold gradient-text">ארגז הכלים שלי ל-AI</h1> | |
<p class="text-gray-600 text-sm md:text-base mt-1">אוסף כלי הבינה המלאכותית המומלצים שלי</p> | |
</div> | |
</div> | |
<div class="hidden md:flex items-center space-x-4 space-x-reverse"> | |
<button id="refreshBtn" class="px-4 py-2 bg-blue-50 text-blue-600 rounded-lg hover:bg-blue-100 transition"> | |
<i class="fas fa-sync-alt ml-2"></i> רענן | |
</button> | |
<!-- <button id="editJsonBtn" class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition relative"> | |
<i class="fas fa-edit ml-2"></i> ערוך JSON | |
<span class="admin-badge">A</span> | |
</button> --> | |
</div> | |
</div> | |
<!-- Mobile menu --> | |
<div id="mobileMenu" class="mobile-menu md:hidden mt-4"> | |
<div class="flex flex-col space-y-2 py-2"> | |
<button id="refreshBtnMobile" class="px-4 py-2 bg-blue-50 text-blue-600 rounded-lg hover:bg-blue-100 transition text-right"> | |
<i class="fas fa-sync-alt ml-2"></i> רענן | |
</button> | |
<button id="editJsonBtnMobile" class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition text-right relative"> | |
<i class="fas fa-edit ml-2"></i> ערוך JSON | |
<span class="admin-badge">A</span> | |
</button> | |
</div> | |
</div> | |
</div> | |
</header> | |
<!-- Main Content --> | |
<main class="container mx-auto px-4 py-8"> | |
<!-- About Me Section - Moved to the top --> | |
<div class="bg-white rounded-lg shadow-sm p-6 border border-gray-100 mb-8 relative overflow-hidden"> | |
<!-- AI Particles Background --> | |
<div class="ai-particle" style="width: 100px; height: 100px; top: -30px; right: -30px;"></div> | |
<div class="ai-particle" style="width: 150px; height: 150px; bottom: -50px; left: -50px;"></div> | |
<div class="ai-particle" style="width: 80px; height: 80px; top: 50%; right: 20%;"></div> | |
<h2 class="text-2xl font-bold mb-6 text-gray-800 border-b pb-2">קצת עליי</h2> | |
<div class="flex flex-col md:flex-row gap-6"> | |
<div class="md:w-1/3"> | |
<div class="profile-container"> | |
<!-- AI Circuit Background --> | |
<div class="ai-circuit"></div> | |
<!-- Tech circles --> | |
<div class="tech-circle tech-circle-1"></div> | |
<div class="tech-circle tech-circle-2"></div> | |
<div class="tech-circle tech-circle-3"></div> | |
<!-- Tech dots --> | |
<div class="tech-dots"> | |
<div class="tech-dot" style="top: 10%; left: 50%;"></div> | |
<div class="tech-dot" style="top: 50%; left: 10%;"></div> | |
<div class="tech-dot" style="top: 90%; left: 50%;"></div> | |
<div class="tech-dot" style="top: 50%; left: 90%;"></div> | |
<div class="tech-dot" style="top: 30%; left: 30%;"></div> | |
<div class="tech-dot" style="top: 70%; left: 70%;"></div> | |
<div class="tech-dot" style="top: 30%; left: 70%;"></div> | |
<div class="tech-dot" style="top: 70%; left: 30%;"></div> | |
</div> | |
<!-- Profile image --> | |
<img src="https://i.imgur.com/cnlxCuj.jpeg" alt="שגיא בר און" class="profile-image"> | |
</div> | |
</div> | |
<div class="md:w-2/3"> | |
<h3 class="text-xl font-semibold mb-4">שגיא בר און</h3> | |
<p class="text-gray-700 mb-4"> | |
אני חוקר ויועץ בתחום הבינה המלאכותית, מאסטר NLP, ובעל ניסיון של למעלה מ-25 שנה בתעשיית ההייטק. בעל מומחיות רחבה בפיתוח תוכנה, אוטומציה, ניהול פרויקטים ואסטרטגיה עסקית. | |
</p> | |
<p class="text-gray-700 mb-4"> | |
מרצה אורח באוניברסיטת רייכמן וחבר בסגל הבוחנים של מה"ט - המכון הממשלתי להכשרה בטכנולוגיה ובמדע - לבחינות מהנדסי תוכנה באוניברסיטאות ובמכללות, וכן מנטור לAI במסגרת משרד החינוך. | |
</p> | |
<p class="text-gray-700 mb-4"> | |
בעל תואר שני במנהל עסקים עם התמחות בבינה מלאכותית, תואר ראשון (BSc) במדעי המחשב והנדסאי תוכנה. ההרצאות משלבות ידע עדכני, חשיבה ביקורתית והתנסות חווייתית, מתוך מטרה להעצים אנשים ולאפשר להם להשתמש בטכנולוגיה בחוכמה ובקלות. | |
</p> | |
<p class="text-gray-700"> | |
שמתי לי למטרה להנגיש, להסביר ולחבר את הטכנולוגיה בצורה פשוטה וברורה לכולם. | |
</p> | |
</div> | |
</div> | |
</div> | |
<!-- Search and Filters --> | |
<div class="mb-8"> | |
<div class="flex flex-col md:flex-row md:items-center md:justify-between gap-4"> | |
<div class="relative w-full md:w-96"> | |
<input type="text" id="searchInput" placeholder="חפש כלים..." class="w-full pr-10 pl-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition"> | |
<i class="fas fa-search absolute right-3 top-3.5 text-gray-400"></i> | |
</div> | |
<div class="flex items-center space-x-2 space-x-reverse"> | |
<span class="text-gray-600 hidden md:block">סנן לפי:</span> | |
<div class="category-filter flex flex-wrap gap-2"> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="all">הכל</button> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="productivity">פרודוקטיביות</button> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="writing">כתיבה</button> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="design">עיצוב</button> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="coding">תכנות</button> | |
<button class="filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition" data-category="video">וידאו</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Stats --> | |
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-8"> | |
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100"> | |
<div class="flex items-center"> | |
<div class="p-3 rounded-full bg-blue-50 text-blue-600 ml-3"> | |
<i class="fas fa-tools text-lg"></i> | |
</div> | |
<div> | |
<p class="text-gray-500 text-sm">סה"כ כלים</p> | |
<h3 class="text-xl font-semibold" id="totalTools">0</h3> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100"> | |
<div class="flex items-center"> | |
<div class="p-3 rounded-full bg-purple-50 text-purple-600 ml-3"> | |
<i class="fas fa-star text-lg"></i> | |
</div> | |
<div> | |
<p class="text-gray-500 text-sm">מובילים בדירוג</p> | |
<h3 class="text-xl font-semibold" id="topRated">0</h3> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100"> | |
<div class="flex items-center"> | |
<div class="p-3 rounded-full bg-green-50 text-green-600 ml-3"> | |
<i class="fas fa-bolt text-lg"></i> | |
</div> | |
<div> | |
<p class="text-gray-500 text-sm">חדשים השבוע</p> | |
<h3 class="text-xl font-semibold" id="newTools">0</h3> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100"> | |
<div class="flex items-center"> | |
<div class="p-3 rounded-full bg-yellow-50 text-yellow-600 ml-3"> | |
<i class="fas fa-tags text-lg"></i> | |
</div> | |
<div> | |
<p class="text-gray-500 text-sm">קטגוריות</p> | |
<h3 class="text-xl font-semibold" id="totalCategories">0</h3> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Tools Grid --> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="toolsContainer"> | |
<!-- Tools will be loaded here --> | |
</div> | |
<!-- YouTube Videos Section --> | |
<div class="mt-16"> | |
<h2 class="text-2xl font-bold mb-6 text-gray-800 border-b pb-2">סרטונים נבחרים מערוץ היוטיוב שלי</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="videosContainer"> | |
<!-- Videos will be loaded here --> | |
</div> | |
</div> | |
</main> | |
<!-- JSON Editor Modal --> | |
<div id="jsonEditorModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden"> | |
<div class="bg-white rounded-lg shadow-xl w-full max-w-4xl max-h-[90vh] flex flex-col"> | |
<div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center"> | |
<h3 class="text-lg font-semibold">עריכת הכלים ב-JSON</h3> | |
<button id="closeModalBtn" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times"></i> | |
</button> | |
</div> | |
<div class="p-6 flex-1 overflow-auto"> | |
<div class="flex mb-4"> | |
<button id="showToolsBtn" class="px-4 py-2 bg-blue-600 text-white rounded-l-lg">כלים</button> | |
<button id="showVideosBtn" class="px-4 py-2 bg-gray-200 text-gray-700 rounded-r-lg">סרטונים</button> | |
</div> | |
<textarea id="jsonEditor" class="w-full h-96 p-4 border border-gray-300 rounded-lg font-mono text-sm spellcheck="false"></textarea> | |
</div> | |
<div class="px-6 py-4 border-t border-gray-200 flex justify-end space-x-3 space-x-reverse"> | |
<button id="cancelEditBtn" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition"> | |
ביטול | |
</button> | |
<button id="saveJsonBtn" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"> | |
שמור שינויים | |
</button> | |
</div> | |
</div> | |
</div> | |
<!-- Footer --> | |
<footer class="bg-gray-100 border-t border-gray-200 py-6 mt-16"> | |
<div class="container mx-auto px-4"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="text-gray-600 mb-4 md:mb-0"> | |
© 2023 ארגז הכלים שלי ל-AI. כל הזכויות שמורות. | |
</div> | |
<div class="flex space-x-4 space-x-reverse"> | |
<a href="https://www.youtube.com/@SAGIBARON" target="_blank" class="text-gray-500 hover:text-red-600 transition"> | |
<i class="fab fa-youtube text-xl"></i> | |
</a> | |
<a href="https://www.facebook.com/SAGI.BARON" target="_blank" class="text-gray-500 hover:text-blue-800 transition"> | |
<i class="fab fa-facebook text-xl"></i> | |
</a> | |
<a href="http://www.linkedin.com/in/sagi-bar-on" target="_blank" class="text-gray-500 hover:text-blue-700 transition"> | |
<i class="fab fa-linkedin text-xl"></i> | |
</a> | |
<a href="https://chat.whatsapp.com/GPFASYBEA9CFGUMCVZ5RXP" target="_blank" class="text-gray-500 hover:text-green-600 transition"> | |
<i class="fab fa-whatsapp text-xl"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</footer> | |
<script> | |
// Sample JSON data structure | |
const defaultToolsData = { | |
"tools": [ | |
{ | |
"name": "RunDiffusion", | |
"description": "פלטפורמה להרצת Stable Diffusion בענן עם ממשק גרפי – תומך ב-Automatic1111, ComfyUI, Foocus ועוד, בלי צורך בהתקנה מקומית.", | |
"category": "image", | |
"url": "https://rundiffusion.com/", | |
"icon": "fas fa-cloud", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "nnfs.io", | |
"description": "אתר קורסים ללמידה עצמית של רשתות נוירונים ולמידה עמוקה – עם דגש על הבנה מתמטית ותכנותית.", | |
"category": "education", | |
"url": "https://nnfs.io/", | |
"icon": "fas fa-brain", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "IDM VTON", | |
"description": "מודל AI שמאפשר להלביש וירטואלית בגדים על דמויות. כולל עיבוד תמונה והתאמות מדויקות.", | |
"category": "image", | |
"url": "https://huggingface.co/spaces/yisol/IDM-VTON", | |
"icon": "fas fa-tshirt", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Github Co-Pilot", | |
"description": "עוזר כתיבה חכם למפתחים – מציע קוד, משלים שורות, ומבין את ההקשר תוך כדי העבודה.", | |
"category": "coding", | |
"url": "https://github.com/features/copilot", | |
"icon": "fas fa-code", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Julius AI", | |
"description": "כלי המאפשר יצירת דוחות וניתוחים מתוך טבלאות בצורה טבעית – פשוט שואלים שאלה ומקבלים תשובה חכמה.", | |
"category": "data", | |
"url": "https://julius.ai/", | |
"icon": "fas fa-table", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Mendable", | |
"description": "פלטפורמה להוספת חוויית חיפוש תשובות חכמה לאתרים – כולל תמיכה במקורות שונים ויכולת להבין שאלות בשפה טבעית.", | |
"category": "search", | |
"url": "https://www.mendable.ai/", | |
"icon": "fas fa-search-plus", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Gitbook Lens", | |
"description": "מערכת AI לסיכום תוכן, חיפוש מתקדם והמלצות מתוך המסמכים שלך ב-GitBook. מצוין לצוותי תוכן ודוקומנטציה.", | |
"category": "productivity", | |
"url": "https://docs.gitbook.com/content-editor/searching-your-content/gitbook-ai", | |
"icon": "fas fa-book", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Kapwing", | |
"description": "כלי לעריכת וידאו מבוסס דפדפן – כולל כתוביות אוטומטיות, חיתוך, התאמה לפלטפורמות חברתיות ועוד.", | |
"category": "video", | |
"url": "https://www.kapwing.com/", | |
"icon": "fas fa-video", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "deeplearning.ai", | |
"description": "הבית של אנדרו נג ולמידת מכונה – קורסים, קהילה, מדריכים ומשאבים עדכניים למפתחים וחוקרים.", | |
"category": "education", | |
"url": "https://deeplearning.ai/", | |
"icon": "fas fa-graduation-cap", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Bubble", | |
"description": "פלטפורמת No-Code מתקדמת לבניית אפליקציות עם יכולות AI – כולל תמיכה ב-GPT-4 וכלי גרירה נוחים.", | |
"category": "builder", | |
"url": "https://bubble.io/", | |
"icon": "fas fa-puzzle-piece", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "officey.ai", | |
"description": "שירות תמיכה לקוחות אוטומטי מבוסס AI עם חיבור ל-Zendesk, אינטרקום ווואטסאפ. כולל תיעוד שיחות וניהול פניות.", | |
"category": "customer-support", | |
"url": "https://www.officey.ai/", | |
"icon": "fas fa-headset", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "fastbots.ai", | |
"description": "בוטים מהירים עם AI מובנה – שואבים תוכן מהאתר שלך ונותנים תמיכה אונליין 24/7 ללקוחות.", | |
"category": "customer-support", | |
"url": "https://fastbots.ai/", | |
"icon": "fas fa-robot", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "uchat", | |
"description": "פלטפורמת בניית צ’אטבוטים מתקדמת – כולל אוטומציות, ווב-הוקים, אינטגרציה לוואטסאפ ועוד.", | |
"category": "automation", | |
"url": "https://www.uchat.com.au/", | |
"icon": "fas fa-comments", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Flowise ai", | |
"description": "Low-code לבניית אפליקציות AI עם זרימות עבודה גרפיות – כולל תמיכה במודלי שפה גדולים, אינטגרציות וניהול API.", | |
"category": "builder", | |
"url": "https://flowiseai.com/", | |
"icon": "fas fa-diagram-project", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "WiX", | |
"description": "בניית אתרים בעיצוב מותאם אישית – פשוט לשימוש, מושלם לעסקים קטנים ויזמים.", | |
"category": "builder", | |
"url": "https://www.wix.com/", | |
"icon": "fas fa-globe", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Hostinger", | |
"description": "אירוח אתרים במחירים נוחים, עם ביצועים טובים, SSL חינם, ממשק קל וניהול WordPress מהיר.", | |
"category": "hosting", | |
"url": "https://www.hostinger.com/", | |
"icon": "fas fa-server", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "autogen", | |
"description": "יצירת סוכנים מבוססי שפה באופן אוטומטי וללא קוד – כולל תהליכי זרימה מתקדמים.", | |
"category": "agents", | |
"url": "https://www.microsoft.com/en-us/research/project/autogen/", | |
"icon": "fas fa-project-diagram", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "theresanaiforthat", | |
"description": "מאגר כלים אדיר – כל מה שחשבת עליו, כבר מישהו בנה עם AI. כולל חיפוש לפי תחום.", | |
"category": "directory", | |
"url": "https://theresanaiforthat.com/", | |
"icon": "fas fa-list", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "QR Code", | |
"description": "יצירת קודי QR לכל מטרה – כולל קישורים, אנשי קשר, מיילים ועוד.", | |
"category": "utility", | |
"url": "https://www.qrcode-monkey.com/#vcard", | |
"icon": "fas fa-qrcode", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "bitly", | |
"description": "קיצור לינקים עם סטטיסטיקות – לראות מי לחץ, מתי, וכמה. מותאם גם לשיווק.", | |
"category": "utility", | |
"url": "https://app.bitly.com/", | |
"icon": "fas fa-link", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "יובל AI", | |
"description": "המלצות של יובל על כלים מבוססי AI – פשוט, נוח ומוגש עם חיוך ישראלי.", | |
"category": "directory", | |
"url": "https://tools.yuv.ai/", | |
"icon": "fas fa-star", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "HuggingFace", | |
"description": "הבית של מודלים מבוססי AI, כולל קוד פתוח, דוגמאות לשימוש, וקהילה ענקית.", | |
"category": "platform", | |
"url": "https://huggingface.co/", | |
"icon": "fas fa-hands-helping", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Zapier Central", | |
"description": "חיבור בין אפליקציות לתהליכים אוטומטיים – חוסך שעות של עבודה חוזרת.", | |
"category": "automation", | |
"url": "https://zapier.com/central", | |
"icon": "fas fa-random", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Make", | |
"description": "פלטפורמה עוצמתית לאוטומציה בין שירותים, אפליקציות ו-API – כולל תהליכים מורכבים.", | |
"category": "automation", | |
"url": "https://www.make.com/", | |
"icon": "fas fa-network-wired", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "pexels", | |
"description": "אתר שמציע תמונות וסרטוני וידאו באיכות גבוהה – בחינם ולשימוש מסחרי, ללא צורך בקרדיט. אידיאלי ליוצרים ומעצבים.", | |
"category": "media", | |
"url": "https://www.pexels.com/", | |
"icon": "fas fa-camera", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "partyrock", | |
"description": "כלי של Amazon לבניית אפליקציות בינה מלאכותית – בלי כתיבת קוד. פשוט לגרור ולהריץ.", | |
"category": "builder", | |
"url": "https://partyrock.aws/apps", | |
"icon": "fas fa-tools", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "pmfm.ai", | |
"description": "פלטפורמה לבניית אפליקציות AI ללא קוד – תומכת באינטגרציות ושמירה אוטומטית.", | |
"category": "builder", | |
"url": "https://pmfm.ai/", | |
"icon": "fas fa-cogs", | |
"rating": 3, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Base44", | |
"description": "כלי חדש לבניית אפליקציות בינה מלאכותית ללא קוד. מתאים למתחילים ולניסויים מהירים.", | |
"category": "builder", | |
"url": "https://app.base44.com", | |
"icon": "fas fa-cube", | |
"rating": 3, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "nebius.ai", | |
"description": "פלטפורמת ניתוח AI לצוותים עסקיים – כולל המלצות, ניתוחי ביצועים ודוחות חכמים.", | |
"category": "productivity", | |
"url": "https://studio.nebius.ai/", | |
"icon": "fas fa-chart-line", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "ilovepdf", | |
"description": "סט כלים שלם לעבודה עם PDF: מיזוג, חלוקה, המרה, סיבוב, תיקון, פתיחה והצפנה.", | |
"category": "utility", | |
"url": "https://www.ilovepdf.com/", | |
"icon": "fas fa-file-pdf", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Canva", | |
"description": "עיצוב גרפי לכל אחד – מצגות, פוסטים, סרטונים ודפי נחיתה עם תבניות מדהימות.", | |
"category": "design", | |
"url": "https://www.canva.com/", | |
"icon": "fas fa-paint-brush", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "gamma.app", | |
"description": "יצירת מצגות תוך שניות בעזרת AI – מתאים לשיווק, הוראה ותכנים עסקיים.", | |
"category": "presentation", | |
"url": "https://gamma.app/", | |
"icon": "fas fa-chalkboard-teacher", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "mylens", | |
"description": "יצירת וידאו קצר על נושא בהתבסס רק על טקסט. מתאים במיוחד לתוכן חינוכי בעברית.", | |
"category": "video", | |
"url": "https://mylens.ai/", | |
"icon": "fas fa-video", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Notion AI", | |
"description": "כלי AI מובנה בתוך Notion – מצוין לכתיבה, סיכום, רעיונאות ואירגון ידע.", | |
"category": "productivity", | |
"url": "https://www.notion.so/product/ai", | |
"icon": "fas fa-brain", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "TimeOS", | |
"description": "מזכירות AI לפגישות – כולל סיכומים אוטומטיים לזום, קישורים, מעקב משימות ושיתוף.", | |
"category": "productivity", | |
"url": "https://timeos.com/", | |
"icon": "fas fa-clock", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Mobirise", | |
"description": "כלי לבניית אתרים ללא קוד – מצוין לנחיתות, תיקים אישיים, וללקוחות קטנים.", | |
"category": "builder", | |
"url": "https://mobirise.com/", | |
"icon": "fas fa-globe", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "images to text", | |
"description": "חילוץ טקסט מתמונות בעברית ובשפות נוספות – כולל OCR איכותי לקבצים סרוקים.", | |
"category": "utility", | |
"url": "https://sagi-detect-text-from-images.streamlit.app/", | |
"icon": "fas fa-file-alt", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "sagi-images-to-pdf", | |
"description": "המרת תמונות רבות לקובץ PDF אחד בלחיצת כפתור – כולל ממשק גרירה פשוט.", | |
"category": "utility", | |
"url": "https://sagi-images-to-pdf.streamlit.app/", | |
"icon": "fas fa-file-pdf", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Sketch.metademolab", | |
"description": "כלי לילדים לציור חווייתי – יצירת דמויות בתנועה שמתעוררות לחיים.", | |
"category": "design", | |
"url": "https://sketch.metademolab.com/", | |
"icon": "fas fa-child", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Foocus", | |
"description": "יצירת תמונות מדויקות ממילות מפתח, עם אפשרות לצפייה מקדימה ולתיקונים בזמן אמת.", | |
"category": "image", | |
"url": "https://github.com/lllyasviel/Fooocus", | |
"icon": "fas fa-image", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Ip-Adapter-FaceID", | |
"description": "שילוב תמונות AI עם הפנים שלך – לזיהוי, שילוב דמויות, או פרצופים ממותגים.", | |
"category": "image", | |
"url": "https://huggingface.co/spaces/multimodalart/Ip-Adapter-FaceID", | |
"icon": "fas fa-user-check", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Face to All SDXL", | |
"description": "המרת פנים קיימות לדמויות AI – לדוגמה, פרצוף שלך הופך ל-emojי או גיבור קומיקס.", | |
"category": "image", | |
"url": "https://huggingface.co/spaces/multimodalart/face-to-all", | |
"icon": "fas fa-smile", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Leonardo", | |
"description": "כלי ליצירת תמונות מדויקות ואומנותיות מבוססות AI – כולל טיוטות וגרסאות.", | |
"category": "image", | |
"url": "https://leonardo.ai/", | |
"icon": "fas fa-palette", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Midjourney", | |
"description": "אחד הכלים הפופולריים בעולם ליצירת תמונות מתיאורים טקסטואליים – תוצאות ברמה מטורפת.", | |
"category": "image", | |
"url": "https://www.midjourney.com/home", | |
"icon": "fas fa-brush", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "BGBYe", | |
"description": "הסרת רקע מתמונות – תומך באיורים, לוגואים, וצילומים. פשוט וקל.", | |
"category": "image", | |
"url": "https://fyrean.itch.io/bgbye-background-remover", | |
"icon": "fas fa-eraser", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Adobe Firefly", | |
"description": "המערכת של אדובי ליצירת תוכן גרפי מתיאורים – כולל טקסטים, צבעים, וסטיילים.", | |
"category": "design", | |
"url": "https://firefly.adobe.com/", | |
"icon": "fas fa-fire", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Automatic1111", | |
"description": "הגרסה הפופולרית ביותר להרצת Stable Diffusion – כולל הרחבות, פילטרים וכלי שליטה.", | |
"category": "image", | |
"url": "https://github.com/AUTOMATIC1111/stable-diffusion-webui", | |
"icon": "fas fa-terminal", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "ComfyUI", | |
"description": "מערכת גרפית ליצירת תמונות באמצעות Stable Diffusion – סופר גמישה עם קוד פתוח.", | |
"category": "image", | |
"url": "https://github.com/comfyanonymous/ComfyUI", | |
"icon": "fas fa-project-diagram", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "miocreate", | |
"description": "פלטפורמה לשיתוף רעיונות ויצירה גרפית עם שיתוף בזמן אמת – כמו לוח ציור שיתופי.", | |
"category": "design", | |
"url": "https://www.miocreate.com/", | |
"icon": "fas fa-chalkboard", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "FaceFusion", | |
"description": "כלי פשוט למיזוג פנים בין תמונות או בין אנשים – מתאים לקליפים ולוידאו קצר.", | |
"category": "video", | |
"url": "https://facefusion.io/", | |
"icon": "fas fa-user-friends", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "glif.ai", | |
"description": "מערכת המרה של תסריטים לטמפלטים ויזואליים – כולל קומיקסים, מצגות וסרטוני שיווק.", | |
"category": "video", | |
"url": "https://glif.app/glifs", | |
"icon": "fas fa-book-open", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "pica-ai.com/face-swap", | |
"description": "כלי להחלפת פנים בתמונות עם תוצאות ריאליסטיות. מתאים ליצירת תמונות הומוריסטיות או ליצירת דמויות בדיוניות.", | |
"category": "image", | |
"url": "https://www.pica-ai.com/face-swap/", | |
"icon": "fas fa-smile", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "immersity.ai", | |
"description": "המרת תמונות רגילות לתמונות תלת ממד שנראות חיים! מתאים למצגות, שיווק, ומציאות מדומה.", | |
"category": "image", | |
"url": "https://app.immersity.ai/", | |
"icon": "fas fa-vr-cardboard", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "GOEnhance", | |
"description": "כלי לשיפור סאונד ויזואלי של סרטונים באמצעות AI – כולל תמלול, ניקוי רעשים, סנכרון ושיפור חוויית הצפייה.", | |
"category": "video", | |
"url": "https://www.goenhance.ai/?aff=sagibaron", | |
"icon": "fas fa-video", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "domoai.app", | |
"description": "עורך תמונות מבוסס AI ליצירת סצנות מדהימות מדימיון. מתאים גם לוידאו, קומיקס ודמויות.", | |
"category": "image", | |
"url": "https://domoai.app/", | |
"icon": "fas fa-image", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "lensgo.ai", | |
"description": "כלי AI לעריכת תמונות עם סגנונות מובנים ואפשרויות התאמה אישית. כולל רקעים, טקסטורות ואפקטים.", | |
"category": "image", | |
"url": "https://lensgo.ai/", | |
"icon": "fas fa-adjust", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Krea.ai", | |
"description": "יצירת תוכן חזותי בזמן אמת בעזרת AI – תומך בגרפיקה, ציור, מיתוג ועיצוב. מושלם ליוצרים.", | |
"category": "design", | |
"url": "https://www.krea.ai/home", | |
"icon": "fas fa-pen-nib", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Ideogram.ai", | |
"description": "כלי ליצירת תמונות עם טקסט ברור – עיצוב פוסטרים, מודעות, סטיקרים ועוד.", | |
"category": "image", | |
"url": "https://ideogram.ai/", | |
"icon": "fas fa-font", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "civitai", | |
"description": "מאגר עצום של מודלים מותאמים ליצירת דמויות, ציורים, סטיילים ועוד. תומך ב-Stable Diffusion.", | |
"category": "image", | |
"url": "https://civitai.com/", | |
"icon": "fas fa-draw-polygon", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "stablediffusionweb", | |
"description": "גרסת אינטרנט של Stable Diffusion – יצירת תמונות מרהיבות בלי להוריד כלום.", | |
"category": "image", | |
"url": "https://stablediffusionweb.com/", | |
"icon": "fas fa-project-diagram", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "JPG to PDF", | |
"description": "כלי שמאפשר המרת תמונות לקובץ PDF אחד. מושלם לשליחת דוחות, קבלות או עבודות.", | |
"category": "utility", | |
"url": "https://convertio.co/he/jpg-pdf/", | |
"icon": "fas fa-file-pdf", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "text from images", | |
"description": "חילוץ טקסטים מתמונות בעברית (OCR) – כולל תמיכה בקבצי PDF וסריקות. קל ונוח.", | |
"category": "utility", | |
"url": "https://convertio.co/ocr/hebrew/", | |
"icon": "fas fa-search", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Play.ht", | |
"description": "מנוע דיבור מבוסס AI עם קולות טבעיים – להמרת טקסט לפודקאסטים, קריינות וסרטונים.", | |
"category": "audio", | |
"url": "https://play.ht/", | |
"icon": "fas fa-microphone", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "notebooklm", | |
"description": "מחברת AI של גוגל שעוזרת לך ללמוד כל מסמך במהירות. שואל שאלות ומארגן את המידע.", | |
"category": "productivity", | |
"url": "https://notebooklm.google.com/", | |
"icon": "fas fa-book", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Kits.AI", | |
"description": "מנוע דיבור מוזיקלי – מאפשר להלביש קול על מנגינה קיימת. מושלם ליצירת דמוים וגרסאות.", | |
"category": "audio", | |
"url": "https://www.kits.ai/", | |
"icon": "fas fa-headphones-alt", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Weights.gg", | |
"description": "מאגר של מודלים ללמידת מכונה עם פילטרים, תיוגים ואופטימיזציות – פשוט גן עדן לחוקרי ML.", | |
"category": "coding", | |
"url": "https://weights.gg/", | |
"icon": "fas fa-database", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Virit.ai", | |
"description": "מנוע דיבור בעברית – תומך בקול טבעי עד 30 שניות. מצוין לקריינות קלה.", | |
"category": "audio", | |
"url": "https://www.ivrit.ai/he/174-2/", | |
"icon": "fas fa-language", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "speechgen", | |
"description": "המרת טקסט לקול בעברית ובשפות נוספות – כולל מבטאים ורגש בקול.", | |
"category": "audio", | |
"url": "https://speechgen.io/he/tts-hebrew/", | |
"icon": "fas fa-volume-down", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "podcast.adobe", | |
"description": "שיפור איכות סאונד לפודקאסטים והקלטות עם AI. שומעים את ההבדל!", | |
"category": "audio", | |
"url": "https://podcast.adobe.com/enhance", | |
"icon": "fas fa-soundcloud", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "VIDE", | |
"description": "מנהל רגש – אפליקציה לחיזוי תנועות קול על סמך רגש. ניסיוני אבל מסקרן.", | |
"category": "audio", | |
"url": "https://thewh1teagle.github.io/vibe/", | |
"icon": "fas fa-heartbeat", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "WhatsApp", | |
"description": "נגישות קולית בוואטסאפ – כולל תמלול אוטומטי של הודעות קוליות והצגה ויזואלית שלהן.", | |
"category": "accessibility", | |
"url": "https://play.google.com/store/apps/details?id=com.google.audio.hearing.visualization.accessibility.scribe", | |
"icon": "fab fa-whatsapp", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Hume.ai", | |
"description": "חברה שמפתחת ממשקי קול מבוססי רגש אנושי – כולל זיהוי רגשות מהקלטה ושיחה אמפתית עם מכונה.", | |
"category": "audio", | |
"url": "https://www.hume.ai/", | |
"icon": "fas fa-brain", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Prome AI", | |
"description": "יצירת תוכן גרפי/אדריכלי מבוסס בינה מלאכותית – כולל שרטוטים, תכניות ומצגות.", | |
"category": "design", | |
"url": "https://www.promeai.pro/", | |
"icon": "fas fa-drafting-compass", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Readyplayer.me", | |
"description": "יצירת אוואטרים תלת-ממדיים למטאוורס וגיימינג – כולל התאמה אישית של פנים, שיער ולבוש.", | |
"category": "design", | |
"url": "https://readyplayer.me/", | |
"icon": "fas fa-gamepad", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Artflow", | |
"description": "צייר AI שמאפשר ליצור דמויות מאוירות לפי תיאור טקסט. כולל קומיקס, סצנות וסיפורים.", | |
"category": "image", | |
"url": "https://app.artflow.ai/", | |
"icon": "fas fa-pencil-alt", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "ClipDrop", | |
"description": "כלי עריכה גרפית מבוסס AI להסרת רקעים, תיקונים, שדרוג תמונות ויצירת מצגות תוך שניות.", | |
"category": "design", | |
"url": "https://clipdrop.co/", | |
"icon": "fas fa-crop-alt", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "face-swap-free", | |
"description": "החלפת פנים בתמונות בקליק – מצחיק, חזק, ומומלץ למי שאוהב לשגע את החברים.", | |
"category": "image", | |
"url": "https://remaker.ai/face-swap-free/", | |
"icon": "fas fa-smile-beam", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "vmake.ai", | |
"description": "שיפור איכות וידאו בלחיצת כפתור – חדות, צבעים, ותנועה. בונוס: נראה כאילו השתמשת בעריכת פרסומת סופרבול.", | |
"category": "video", | |
"url": "https://vmake.ai/video-enhancer/upload", | |
"icon": "fas fa-magic", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "LivePortrait", | |
"description": "החייאת פורטרט – הפוך תמונה סטטית לדמות מדברת עם תנועה ושפתיים מסתנכרנות.", | |
"category": "video", | |
"url": "https://huggingface.co/spaces/KwaiiGV/LivePortrait", | |
"icon": "fas fa-user", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "genspark.ai", | |
"description": "הפצת תמונות עם הלבשה + סטיילים מתקדמים. מתאים לממים, פרופילים ואיורים מקוריים.", | |
"category": "image", | |
"url": "https://www.genspark.ai/", | |
"icon": "fas fa-sparkles", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "klingai", | |
"description": "שינוי דמויות, הבעות ותכונות בפנים – כלי שמאפשר עריכה של פרצופים בקלות ובלי ידע טכני.", | |
"category": "image", | |
"url": "https://klingai.com/", | |
"icon": "fas fa-user-edit", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Suno", | |
"description": "הפקת מוזיקה מקורית כולל שירה, לחן, הרמוניה – מאפס, בסטייל שאתה בוחר.", | |
"category": "audio", | |
"url": "https://suno.ai/", | |
"icon": "fas fa-music", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "sound", | |
"description": "הפרדת קול מהשיר (כמו קריוקי!) – כולל אפשרות להוריד רק שירה או רק ליווי.", | |
"category": "audio", | |
"url": "https://sagi-separate-the-voices-from-the-music-in-the-song.streamlit.app/", | |
"icon": "fas fa-headphones", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Elevenlabs.io", | |
"description": "סינתזה קולית (TTS) איכותית עם מגוון קולות מרשימים. אפשר אפילו להעלות דוגמת קול משלך.", | |
"category": "audio", | |
"url": "https://elevenlabs.io/", | |
"icon": "fas fa-robot", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "TTSmaker", | |
"description": "המרת טקסט לקול עם תמיכה בהרבה שפות (כולל עברית). פשוט, מהיר, ולגמרי בחינם.", | |
"category": "audio", | |
"url": "https://ttsmaker.com/", | |
"icon": "fas fa-volume-up", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "טקסט-לדיבור", | |
"description": "פרויקט קוד פתוח לגמרי להמרת טקסט לדיבור. מתאים לשילוב בפיתוחים או ניסויים חינמיים.", | |
"category": "audio", | |
"url": "https://github.com/maxmelichov/Text-To-Speech", | |
"icon": "fas fa-code", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Replay AI", | |
"description": "כלי לזיהוי דוברים – מגלה מי אמר מה, מתי, ואיך. מושלם לפרודקאסטים, תמלולים וניתוח שיחות.", | |
"category": "audio", | |
"url": "https://www.tryreplay.io/", | |
"icon": "fas fa-wave-square", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "RVC Training", | |
"description": "מערכת לאימון והמרת קול אנושי – להפוך קול שלך (או של חבר) לדמות אחרת או זמר אחר.", | |
"category": "audio", | |
"url": "https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/releases", | |
"icon": "fas fa-random", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "EchoWave", | |
"description": "הפקת וידאו עם אנימציות לזמרים ודוברים – כולל תנועה לקול, טקסט ודמות. בול ליוצרים.", | |
"category": "video", | |
"url": "https://echowave.io/", | |
"icon": "fas fa-waveform", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "HeyGen", | |
"description": "יצירת אוואטרים מדברים מטקסט (ליפסינק), כולל שינוי שפה וסגנון. מתאים ליצירת סרטוני תדמית אישיים.", | |
"category": "video", | |
"url": "https://app.heygen.com/", | |
"icon": "fas fa-user-circle", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "hydra", | |
"description": "כלי ליצירת דמויות מדברות מטקסט (כולל ליפסינק) עם שליטה קולית ושפתית – בדגש על שימוש חופשי.", | |
"category": "video", | |
"url": "https://www.hedra.com/", | |
"icon": "fas fa-user-alt", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "D-ID", | |
"description": "יצירת וידאו עם דמויות מדברות מתמונה סטטית. אידיאלי למצגות, הדרכות ושיווק אישי.", | |
"category": "video", | |
"url": "https://www.d-id.com/", | |
"icon": "fas fa-image", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "CapCut", | |
"description": "עריכת וידאו, יצירת תוכן מקצועי ומהיר כולל כלים של AI – מושלם ליוצרים.", | |
"category": "video", | |
"url": "https://www.capcut.com/", | |
"icon": "fas fa-cut", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Captions", | |
"description": "תמלול וידאו (כתוביות) אוטומטי, כולל תרגום, עריכה קולית וקריינות. ממשק פשוט בעברית.", | |
"category": "video", | |
"url": "https://www.captions.ai/", | |
"icon": "fas fa-closed-captioning", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Happyscribe", | |
"description": "תמלול אודיו ווידאו – תומך בעברית. מאפשר הפקת כתוביות, תרגום, וסנכרון עם עריכה.", | |
"category": "writing", | |
"url": "https://www.happyscribe.com/", | |
"icon": "fas fa-file-audio", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Yepic", | |
"description": "המרת טקסטים לווידאו עם דמויות מדברות – כולל תמיכה בשפות רבות וליפסינק אוטומטי.", | |
"category": "video", | |
"url": "https://www.yepic.ai/", | |
"icon": "fas fa-video", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "PIKA", | |
"description": "יצירת אנימציות ווידאו ממלל או ציור. הכלי החדש שהופך אותך לבמאי תוך דקות.", | |
"category": "video", | |
"url": "https://pika.art/", | |
"icon": "fas fa-film", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "PixVerse", | |
"description": "יצירת סרטונים ואיורים מבוססי בינה מלאכותית. תומך באנימציה, ציור ורנדרים קצרים.", | |
"category": "video", | |
"url": "https://pixverse.ai/", | |
"icon": "fas fa-paint-brush", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Viggle", | |
"description": "מערכת אנימציה מדהימה שיודעת להזיז דמויות בצורה ריאליסטית לפי תנועה אמיתית. מושלם ליצירת קליפים וסרטוני הסברה.", | |
"category": "video", | |
"url": "https://viggle.ai/", | |
"icon": "fas fa-running", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "clipchamp", | |
"description": "כלי עריכת וידאו של מיקרוסופט, נוח מאוד לתלמידים, אנשי שיווק ויוצרים. ללא צורך בהתקנה.", | |
"category": "video", | |
"url": "https://app.clipchamp.com/", | |
"icon": "fas fa-edit", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Perplexity", | |
"description": "מנוע חיפוש חכם שמופעל על ידי AI. נותן תשובות מדויקות עם מקורות, ומצוין למציאת מידע מהימן בעברית ובאנגלית.", | |
"category": "search", | |
"url": "https://www.perplexity.ai/", | |
"icon": "fas fa-search", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Copilot", | |
"description": "מוטמע במוצרי מיקרוסופט ונותן הצעות קוד בזמן אמת. תומך ב-Edge, ב-Word, וב-Excel. פשוט תענוג.", | |
"category": "coding", | |
"url": "https://copilot.microsoft.com/", | |
"icon": "fas fa-code", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Groq", | |
"description": "עיבוד נתונים מהיר במיוחד עבור שימושי AI בזמן אמת. הכל רץ במהירות שגורמת לכולם לקנא.", | |
"category": "infrastructure", | |
"url": "https://groq.com/", | |
"icon": "fas fa-microchip", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Cohere", | |
"description": "חברה קנדית שמספקת פתרונות מבוססי LLMs – בעיקר לעיבוד שפה טבעית, חיפוש והפקת תובנות. מתאימה לארגונים.", | |
"category": "nlp", | |
"url": "http://www.cohere.ai/", | |
"icon": "fas fa-language", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "OOGA-BOOGA", | |
"description": "ממשק קוד פתוח להפעלת מודלים של GPT בצורה מקומית. מיועד לחובבי שליטה מלאה על המערכת.", | |
"category": "coding", | |
"url": "https://github.com/oobabooga/text-generation-webui", | |
"icon": "fas fa-terminal", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "LM Studio", | |
"description": "ממשק שמריץ מודלים של שפה באופן מקומי על המחשב שלך – כולל תמיכה בעבודה גם בלי אינטרנט.", | |
"category": "nlp", | |
"url": "https://lmstudio.ai/", | |
"icon": "fas fa-laptop-code", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Ollama", | |
"description": "היא אפליקציה שמאפשרת להריץ מודלים כמו Llama ו-Mistral מקומית. תומכת ב-Windows, macOS, Linux, וגם בברווז גומי.", | |
"category": "nlp", | |
"url": "https://ollama.com/", | |
"icon": "fas fa-cube", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "together", | |
"description": "פלטפורמה להרצת מודלים פתוחים בענן. תומכת בהרבה מאוד מודלים ומציעה חוויית API קלה לשימוש.", | |
"category": "infrastructure", | |
"url": "https://api.together.ai/", | |
"icon": "fas fa-cloud", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "ChatGPT", | |
"description": "מנוע על שאלות בכל הנושאים. נוח מאוד, אינטואיטיבי, זמין דרך ממשק אינטרנט.", | |
"category": "productivity", | |
"url": "https://chat.openai.com/", | |
"icon": "fas fa-comment-dots", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "GPTs", | |
"description": "איך ליצור סוכן מבוסס GPT בהתאמה אישית באמצעות OpenAI.", | |
"category": "productivity", | |
"url": "https://chatgpt.com/gpts", | |
"icon": "fas fa-robot", | |
"rating": 5, | |
"isNew": true, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Midjourney", | |
"description": "כלי מבוסס AI שיוצר תמונות מתיאורים טקסטואליים.", | |
"category": "design", | |
"url": "https://www.midjourney.com", | |
"icon": "fas fa-paint-brush", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Notion AI", | |
"description": "סביבת עבודה חכמה שעוזרת בניהול פרויקטים, רשימות ומידע.", | |
"category": "productivity", | |
"url": "https://www.notion.so", | |
"icon": "fas fa-list-alt", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "GitHub Copilot", | |
"description": "עוזר תכנות חכם שמציע קוד ופונקציות שלמות בזמן אמת.", | |
"category": "coding", | |
"url": "https://github.com/features/copilot", | |
"icon": "fas fa-code", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Runway ML", | |
"description": "ארגז כלים יצירתי מבוסס למידת מכונה ליצירת תוכן.", | |
"category": "video", | |
"url": "https://runwayml.com", | |
"icon": "fas fa-film", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Jasper", | |
"description": "מחולל תוכן אוטומטי שעוזר בכתיבת טקסטים שיווקיים ובלוגים.", | |
"category": "writing", | |
"url": "https://www.jasper.ai", | |
"icon": "fas fa-pen-fancy", | |
"rating": 4, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "DALL-E 2", | |
"description": "מערכת AI שיוצרת תמונות ואומנות מתיאורים בשפה טבעית.", | |
"category": "design", | |
"url": "https://openai.com/dall-e-2", | |
"icon": "fas fa-palette", | |
"rating": 5, | |
"isNew": false, | |
"isFeatured": true | |
}, | |
{ | |
"name": "Synthesia", | |
"description": "יצירת סרטונים מקצועיים עם אווטרים קוליים מבוססי AI.", | |
"category": "video", | |
"url": "https://www.synthesia.io", | |
"icon": "fas fa-video", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Copy.ai", | |
"description": "כלי כתיבה אוטומטי שעוזר ביצירת תוכן שיווקי.", | |
"category": "writing", | |
"url": "https://www.copy.ai", | |
"icon": "fas fa-keyboard", | |
"rating": 3, | |
"isNew": false, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Claude", | |
"description": "מנוע על מבית Anthropic – עונה על שאלות בצורה נעימה ובשפה טבעית, כולל תמיכה מרשימה בעברית.", | |
"category": "productivity", | |
"url": "https://claude.ai/", | |
"icon": "fas fa-comments", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": false | |
}, | |
{ | |
"name": "Gemini", | |
"description": "הצ'אטבוט של גוגל – מבוסס על מודלים מתקדמים של AI ומחובר לחיפוש בזמן אמת.", | |
"category": "productivity", | |
"url": "https://gemini.google.com/", | |
"icon": "fas fa-brain", | |
"rating": 4, | |
"isNew": true, | |
"isFeatured": true | |
} | |
], | |
"videos": [ | |
{ | |
"id": 1, | |
"title": "יצירת סוכן GTPs בקלות למנויי ChatGPT", | |
"description": "יצרתי GPTs ייחודי שמסייע לגיסתי בעבודתה עם ילדים בעלי צרכים מיוחדים", | |
"url": "https://www.youtube.com/embed/iSIWAGgUIcg", | |
"thumbnail": "https://img.youtube.com/vi/abc123/mqdefault.jpg", | |
"date": "2023-05-15" | |
}, | |
{ | |
"id": 2, | |
"title": "ChatGPT - המדריך השלם", | |
"description": "כל מה שצריך לדעת על שימוש ב-ChatGPT", | |
"url": "https://www.youtube.com/embed/def456", | |
"thumbnail": "https://img.youtube.com/vi/def456/mqdefault.jpg", | |
"date": "2023-06-20" | |
}, | |
{ | |
"id": 3, | |
"title": "יצירת תמונות עם AI", | |
"description": "איך ליצור תמונות מדהימות באמצעות כלים כמו Midjourney ו-DALL-E", | |
"url": "https://www.youtube.com/embed/ghi789", | |
"thumbnail": "https://img.youtube.com/vi/ghi789/mqdefault.jpg", | |
"date": "2023-07-10" | |
} | |
] | |
}; | |
// DOM Elements | |
// DOM Elements (נשארים ללא שינוי - רק לרפרנס) | |
const toolsContainer = document.getElementById('toolsContainer'); | |
const videosContainer = document.getElementById('videosContainer'); | |
const searchInput = document.getElementById('searchInput'); | |
const filterButtons = document.querySelectorAll('.filter-btn'); | |
const totalToolsElement = document.getElementById('totalTools'); | |
const topRatedElement = document.getElementById('topRated'); | |
const newToolsElement = document.getElementById('newTools'); | |
const totalCategoriesElement = document.getElementById('totalCategories'); | |
const mobileMenuButton = document.getElementById('mobileMenuButton'); | |
const mobileMenu = document.getElementById('mobileMenu'); | |
const jsonEditorModal = document.getElementById('jsonEditorModal'); | |
const jsonEditor = document.getElementById('jsonEditor'); | |
const closeModalBtn = document.getElementById('closeModalBtn'); | |
const cancelEditBtn = document.getElementById('cancelEditBtn'); | |
const saveJsonBtn = document.getElementById('saveJsonBtn'); | |
const showToolsBtn = document.getElementById('showToolsBtn'); | |
const showVideosBtn = document.getElementById('showVideosBtn'); | |
// const editJsonBtn = document.getElementById('editJsonBtn'); // הלחצן מוסתר כרגע | |
// const editJsonBtnMobile = document.getElementById('editJsonBtnMobile'); // הלחצן מוסתר כרגע | |
const refreshBtn = document.getElementById('refreshBtn'); | |
const refreshBtnMobile = document.getElementById('refreshBtnMobile'); | |
// State | |
let currentCategory = 'all'; | |
let currentSearchTerm = ''; | |
let toolsData = { tools: [], videos: [] }; // Initialize empty | |
// Initialize - Make it async | |
async function init() { | |
await loadData(); // Wait for data to load | |
renderTools(); | |
renderVideos(); // Call the specific renderVideos function | |
updateStats(); | |
setupEventListeners(); | |
// Set initial active filter button | |
const allFilterBtn = document.querySelector('.filter-btn[data-category="all"]'); | |
if (allFilterBtn) { | |
allFilterBtn.classList.add('active'); | |
} | |
} | |
// Fetch default data from JSON files | |
async function fetchDefaultData() { | |
try { | |
const [toolsResponse, videosResponse] = await Promise.all([ | |
fetch('tools.json'), | |
fetch('videos.json') | |
]); | |
if (!toolsResponse.ok || !videosResponse.ok) { | |
throw new Error(`HTTP error! status: ${toolsResponse.status} / ${videosResponse.status}`); | |
} | |
const [toolsArray, videosArray] = await Promise.all([ | |
toolsResponse.json(), | |
videosResponse.json() | |
]); | |
return { tools: toolsArray, videos: videosArray }; | |
} catch (error) { | |
console.error("Failed to fetch default data:", error); | |
alert("שגיאה בטעינת נתוני ברירת המחדל. נסה לרענן את הדף."); | |
return { tools: [], videos: [] }; // Return empty structure on error | |
} | |
} | |
// Load data from localStorage or fetch default from JSON | |
async function loadData() { | |
const savedData = localStorage.getItem('aiToolsData'); | |
if (savedData) { | |
try { | |
toolsData = JSON.parse(savedData); | |
// Basic validation: ensure it has tools and videos arrays | |
if (!Array.isArray(toolsData.tools) || !Array.isArray(toolsData.videos)) { | |
console.warn("Invalid data structure in localStorage. Fetching defaults."); | |
toolsData = await fetchDefaultData(); | |
saveData(); // Save the fetched defaults | |
} | |
} catch (e) { | |
console.error("Error parsing data from localStorage:", e); | |
toolsData = await fetchDefaultData(); // Fetch defaults if parsing fails | |
saveData(); // Save the fetched defaults | |
} | |
} else { | |
toolsData = await fetchDefaultData(); // Fetch defaults if no saved data | |
saveData(); // Save the fetched defaults to localStorage | |
} | |
} | |
// Save data to localStorage | |
function saveData() { | |
try { | |
localStorage.setItem('aiToolsData', JSON.stringify(toolsData)); | |
} catch (e) { | |
console.error("Error saving data to localStorage:", e); | |
alert("שגיאה בשמירת הנתונים. ייתכן שהאחסון המקומי מלא."); | |
} | |
} | |
// Render tools based on filters (Modified slightly for safety) | |
function renderTools() { | |
if (!toolsContainer || !toolsData || !Array.isArray(toolsData.tools)) { | |
console.error("Cannot render tools: Missing container or invalid data."); | |
return; | |
} | |
const filteredTools = filterTools(); | |
toolsContainer.innerHTML = ''; // Clear previous tools | |
if (filteredTools.length === 0) { | |
toolsContainer.innerHTML = '<p class="text-center text-gray-500 col-span-full">לא נמצאו כלים התואמים את החיפוש או הסינון.</p>'; | |
} else { | |
filteredTools.forEach(tool => { | |
const toolCard = document.createElement('div'); | |
// Add relative positioning for potential future badges (like admin edit) | |
toolCard.className = `relative tool-card bg-white rounded-lg shadow-sm border border-gray-100 p-6 transition duration-300 ${tool.isFeatured ? 'ring-2 ring-blue-500' : ''}`; | |
toolCard.innerHTML = ` | |
<div class="flex items-start mb-4"> | |
<div class="p-3 rounded-lg ${getCategoryColor(tool.category)} text-white mr-4 flex-shrink-0"> | |
<i class="${tool.icon || 'fas fa-question-circle'} text-xl"></i> | |
</div> | |
<div class="flex-grow"> | |
<h3 class="text-xl font-semibold">${tool.name || 'שם לא ידוע'}</h3> | |
<span class="text-xs px-2 py-1 rounded-full ${getCategoryBadgeColor(tool.category)}">${getCategoryName(tool.category || 'כללי')}</span> | |
</div> | |
</div> | |
<p class="text-gray-700 mb-4 text-sm min-h-[60px]">${tool.description || 'אין תיאור זמין.'}</p> | |
<div class="flex justify-between items-center mb-4"> | |
<div class="flex"> | |
${renderRatingStars(tool.rating || 0)} | |
</div> | |
${tool.isNew ? '<span class="bg-green-100 text-green-800 text-xs font-medium px-2.5 py-0.5 rounded-full">חדש!</span>' : ''} | |
</div> | |
<a href="${tool.url || '#'}" target="_blank" rel="noopener noreferrer" class="inline-block w-full text-center px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition ${!tool.url ? 'opacity-50 cursor-not-allowed' : ''}"> | |
<i class="fas fa-external-link-alt ml-2"></i> ${tool.url ? 'גישה לכלי' : 'אין קישור'} | |
</a> | |
`; | |
toolsContainer.appendChild(toolCard); | |
}); | |
} | |
} | |
// Helper to get YouTube ID (Keep as is) | |
function getYouTubeID(url) { | |
if (!url) return ''; | |
const match = url.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([^?&\/\s]+)/); | |
return match ? match[1] : ''; | |
} | |
// Render videos (Keep mostly as is, just ensure data source is correct) | |
function renderVideos() { | |
if (!videosContainer || !toolsData || !Array.isArray(toolsData.videos)) { | |
console.error("Cannot render videos: Missing container or invalid data."); | |
return; // Prevent errors if data isn't ready or invalid | |
} | |
videosContainer.innerHTML = ''; // Clear previous videos | |
if (toolsData.videos.length === 0) { | |
videosContainer.innerHTML = '<p class="text-center text-gray-500 col-span-full">אין סרטונים להצגה.</p>'; | |
} else { | |
toolsData.videos.forEach(video => { | |
const videoId = getYouTubeID(video.url); | |
// If we can't get an ID, maybe skip or show a placeholder? For now, generate embed URL anyway. | |
const embedUrl = videoId ? `https://www.youtube.com/embed/${videoId}` : '#'; // Use '#' or a placeholder URL if ID is missing | |
const videoCard = document.createElement('div'); | |
videoCard.className = 'bg-white rounded-lg shadow-sm border border-gray-100 overflow-hidden'; | |
videoCard.innerHTML = ` | |
<div class="relative pt-[56.25%] ${!videoId ? 'bg-gray-200 flex items-center justify-center' : ''}"> | |
${videoId ? ` | |
<iframe class="absolute top-0 left-0 w-full h-full" src="${embedUrl}" frameborder="0" | |
title="${video.title || 'YouTube video'}" | |
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" | |
allowfullscreen></iframe> | |
` : ` | |
<p class="text-gray-500 text-sm">קישור וידאו לא תקין</p> | |
`} | |
</div> | |
<div class="p-4"> | |
<h3 class="text-lg font-semibold mb-2">${video.title || 'כותרת חסרה'}</h3> | |
<p class="text-gray-600 text-sm mb-3 min-h-[40px]">${video.description || 'אין תיאור זמין.'}</p> | |
<p class="text-gray-500 text-xs">${formatDate(video.date)}</p> | |
</div> | |
`; | |
videosContainer.appendChild(videoCard); | |
}); | |
} | |
} | |
// Filter tools (Modified slightly for safety) | |
function filterTools() { | |
if (!toolsData || !Array.isArray(toolsData.tools)) { | |
return []; // Return empty array if data is not ready | |
} | |
return toolsData.tools.filter(tool => { | |
const nameMatch = tool.name && tool.name.toLowerCase().includes(currentSearchTerm.toLowerCase()); | |
const descMatch = tool.description && tool.description.toLowerCase().includes(currentSearchTerm.toLowerCase()); | |
const categoryMatch = tool.category && tool.category.toLowerCase().includes(currentSearchTerm.toLowerCase()); // Optional: search category name too | |
const matchesSearch = nameMatch || descMatch || categoryMatch; | |
const matchesCategoryFilter = currentCategory === 'all' || tool.category === currentCategory; | |
return matchesCategoryFilter && matchesSearch; | |
}); | |
} | |
// Update statistics (Modified slightly for safety) | |
function updateStats() { | |
const toolsCount = (toolsData && Array.isArray(toolsData.tools)) ? toolsData.tools.length : 0; | |
totalToolsElement.textContent = toolsCount; | |
const topRatedCount = toolsCount > 0 ? toolsData.tools.filter(tool => tool.rating >= 4).length : 0; | |
topRatedElement.textContent = topRatedCount; | |
const newToolsCount = toolsCount > 0 ? toolsData.tools.filter(tool => tool.isNew).length : 0; | |
newToolsElement.textContent = newToolsCount; | |
const categories = toolsCount > 0 ? new Set(toolsData.tools.map(tool => tool.category)) : new Set(); | |
totalCategoriesElement.textContent = categories.size; | |
} | |
// Render rating stars (Keep as is) | |
function renderRatingStars(rating) { | |
let stars = ''; | |
const filledStars = Math.max(0, Math.min(5, Math.round(rating || 0))); // Ensure rating is between 0 and 5 | |
for (let i = 1; i <= 5; i++) { | |
if (i <= filledStars) { | |
stars += '<i class="fas fa-star text-yellow-400"></i>'; | |
} else { | |
stars += '<i class="far fa-star text-gray-300"></i>'; // Use gray for empty stars | |
} | |
} | |
return stars; | |
} | |
// Get category name (Keep as is, maybe add a default) | |
function getCategoryName(category) { | |
const categories = { | |
'productivity': 'פרודוקטיביות', | |
'writing': 'כתיבה', | |
'design': 'עיצוב', | |
'coding': 'תכנות', | |
'video': 'וידאו', | |
'image': 'תמונה', | |
'education': 'חינוך', | |
'data': 'נתונים', | |
'search': 'חיפוש', | |
'builder': 'בנייה', | |
'customer-support': 'תמיכה', | |
'automation': 'אוטומציה', | |
'hosting': 'אחסון', | |
'agents': 'סוכנים', | |
'directory': 'אינדקס', | |
'utility': 'כלי עזר', | |
'platform': 'פלטפורמה', | |
'media': 'מדיה', | |
'presentation': 'מצגות', | |
'audio': 'שמע', | |
'infrastructure': 'תשתיות', | |
'nlp': 'עיבוד שפה', | |
'accessibility': 'נגישות' | |
// Add other categories from your JSON here | |
}; | |
return categories[category] || category || 'כללי'; // Return category key or 'כללי' if null/undefined | |
} | |
// Get category color (Add more colors or a default) | |
function getCategoryColor(category) { | |
const colors = { | |
'productivity': 'bg-blue-600', | |
'writing': 'bg-purple-600', | |
'design': 'bg-pink-600', | |
'coding': 'bg-green-600', | |
'video': 'bg-red-600', | |
'image': 'bg-yellow-600', | |
'education': 'bg-indigo-600', | |
'data': 'bg-cyan-600', | |
'search': 'bg-teal-600', | |
'builder': 'bg-orange-600', | |
'customer-support': 'bg-lime-600', | |
'automation': 'bg-sky-600', | |
'hosting': 'bg-amber-600', | |
'agents': 'bg-violet-600', | |
'directory': 'bg-fuchsia-600', | |
'utility': 'bg-rose-600', | |
'platform': 'bg-emerald-600', | |
'media': 'bg-stone-600', | |
'presentation': 'bg-red-500', | |
'audio': 'bg-blue-500', | |
'infrastructure': 'bg-gray-700', | |
'nlp': 'bg-purple-500', | |
'accessibility': 'bg-green-500' | |
// Add more as needed | |
}; | |
return colors[category] || 'bg-gray-600'; // Default color | |
} | |
// Get category badge color (Add more or a default) | |
function getCategoryBadgeColor(category) { | |
const colors = { | |
'productivity': 'bg-blue-100 text-blue-800', | |
'writing': 'bg-purple-100 text-purple-800', | |
'design': 'bg-pink-100 text-pink-800', | |
'coding': 'bg-green-100 text-green-800', | |
'video': 'bg-red-100 text-red-800', | |
'image': 'bg-yellow-100 text-yellow-800', | |
'education': 'bg-indigo-100 text-indigo-800', | |
'data': 'bg-cyan-100 text-cyan-800', | |
'search': 'bg-teal-100 text-teal-800', | |
'builder': 'bg-orange-100 text-orange-800', | |
'customer-support': 'bg-lime-100 text-lime-800', | |
'automation': 'bg-sky-100 text-sky-800', | |
'hosting': 'bg-amber-100 text-amber-800', | |
'agents': 'bg-violet-100 text-violet-800', | |
'directory': 'bg-fuchsia-100 text-fuchsia-800', | |
'utility': 'bg-rose-100 text-rose-800', | |
'platform': 'bg-emerald-100 text-emerald-800', | |
'media': 'bg-stone-100 text-stone-800', | |
'presentation': 'bg-red-100 text-red-800', | |
'audio': 'bg-blue-100 text-blue-800', | |
'infrastructure': 'bg-gray-200 text-gray-800', | |
'nlp': 'bg-purple-100 text-purple-800', | |
'accessibility': 'bg-green-100 text-green-800' | |
// Add more as needed | |
}; | |
return colors[category] || 'bg-gray-100 text-gray-800'; // Default badge color | |
} | |
// Format date (Keep as is, maybe add error handling) | |
function formatDate(dateString) { | |
if (!dateString) return 'תאריך לא זמין'; | |
try { | |
// Handle potential non-standard date formats if necessary | |
const date = new Date(dateString); | |
// Check if date is valid | |
if (isNaN(date.getTime())) { | |
return 'תאריך לא תקין'; | |
} | |
const options = { year: 'numeric', month: 'long', day: 'numeric' }; | |
return date.toLocaleDateString('he-IL', options); | |
} catch (e) { | |
console.error("Error formatting date:", dateString, e); | |
return 'תאריך לא תקין'; | |
} | |
} | |
// Setup event listeners (Update refresh button logic) | |
function setupEventListeners() { | |
// Search input | |
searchInput.addEventListener('input', (e) => { | |
currentSearchTerm = e.target.value; | |
renderTools(); | |
}); | |
// Filter buttons | |
filterButtons.forEach(button => { | |
button.addEventListener('click', () => { | |
filterButtons.forEach(btn => btn.classList.remove('active')); | |
button.classList.add('active'); | |
currentCategory = button.dataset.category; | |
renderTools(); | |
}); | |
}); | |
// Mobile menu toggle | |
mobileMenuButton.addEventListener('click', () => { | |
mobileMenu.classList.toggle('open'); | |
}); | |
// JSON Editor Modal (Keep as is, but consider removing buttons if not admin) | |
const openEditorHandler = () => { | |
// Default to showing tools first | |
showToolsBtn.click(); // Simulate click to set initial state | |
jsonEditorModal.classList.remove('hidden'); | |
}; | |
// If Edit buttons exist, add listeners | |
// const editJsonBtn = document.getElementById('editJsonBtn'); | |
// const editJsonBtnMobile = document.getElementById('editJsonBtnMobile'); | |
// if (editJsonBtn) editJsonBtn.addEventListener('click', openEditorHandler); | |
// if (editJsonBtnMobile) editJsonBtnMobile.addEventListener('click', openEditorHandler); | |
closeModalBtn.addEventListener('click', () => { | |
jsonEditorModal.classList.add('hidden'); | |
}); | |
cancelEditBtn.addEventListener('click', () => { | |
jsonEditorModal.classList.add('hidden'); | |
}); | |
saveJsonBtn.addEventListener('click', () => { | |
try { | |
const newData = JSON.parse(jsonEditor.value); | |
if (showToolsBtn.classList.contains('bg-blue-600')) { | |
if (!Array.isArray(newData)) throw new Error("Data must be an array."); | |
toolsData.tools = newData; | |
} else { | |
if (!Array.isArray(newData)) throw new Error("Data must be an array."); | |
toolsData.videos = newData; | |
} | |
saveData(); // Save changes to localStorage | |
renderTools(); | |
renderVideos(); // Re-render videos as well | |
updateStats(); | |
jsonEditorModal.classList.add('hidden'); | |
alert("הנתונים נשמרו בהצלחה (באחסון המקומי)."); | |
} catch (e) { | |
alert('JSON לא תקין: ' + e.message); | |
} | |
}); | |
showToolsBtn.addEventListener('click', () => { | |
showToolsBtn.classList.add('bg-blue-600', 'text-white'); | |
showToolsBtn.classList.remove('bg-gray-200', 'text-gray-700'); | |
showVideosBtn.classList.add('bg-gray-200', 'text-gray-700'); | |
showVideosBtn.classList.remove('bg-blue-600', 'text-white'); | |
jsonEditor.value = JSON.stringify(toolsData.tools, null, 2); | |
}); | |
showVideosBtn.addEventListener('click', () => { | |
showVideosBtn.classList.add('bg-blue-600', 'text-white'); | |
showVideosBtn.classList.remove('bg-gray-200', 'text-gray-700'); | |
showToolsBtn.classList.add('bg-gray-200', 'text-gray-700'); | |
showToolsBtn.classList.remove('bg-blue-600', 'text-white'); | |
jsonEditor.value = JSON.stringify(toolsData.videos, null, 2); | |
}); | |
// Refresh buttons - Load default data from JSON files | |
const refreshHandler = async () => { | |
if (confirm("פעולה זו תחליף את כל הנתונים הנוכחיים (כולל שינויים שביצעת בעורך) בנתוני ברירת המחדל. האם להמשיך?")) { | |
console.log("Refreshing data from default JSON files..."); | |
toolsData = await fetchDefaultData(); // Fetch the defaults | |
saveData(); // Overwrite localStorage with defaults | |
renderTools(); | |
renderVideos(); | |
updateStats(); | |
// Reset filters and search | |
searchInput.value = ''; | |
currentSearchTerm = ''; | |
filterButtons.forEach(btn => btn.classList.remove('active')); | |
const allFilterBtn = document.querySelector('.filter-btn[data-category="all"]'); | |
if (allFilterBtn) { | |
allFilterBtn.classList.add('active'); | |
} | |
currentCategory = 'all'; | |
renderTools(); // Render again with reset filters | |
alert("הנתונים רועננו לערכי ברירת המחדל."); | |
} | |
}; | |
refreshBtn.addEventListener('click', refreshHandler); | |
refreshBtnMobile.addEventListener('click', refreshHandler); | |
} | |
// Initialize the app when the DOM is ready | |
document.addEventListener('DOMContentLoaded', init); | |
// --- Keep the separate getYouTubeID and renderVideos for DOMContentLoaded if needed --- | |
// Although the main init() now calls renderVideos after data loading, | |
// keeping this might be a fallback or part of the original structure you wanted. | |
// It's slightly redundant now if init() works correctly. | |
/* | |
function getYouTubeID(url) { // Already defined above, potentially remove this duplicate | |
const match = url.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([^?&\/\s]+)/); | |
return match ? match[1] : ''; | |
} | |
function renderVideos() { // Already defined above, potentially remove this duplicate | |
// ... (implementation is identical to the one inside the main script block) ... | |
} | |
window.addEventListener('DOMContentLoaded', () => { | |
// This might run before init() finishes loading data if init is slow. | |
// It's safer to rely on init() calling renderVideos. | |
// renderVideos(); | |
}); | |
*/ | |
</script> | |
</body> | |
</html> |