@עם-ישראל-חיי
אם יש לך חיבור לרשת תוכל להשתמש בפקודת הPOWERSHELL שלהם:
irm get.activated.win | iex
מנסיוני דיפנדר לא מזהה את זה. לא סגור על אנטיוירוסים אחרים.
להעדיף את TSFORGE (אפשרות 3 בתפריט). רק אם לא עובד להשתמש באחרים.
בהצלחה.
@עם-ישראל-חיי
אם יש לך חיבור לרשת תוכל להשתמש בפקודת הPOWERSHELL שלהם:
irm get.activated.win | iex
מנסיוני דיפנדר לא מזהה את זה. לא סגור על אנטיוירוסים אחרים.
להעדיף את TSFORGE (אפשרות 3 בתפריט). רק אם לא עובד להשתמש באחרים.
בהצלחה.
@עם-ישראל-חיי
מורידים את זה, משביתים אנטי וירוס, פותחים את הקובץ, ואז מקלידים 3 ו1.
בהצלחה.
פתיחת פורום אוצריא החדש ב"ה היה הקש ששבר את גב הכרום.
אני מרפרף בין 5 דפי 'נושאים שלא נקראו' של חמישה פורומים שונים! למה אין לי דף אחד שמאגד את כולם?
ב"ה אכשר דרא ויש לנו כלי AI (ספציפית Gemini 3 Pro Preview) כך שאפשר לבקש מהם כל שבמוחי הקודח ולקבל בתוך זמן מועט בלי שבירת ראש וצורך ללמוד את מערכת הAPI של נודביבי בשביל זה.
התוסף מבוסס טמפרמונקי. אני מניח שיש לכם. אם לא, תתקינו עכשיו. אם אתם לא יודעים מה זה, אני לא רוצה שתשתמשו בתוסף שלי... תבקשו יפה יפה ממישהו חכם שיסביר לכם.
אז הנה. תפאדלו.
כברירת מחדל רק מתמחים.טופ נמצא ברשימה. למה? (כובע) כי אני לא יודע באיזה פורום כאו"א מכם משתמש, אז למה להכביד?
אבל בכל פורום (מבוסס נודביבי כמובן) שתכנסו אליו הסקריפט יציע לכם בעדינות להוסיף אותו לרשימה (נפלאות הAI). וזהו. בלי טרחה.
בפורומים שכבר ברשימה יתווסף סמל נחמד מתחת לכפתור 'נושאים שלא נקראו' שיתן את הדף הזה. תוכלו לגשת אליו מכל דף בכל פורום ברשימה.
מעט צילומי מסך תוכלו למצוא בספויילר, ממש כאן.
אחרי התקנת הסקריפט, לפני הוספת עוד אתרים לרשימה. (ניתן לראות את הסמל החדש, אל תשאלו אותי למה Gemini החליט לבחור דווקא אותו):

הפופאפ שיפריע לכם באתרים האחרים:

חלון שיקפוץ לכם אחרי שהוספתם אתר אחד לפחות. בחרו באפשרות אחת לפני האחרונה (בטור השמאלי) אם אתם רוצים לאשר כל אתר בנפרד (יותר מפוקח) או באפשרות האחרונה לאישור כל האתרים בסקריפט הזה ומניעת קפיצה של החלון הזה שוב:

וככה הרשימה תראה אחרי הוספה של מגוון אתרים:

שגיאה ידועה:
סקריפט זה נכתב לשימוש אישי ועולה כאן שמא תהיה לעוד מישהו תועלת ממנו.
מבחינתי הוא מצויין, ניתן לשפר אותו בעזרת המוח או בעזרת שלל כלי הAI, ולאחר בדיקה להעלות לכאן או לגיטהאב ואשתדל לעדכן אותו בעז"ה.
@אלישי כתב בשיתוף | סקריפט לטמפרמונקי ליצירת Markdown במערכת הפניות של נטפרי! V 2.0:
אני סמוך ובטוח שמירכוז הטקסט עם |- לא יעבוד בנטפרי, זה לא קונבנציית MD מוכרת וזה מימוש אישי של מישהו לסוג פורום זה.
לענ"ד גם הצבעים כנ"ל.
@שלמה-רביב כתב בבקשת מידע | מחפש מישהו שיעשה רוט לג'לי סטאר.:
או שתחבר אותו לתכנת מכשירוט והוא יגיד לך האם זה פתוח

@נוחעם-FM כתב בבקשת מידע | מחפש מישהו שיעשה רוט לג'לי סטאר.:
@יאנג-בוי כתב בבקשת מידע | מחפש מישהו שיעשה רוט לג'לי סטאר.:
ללא איפוס של החומר.
מקצת ניסיון שיש לי עם המכשיר הזה אני אומר לך שמי שעם ניסיון לא יבטיח לך כזה דבר ומי שיבטיח או שהוא מאסטר על (סטייל @משה144 שפרש) או שהוא בלי נסיון... שהוא מבטיח כאלה הבטחות

אגב הבוטלאודר פתוח או לא?
אני חושב שכן.
לא סגור על זה שאני יודע בדיוק מה הכוונה...
לא.
מחפש מישהו שיודע מניסיון לעשות רוט קריאה+כתיבה+מג'יסק+הסרת אזהרת orange state למכשיר, ללא איפוס של החומר.
כמובן בתשלום.
ב"ב/אלעד/י-ם/מרחוק.
מייל בביו.
ידע טכני בסיסי יש לי, משלם בעיקר על הניסיון.
@לאצי
מעולה!
שאפו גדול גם על השימוש בטמפרמונקי ולא בתוסף נפרד ומעצבן...
מתאים גם לשפת העיצוב באתר.
רעיון לשיפור - שיפור התצוגה המקדימה לרענון מיידי עם עיצוב מהרעיונות הבאים:
מעל התיבה, בצורה שבה זה יראה אחרי שזה ישלח. (אפשר להגזים ולשאוב גם את שם המשתמש וכו' כך שזה יופיע ממש כאילו התשובה שוגרה כבר...)
לצד התיבה, בדומה לתיבה המחולקת שיש כאן בפורום.
עריכה:
ביקשתי מג'מיני את האפשרות הראשונה.
נראה בסדר, לא בדקתי לעומק. לא לוקח אחריות.
// ==UserScript==
// @name NetFree Advanced Ticket Editor (Live Preview Default On)
// @namespace http://tampermonkey.net/
// @version 6.1
// @description עורך טקסט מתקדם לנטפרי - תצוגה מקדימה חיה פתוחה כברירת מחדל
// @author לאצי&AI
// @match https://netfree.link/app/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=netfree.link
// @grant none
// ==/UserScript==
(function() {
'use strict';
// --- הגדרות סגנון (CSS) ---
const styles = `
.nf-md-toolbar {
display: flex;
gap: 4px;
padding: 6px;
background: #f3f3f4;
border: 1px solid #e7eaec;
border-bottom: none;
border-radius: 4px 4px 0 0;
flex-wrap: wrap;
direction: rtl;
align-items: center;
position: relative;
}
.nf-md-btn {
background: #fff;
border: 1px solid #ddd;
cursor: pointer;
width: 30px;
height: 30px;
color: #676a6c;
border-radius: 3px;
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s;
position: relative;
}
.nf-md-btn:hover, .nf-md-btn.active {
background-color: #fff;
color: #1ab394;
border-color: #1ab394;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.nf-md-active-textarea {
border-top: none !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
.nf-dropdown-menu {
display: none;
position: absolute;
top: 100%;
right: 0;
z-index: 1000;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
box-shadow: 0 6px 12px rgba(0,0,0,0.175);
min-width: 160px;
padding: 5px 0;
margin-top: 2px;
}
.nf-dropdown-menu.show { display: block; }
.nf-dropdown-item {
display: block;
padding: 8px 15px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #333;
white-space: nowrap;
text-decoration: none;
cursor: pointer;
text-align: right;
}
.nf-dropdown-item:hover { background-color: #f5f5f5; color: #262626; }
.nf-color-picker-container { position: relative; display: inline-block; }
input[type="color"] {
opacity: 0;
position: absolute;
left: 0; top: 0; width: 100%; height: 100%;
cursor: pointer;
}
.nf-separator {
width: 1px; height: 20px; background: #ccc; margin: 0 5px;
}
/* סגנון לאזור התצוגה המקדימה החיה */
.nf-live-preview-container {
display: none; /* מוסתר ב-CSS, נדליק אותו ב-JS */
margin-bottom: 10px;
padding: 10px;
border: 1px dashed #1ab394;
border-radius: 5px;
background: rgba(26, 179, 148, 0.05);
transition: all 0.3s ease;
}
.nf-live-preview-container.active {
display: block;
animation: fadeIn 0.3s;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.nf-preview-header-label {
font-size: 11px;
color: #1ab394;
font-weight: bold;
margin-bottom: 8px;
display: block;
text-align: right;
border-bottom: 1px solid #1ab39433;
padding-bottom: 2px;
}
`;
const styleSheet = document.createElement("style");
styleSheet.innerText = styles;
document.head.appendChild(styleSheet);
// --- לוגיקת המרת Markdown ל-HTML ---
function parseMarkdown(text) {
let html = text
.replace(/```([\s\S]*?)```/g, (match, code) => '<pre>' + code.replace(/</g, '<').replace(/>/g, '>') + '</pre>')
.replace(/^#{1}\s+(.*)$/gm, '<h1>$1</h1>')
.replace(/^#{2}\s+(.*)$/gm, '<h2>$1</h2>')
.replace(/^#{3}\s+(.*)$/gm, '<h3>$1</h3>')
.replace(/^#{4}\s+(.*)$/gm, '<h4>$1</h4>')
.replace(/^#{5}\s+(.*)$/gm, '<h5>$1</h5>')
.replace(/^#{6}\s+(.*)$/gm, '<h6>$1</h6>')
.replace(/^\s*\*\*\*\s*$/gm, '<hr>')
.replace(/\|-(.*?)-\|/g, '<div style="text-align: center;">$1</div>')
.replace(/\|=(.*?)=\|/g, '<div style="text-align: justify;">$1</div>')
.replace(/(^|\n)\|-(.*?)(?=\n|$)/g, '<div style="text-align: left; direction: ltr;">$2</div>')
.replace(/(^|\n)(.*?)-\|(?=\n|$)/g, '<div style="text-align: right;">$2</div>')
.replace(/\*\*(.*?)\*\*/g, '<b>$1</b>')
.replace(/\*(.*?)\*/g, '<i>$1</i>')
.replace(/~~(.*?)~~/g, '<del>$1</del>')
.replace(/`([^`\n]+)`/g, '<code>$1</code>')
.replace(/\[(.*?)\]\((.*?)\)/g, '<a href="$2" target="_blank" style="color:#1ab394">$1</a>')
.replace(/%\((.*?)\)\[(.*?)\]/g, '<span style="color:$1">$2</span>')
.replace(/^\*\s+(.*)/gm, '<li>$1</li>')
.replace(/\n/g, '<br>');
html = html.replace(/<\/h(\d)><br>/g, '</h$1>')
.replace(/<\/div><br>/g, '</div>')
.replace(/<\/pre><br>/g, '</pre>')
.replace(/<hr><br>/g, '<hr>');
return html;
}
// --- שליפת פרטי משתמש ---
function getUserDetails() {
const nameElement = document.querySelector('ul.nav.navbar-top-links li a[href="#/user/info"] span');
const userName = nameElement ? nameElement.innerText.trim() : 'אני';
let avatarSrc = 'https://secure.gravatar.com/avatar/00000000000000000000000000000000?d=mp&f=y';
const myImages = document.querySelectorAll('.chat-discussion .chat-message img');
if (myImages.length > 0) {
avatarSrc = myImages[myImages.length - 1].src;
}
return { name: userName, avatar: avatarSrc };
}
// --- בניית HTML של התצוגה המקדימה ---
function createPreviewContainer() {
const user = getUserDetails();
const container = document.createElement('div');
container.className = 'nf-live-preview-container';
container.innerHTML = `
<span class="nf-preview-header-label">תצוגה מקדימה (כך זה ייראה לאחר השליחה):</span>
<div class="chat-message left" style="background: transparent; padding: 0;">
<img class="pull-start" style="border-radius: 100%; height: 38px; width: 38px; float: right; margin-left: 10px;" src="${user.avatar}">
<div class="message" style="display: block; margin-right: 50px; background-color: #fff; border: 1px solid #e7eaec; text-align: right; padding: 10px 20px; border-radius: 4px;">
<div class="title" style="color: #1ab394; font-weight: bold; margin-bottom: 5px;">
<strong>${user.name}</strong>
<div class="post-title-right" style="float: left; font-size: 10px; color: #888;">
לפני רגע
</div>
</div>
<div class="message-content" style="padding-top: 5px; line-height: 1.5;"></div>
</div>
</div>
`;
return container;
}
// --- הכנסת טקסט חכמה ---
function insertSmart(textarea, prefix, suffix, placeholder) {
const start = textarea.selectionStart;
const end = textarea.selectionEnd;
const text = textarea.value;
const selectedText = text.substring(start, end);
let newText = '';
let newSelectionStart = 0;
let newSelectionEnd = 0;
if (selectedText.length === 0) {
newText = text.substring(0, start) + prefix + placeholder + suffix + text.substring(end);
newSelectionStart = start + prefix.length;
newSelectionEnd = newSelectionStart + placeholder.length;
} else {
newText = text.substring(0, start) + prefix + selectedText + suffix + text.substring(end);
newSelectionStart = start;
newSelectionEnd = end + prefix.length + suffix.length;
}
textarea.value = newText;
textarea.focus();
textarea.setSelectionRange(newSelectionStart, newSelectionEnd);
textarea.dispatchEvent(new Event('input', { bubbles: true }));
textarea.dispatchEvent(new Event('change', { bubbles: true }));
}
// --- יצירת הסרגל והלוגיקה ---
function createToolbar(textarea) {
const toolbar = document.createElement('div');
toolbar.className = 'nf-md-toolbar';
toolbar.onmousedown = (e) => e.preventDefault();
// 1. יצירת אלמנט התצוגה המקדימה
const previewBox = createPreviewContainer();
const contentDiv = previewBox.querySelector('.message-content');
// פונקציית עדכון
const updatePreview = () => {
if (previewBox.classList.contains('active')) {
contentDiv.innerHTML = parseMarkdown(textarea.value);
}
};
// האזנה לשינויים בתיבת הטקסט
textarea.addEventListener('input', updatePreview);
textarea.addEventListener('keyup', updatePreview);
textarea.addEventListener('change', updatePreview);
const createBtn = (icon, title, onClick) => {
const btn = document.createElement('button');
btn.className = 'nf-md-btn';
btn.type = 'button';
btn.title = title;
btn.innerHTML = `<i class="fa ${icon}"></i>`;
btn.onclick = (e) => {
e.preventDefault();
onClick(btn);
};
return btn;
};
const createSep = () => {
const div = document.createElement('div');
div.className = 'nf-separator';
return div;
};
// --- כפתורים ---
const headingWrapper = document.createElement('div');
headingWrapper.style.position = 'relative';
const headingBtn = createBtn('fa-heading', 'כותרת', () => headingList.classList.toggle('show'));
const headingList = document.createElement('div');
headingList.className = 'nf-dropdown-menu';
for (let i = 1; i <= 6; i++) {
const item = document.createElement('div');
item.className = 'nf-dropdown-item';
item.innerHTML = `<span style="color:#888; margin-left:5px;">H${i}</span> כותרת ${i}`;
item.style.fontSize = (20 - i) + 'px';
item.onclick = () => {
insertSmart(textarea, '#'.repeat(i) + ' ', '', `כותרת ${i}`);
headingList.classList.remove('show');
};
headingList.appendChild(item);
}
headingWrapper.appendChild(headingBtn);
headingWrapper.appendChild(headingList);
toolbar.appendChild(headingWrapper);
document.addEventListener('click', (e) => {
if (!headingWrapper.contains(e.target)) headingList.classList.remove('show');
});
toolbar.appendChild(createBtn('fa-minus', 'קו הפרדה', () => insertSmart(textarea, '\n***\n', '', '')));
toolbar.appendChild(createSep());
toolbar.appendChild(createBtn('fa-bold', 'מודגש', () => insertSmart(textarea, '**', '**', 'טקסט מודגש')));
toolbar.appendChild(createBtn('fa-italic', 'נטוי', () => insertSmart(textarea, '*', '*', 'טקסט נטוי')));
toolbar.appendChild(createBtn('fa-strikethrough', 'קו חוצה', () => insertSmart(textarea, '~~', '~~', 'קו חוצה')));
toolbar.appendChild(createSep());
toolbar.appendChild(createBtn('fa-list-ul', 'רשימה', () => insertSmart(textarea, '* ', '', 'פריט רשימה')));
toolbar.appendChild(createBtn('fa-link', 'קישור', () => insertSmart(textarea, '[', '](http://)', 'טקסט קישור')));
toolbar.appendChild(createBtn('fa-code', 'בלוק קוד', () => insertSmart(textarea, '\n```\n', '\n```\n', 'קוד')));
toolbar.appendChild(createSep());
toolbar.appendChild(createBtn('fa-align-right', 'יישור לימין', () => insertSmart(textarea, '', '-|', 'יישור לימין')));
toolbar.appendChild(createBtn('fa-align-center', 'מרכוז', () => insertSmart(textarea, '|-', '-|', 'מרכוז')));
toolbar.appendChild(createBtn('fa-align-left', 'יישור לשמאל', () => insertSmart(textarea, '|-', '', 'יישור לשמאל')));
toolbar.appendChild(createBtn('fa-align-justify', 'יישור לשני הצדדים', () => insertSmart(textarea, '|=', '=|', 'רגיל')));
toolbar.appendChild(createSep());
const colorWrapper = document.createElement('div');
colorWrapper.className = 'nf-color-picker-container';
const colorBtn = createBtn('fa-eyedropper', 'צבע טקסט', () => {});
const colorInput = document.createElement('input');
colorInput.type = 'color';
colorInput.value = '#000000';
colorInput.onchange = (e) => {
insertSmart(textarea, `%(${e.target.value})[`, ']', 'צבעי טקסט');
};
colorWrapper.appendChild(colorBtn);
colorWrapper.appendChild(colorInput);
toolbar.appendChild(colorWrapper);
toolbar.appendChild(createSep());
// --- כפתור תצוגה מקדימה חיה ---
const eyeBtn = createBtn('fa-eye', 'הפעל/הסתר תצוגה חיה', (btn) => {
previewBox.classList.toggle('active');
btn.classList.toggle('active');
if (previewBox.classList.contains('active')) {
updatePreview();
}
});
// ======================================
// הפעלה כברירת מחדל
// ======================================
previewBox.classList.add('active');
eyeBtn.classList.add('active');
setTimeout(updatePreview, 0); // רענון ראשוני
toolbar.appendChild(eyeBtn);
return { toolbar, previewBox };
}
// --- הזרקה לדף ---
function scanAndInject() {
const selectors = [
'textarea[name="content"]',
'textarea#respons-text',
'textarea[placeholder="כתוב הודעה"]'
];
selectors.forEach(selector => {
const textareas = document.querySelectorAll(selector);
textareas.forEach(textarea => {
if (textarea.previousElementSibling && textarea.previousElementSibling.classList.contains('nf-md-toolbar')) {
return;
}
const { toolbar, previewBox } = createToolbar(textarea);
textarea.parentNode.insertBefore(previewBox, textarea);
textarea.parentNode.insertBefore(toolbar, textarea);
textarea.classList.add('nf-md-active-textarea');
});
});
}
const observer = new MutationObserver(() => scanAndInject());
observer.observe(document.body, { childList: true, subtree: true });
setTimeout(scanAndInject, 1000);
})();
@השם-עוזר
אתה צריך מטען TypeC של 130W, לא משנה מאיזו חברה. גם HP טוב.
אפשר גם לקנות UGREEN למשל.
@Ykingsmart כתב בלהורדה | תוסף להשמעה רציפה ביוטיוב עבור משתמשי נטפרי:
אבל הקישור יותר לא זמין בחנות....... נשמח לקבלו שוב
תוכל להוריד מהגיטהאב.
@יונתן-המתכנת כתב בלהורדה | תוסף להשמעה רציפה ביוטיוב עבור משתמשי נטפרי:
הפרוייקט קיים גם בgithub בלינק הבא-https://github.com/israel2176/YouTube-plugin-netfree
ואמנם במקרה זה היה לטובה כי (מקווה) שעזרתי, אבל להבא גם אם ההקפצה "שווה" את זה, כדאי לפתוח נושא חדש ולתייג, ולא להקפיץ, אז כל מי שמנוי לנושא מקבל התראה.
בהצלחה!
@aass כתב בהמלצה | שליטה באיירפודס:
כהמשך לזה - https://mitmachim.top/post/1052998
עבד לי על לינוקס.
סרטון.webm
בא לי לעבור ללינוקס רק בשביל זה...
יש מצב למכונה וירטואלית שתשלוט רק על הבלוטוס?
@NH.LOCAL
מציע רעיון, לא יודע אם יעבוד:
לעשות בדיקה עם הAPI של נטפרי מה הספק, ובמידה והוא רימון, להעביר ישירות לדף התחברות של גוגל.
הAPI של נטפרי, הוא get ריק מצד לקוח לכתובת:
https://netfree.link/api/geo/get-isp
אם התשובה היא {"isp":"Internet Rimon LTD"} אז זה רימון. גם אם בלי סינון.
לכאו' אפשר לשלב בתוך JS שיחליט מה לעשות עם הלחיצה על הכפתור.
@יאיר-3210 כתב בשיתוף | אלף בוט הותר לפרסום: האתר שיחסוך לכם 90% מהעבודה בתמלול תוכן תורני (או כל דבר אחר):
מישהו אולי יכול לנסות לפנות לאתרוג שיפתחו את האתר?
פתוח לי באתרוג.
שים לב לסימן שלהם בצד:

בלת"ק.
מחפש מישהו שיודע מניסיון לעשות רוט קריאה+כתיבה+מג'יסק+הסרת אזהרת orange state למכשיר, ללא איפוס של החומר.
כמובן בתשלום.
ב"ב/אלעד/י-ם/מרחוק.
מייל בביו.
ידע טכני בסיסי יש לי, משלם בעיקר על הניסיון.
@NH.LOCAL כתב בשיתוף | אלף בוט הותר לפרסום: האתר שיחסוך לכם 90% מהעבודה בתמלול תוכן תורני (או כל דבר אחר):
אין כרגע API עם נקודת קצה חיצונית, רק מערכת API פנימית
לכשיהיה.
מייל בביו.