@Whenever זה לא שירות אנונימי, אבל אם לא תגדיר אז לא ישלחו...
בדקתי כעת אצלי, ולא תמיד יש קבלה, וגם בפעם אחת שכן קיבלתי קבלה, כתוב פשוט kofi של XXX שזה השם של הדף...
@Whenever זה לא שירות אנונימי, אבל אם לא תגדיר אז לא ישלחו...
בדקתי כעת אצלי, ולא תמיד יש קבלה, וגם בפעם אחת שכן קיבלתי קבלה, כתוב פשוט kofi של XXX שזה השם של הדף...
@אף-אחד-3
אולי זה יתאים, https://ko-fi.com/
זה אמנם פחות בקטע של תשלומים, אבל זה מאפשר לשלם באשראי/פייפאל (בדולר) ואין עמלות עד כמה שידוע לי,
אתה תמיד יכול לרשום את הפייפאל על שם אחד השכנים,
או אולי דרך נדרים פלוס/קהילות
@loly-pop האם הורדתם את גרסת הIntelliJ IDEA Ultimate או את IntelliJ IDEA Community Edition?
אתם צריכים להוריד את מה שנמצא בקטע השני, (הכהה) שכתוב עליו "גרסת הקהילה"

@צדיק-תמים ראיתי, שלחתי לו הודעה היום בבוקר, והשארתי כעת גם issue,
מצורף התוכנה המדוברת,
ZerachExplorer_setop_1.3.0.exe (גיט)
https://github.com/abaye123/ZerachExplorer
מבוסס על https://github.com/tempous/LiteExplorer
בעתיד בעז"ה יהיה שינוי שם לקובץ והסרת כונן באופן בטוח
@mekev לדעתי אין כללים, אלא כלל אחד מה שהשכל האנושי טוען לך, אם אתה טועה, כנראה שאתה רובוט 
אני הייתי שם על הראשון והשלישי 0, השני והרביעי O (שים לב להבדל בצורה).
עדכון: מבדיקה נוספת שעשיתי כעת, זה עובד היטב בכל מחשב מלבד 2 המחשבים שעליהם אני כותב, (יש ביניהם סנכרון כלשהו, כך שזה מובן למה באג מור באחד משפיע גם על השני..), כך שהבעיה על פניו לא קשורה לתחום התכנות..
@dovid ניסיתי כבר לעשות את זה, שמרתי וזה עובד בדפדפן ובVSC היטב,
(אם זה יהיה רלוונטי אוכל לשלוח למי שצריך בפרטי לינק ישיר)
זה מקטע הקוד הרלוונטי
let INACTIVITY_TIMEOUT;
let INACTIVITY_TIMEOUT_LOGOUT;
let INACTIVITY_TIMEOUT_SHOW_BANNER_LOGIN;
let INACTIVITY_TIMER_LOGOUT;
let SLIDE_SHOW_TIMEOUT;
let IMAGE_DISPLAYED = false;
// zmani
let IS_SABBATH = false;
function resetAdDisplay(elementId) {
console.log('resetAdDisplay. IMAGE_DISPLAYED: ' + IMAGE_DISPLAYED);
clearTimeout(INACTIVITY_TIMEOUT);
clearTimeout(SLIDE_SHOW_TIMEOUT);
if (elementId !== 'bthLogoutBanner') {
//hideBannerConnectionUser();
}
INACTIVITY_TIMEOUT = setTimeout(function () {
if (!IMAGE_DISPLAYED && !IS_SABBATH) {
console.log('displayAds: start');
displayAds();
IMAGE_DISPLAYED = true;
//logout();
}
}, 40000);
}
let currentImageIndex = 0;
const images = [
'resources/v322.jpg',
'resources/ad.jpg',
];
function displayAds() {
let adsContainer = document.createElement('div');
adsContainer.id = 'ads-div';
adsContainer.style.position = 'fixed';
adsContainer.style.top = '0';
adsContainer.style.left = '0';
adsContainer.style.width = '100%';
adsContainer.style.height = '100%';
adsContainer.style.zIndex = '1900';
adsContainer.style.display = 'flex';
adsContainer.style.flexDirection = 'column';
adsContainer.style.alignItems = 'center';
adsContainer.style.justifyContent = 'center';
let adsContent = document.createElement('div');
adsContent.id = 'ads-content';
adsContent.style.position = 'fixed';
adsContent.style.top = '0';
adsContent.style.left = '0';
adsContent.style.right = '0';
adsContent.style.width = '100%';
adsContent.style.height = '100%';
adsContent.style.maxWidth = '690px';
adsContent.style.margin = 'auto';
adsContent.style.zIndex = '1900';
adsContent.style.display = 'flex';
adsContent.style.flexDirection = 'column';
adsContent.style.alignItems = 'center';
adsContent.style.justifyContent = 'center';
let currentImage = document.createElement('img');
currentImage.src = images[currentImageIndex];
currentImage.style.width = '100%';
currentImage.style.height = '100%';
currentImage.addEventListener('click', hideAds);
let prevButton = document.createElement('button');
prevButton.textContent = '❮';
prevButton.onclick = displayPrevImage;
let nextButton = document.createElement('button');
nextButton.textContent = '❯';
nextButton.onclick = displayNextImage;
prevButton.style.position = 'absolute';
prevButton.style.top = '50%';
prevButton.style.width = '50px';
prevButton.style.height = '50px';
prevButton.style.transform = 'translateY(-50%)';
prevButton.style.right = '18px';
prevButton.style.backgroundColor = 'rgba(255, 255, 255, 0.5)';
prevButton.style.border = 'none';
prevButton.style.borderRadius = '50%';
prevButton.style.color = 'rgba(0, 0, 0, 0.8)';
prevButton.style.fontSize = '28px';
prevButton.style.cursor = 'pointer';
nextButton.style.position = 'absolute';
nextButton.style.top = '50%';
nextButton.style.width = '50px';
nextButton.style.height = '50px';
nextButton.style.transform = 'translateY(-50%)';
nextButton.style.left = '10px';
nextButton.style.backgroundColor = 'rgba(255, 255, 255, 0.5)';
nextButton.style.border = 'none';
nextButton.style.borderRadius = '50%';
nextButton.style.color = 'rgba(0, 0, 0, 0.8)';
nextButton.style.fontSize = '28px';
nextButton.style.cursor = 'pointer';
adsContent.appendChild(currentImage);
adsContent.appendChild(prevButton);
adsContent.appendChild(nextButton);
adsContainer.appendChild(adsContent);
document.body.appendChild(adsContainer);
console.log('displayFullScreenImage');
SLIDE_SHOW_TIMEOUT = setInterval(displayNextImage, 22000);
}
function displayNextImage() {
currentImageIndex = (currentImageIndex + 1) % images.length;
updateImage();
console.log('displayNextImage');
}
function displayPrevImage() {
currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;
updateImage();
console.log('displayPrevImage');
}
function updateImage() {
let currentImage = document.querySelector('#ads-div #ads-content img');
currentImage.src = images[currentImageIndex];
clearInterval(SLIDE_SHOW_TIMEOUT);
SLIDE_SHOW_TIMEOUT = setInterval(displayNextImage, 22000);
}
function hideAds() {
console.log('hideFullScreenImage');
const adsContainer = document.getElementById('ads-div');
if (adsContainer) {
adsContainer.remove();
IMAGE_DISPLAYED = false;
resetAdDisplay('elementId');
}
}
document.addEventListener('mousedown', function (event) {
resetAdDisplay(event.target.id);
});
document.addEventListener('keypress', function (event) {
resetAdDisplay(event.target.id);
});
document.addEventListener('touchstart', function (event) {
resetAdDisplay(event.target.id);
});
resetAdDisplay('elementId');
יש לי סקריפט js שיוצר אלמנט div על כל המסך שמציג תמונות מתחלפות עם כפתורי קדימה/אחורה, האלמנט הלז נוצר לאחר כ40 שניות שלא בוצעה לחיצה במסך, ובVSC עם live server זה פועל מצויין, וכן (אותו קוד בדיוק, גירסה ישנה יותר של האתר עצמו, ללא שינויים שמשפיעים) במקום אחר בשרת.
אבל כשאני מרים את הקוד משרת express חדש, הפונקציה רצה כרגיל, כולל ההדפסות לקונסול, והאלמנטים נוצרים כרגיל, התמונות נמשכות מהשרת ומתחלפות (רישום בקונסול), אבל הכל, ללא שעל המסך ניכר משהו מלבד העובדה שקליקים לא עובדים בגלל שכבת העל של הdiv ש"מסתירה" (בשקוף, כי התמונה לא מוצגת) את שאר התוכן,
למישהו יש רעיון?
אני משתמש בקוד הבא כדי לייצא למשתמש את תוכן טבלה בדף למסמך csv, אבל תווים עבריים מוצגים באקסל כג'יבריש, ניסיתי לקודד כANSI (או Windows-1255), אבל זה עדיין יורד כUTF-8 ומוצג כג'יבריש
פתרונים? הפונקציה צריכה לרוץ בצד הלקוח, ועדיף ללא ספריות וכו'.
function exportToCSV() {
let csvContent = "data:text/csv;charset=ANSI,";
const rows = document.querySelectorAll('#table-report-sales tr');
rows.forEach(row => {
const rowData = [];
row.querySelectorAll('th, td').forEach(cell => {
rowData.push(`"${cell.textContent}"`);
});
csvContent += rowData.join(',') + '\n';
});
//const encodedUri = encodeURI(csvContent);
const encodedUri = encodeURI(`data:text/csv;charset=ANSI,${csvContent}`);
const link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "sales_report.csv");
document.body.appendChild(link);
link.click();
}
@mekev העברה לתיבת אימייל אחרת? כי אני אוכל כנראה לכתוב לך קוד קטן לגוגל סקריפט שמעביר מיילים מכתובות/תווית מסוימת, לכתובת אחרת, כהודעה הודעה, ומכניס מספר רנדומלי (או שעה למשל) בנושא כך שזה לא יקובץ ביחד..
@mekev אני כעת לא מצליח למצוא את זה בהגדרות הניתוב, עשיתי משהו בסגנון הזה אצלי בעבר, אבל אני כעת לא מוצא היכן זה היה..
@יעקב-מ-פינס תוכל גם לנתק בעצמך מהרשת ולהחזיר כדי לראות שזה אכן עובד..
אם אתה יודע איך מציצים בקונסול, תבדוק אם יש שם כעת שורה כזו:

זה אומר שהסקריפט אכן נטען לאתר, ושאין בעיה בהגדרה של הTampermonkey
@mekev על הצד הקלוש שאולי אתם משתמשים בגוגל וורקספייס עסקי, אז אפשרי להגדיר בניתוב אימייל שלכתובות מסוימות יתווסף משהו לנושא, אם רלוונטי אבדוק בדיוק כיצד לעשות את זה..
@יעקב-מ-פינס כעת הצלחתי, וזה עובד אצלי היטב (מקודם הTampermonkey פשוט היה מושבת..),
// ==UserScript==
// @name refresh kcm
// @namespace http://tampermonkey.net/
// @version 2024-05-15
// @description try to take over the world!
// @author You
// @match https://kcm.fm/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function() {
console.log('test...');
window.addEventListener('online', () => {
console.log('is online - refreshing...');
location.reload(true);
});
})();
@יעקב-מ-פינס
תנסה להזריק באמצעות תוספים כמו Tampermonkey משהו כזה, אני לא מביא סקריפט מוכן לTampermonkey כי אני לא ממש בקי בזה..
window.addEventListener('online', () => {
location.reload(true);
});
באופן אישי לי זה לא תמיד עובד במחשב (הקריאה לאירוע בעת ההתחברות מחדש, לא הריענון), אבל בטאבלט אנדרואיד זה עובד לי מעולה.
@עמית26 מניסיון לא אישי (ב"ה) אני ממליץ על עסקן על פני הדרן
אני חושב שיש להם אפליקצייה בשם Kosher Tube שהיא יוטיוב מסונן שלהם, ומלבד זה זה עונה לכל הדרישות שהצגת,
@צדיק-תמים אני מיישם בעיקרון את כל המגבלות בשני הצדדים, ולא זה העניין, העניין האמיתי הוא פשוט יותר, האפליקציה צריכה להיות בשימוש של בחורים, ולא בא לי (זה גם רמת החשיבות) לעשות למי שרוצה לשחק חיים קלים...
לא השתמשתי בקאפצ'ה, אני אכן אבדוק את זה בעז"ה.
תודה לכל העונים,
לא אכפת לי מאיסוף זוחל של הנתונים, ואני לא בשלב של חשש מבוטים (אני רוצה לחסום לפני זה שימוש שלא דרך הapp, ולא רק לבוטים, ככה שקאפצ'ה לא יעזור כאן לכאורה..) מצידי שכל משתמש יישמור את הנתונים שלו אצלו בגוגל דרייב ושיערב לו, מה שאני רוצה למנוע ממנו זה לקבל את הנתונים שלא דרך האפליקציה, כשהמטרה הסופית היא לא לאפשר לדוגמה למלאות טופס באמצעות שליחת קריאת api עם הפרמטרים הנצרכים..
באנלוגיה של בקשת GET, אני רוצה למנוע ממנו להדביק בדפדפן https://api.site.com/app/addlist?id=132&name=tamar ולהוסיף רשימה חדשה (שאז אפשר לשרשר רשימה משיטס לדוגמה וכן הלאה)..
(ללכוד את הקריאה כמו שהיא נשלחת זה יחסית קל, אבל להבין למה אותה בקשה פתאום כבר לא עובדת משום מה (כי יש טוקן זמני), ואז להסיק שזה איפשהו בקוד ולהתחיל לחפש בשביל זה צריך להיות עכבר קצת יותר רציני ..)
@איש-ימיני מה לבקש? זה לא יעזור לי פר לקוח כמו שכתבתי...
או שאתה מתכווין לשאול אותם כיצד ניתן למנוע את הטעינה באתר שלי? זה נראה לי יותר קשור לכאן מאשר אליהם..