הצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?
-
היי.
כמו שכולכם יודעים, כל תוסף מכביד על הזיכרון של הכרום ועל טעינת האתרים!
וכמו שכולכם יודעים, כמעט לכל משתמש כאן בפורום יש רעיון לתוסף... ותוסף פעיל עם כמות משתמשים...
השאלה היא מה אפשר לעשות, בשביל ליצור מהכל תוסף אחד גדול ואחיד?
שיחבר את כל מה שהעלו כאן בפורום, וכל הזמן יהיה ניתן לעדכן אותו. ממשק כל שהוא כמו גיטהב.
ככה שיהיה ניתן כל הזמן להשבית או להפעיל תוספים ישירות מדשבורד פשוט בפופאפ.
בעצם זה אמור לעבוד כמו tampermonkey
אם יש למישהו דרך לשכלל את הרעיון ולהביא אותו לכדי מעש, זה יהיה מעולה.
התחלתי לבנות משהו פעם, יצא משהו חמוד, אבל לא היה מאופין, ככה שלא הגעתי לכלל משהו מוגמר.צריך להחליט מה בדיוק צריך, אח"כ לבצע.
רעיון שאני מוסיף, אם יש תוספים שעושים את אותו דבר, פשוט לאחד אותם למשהו אחד טוב יותר, ולצמצם משאבים.
אשמח לתגובות שלכם.
@מים-אחרונים זה לא עובד ככה,
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.בנוגע לניהול ריפו מרכזי לא רואה מישהו מוכן לכאב ראש הזה (מה הרווחת כאן פשוט יצרת את הweb store שוב פעם)
קיצער לא רואה כאן רווח משמעותי,
חוץ מהרבה כאב ראש. -
הנה הקוד שGPT נתן לי לטמפרמונקי - לתוסף @מגנוס-קרלסן לפתקים לדפדפן
כתוב לי שזה נטען בהצלחה - רק שאני לא רואה מה יוצא מזה- מישהו יוכל לבדוק את זה?// ==UserScript==
// @name Sticky Notes - פתקים חכמים
// @namespace http://tampermonkey.net/
// @version 1.0
// @description צור פתקים נצמדים לכל דף אינטרנט או דומיין
// @author השם שלך
// @match <all_urls>
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==document.addEventListener('DOMContentLoaded', () => {
const addBtn = document.createElement('button');
addBtn.innerText = "
הוסף פתק לדף זה";
addBtn.style.position = 'fixed';
addBtn.style.bottom = '10px';
addBtn.style.right = '10px';
addBtn.style.background = '#ffeb3b';
addBtn.style.border = 'none';
addBtn.style.padding = '10px 20px';
addBtn.style.cursor = 'pointer';
addBtn.style.borderRadius = '5px';
addBtn.style.fontWeight = 'bold';
addBtn.style.boxShadow = '0 2px 5px rgba(0, 0, 0, 0.1)';
document.body.appendChild(addBtn);addBtn.addEventListener('click', () => { createNewNote(); }); loadNotes();});
function loadNotes() {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
const currentUrl = window.location.href;
const currentDomain = window.location.hostname;// סינון פתקים לדף הנוכחי או לאתר הנוכחי const filteredNotes = notes.filter(note => { if (note.scope === 'page' && note.url === currentUrl) return true; if (note.scope === 'domain' && note.domain === currentDomain) return true; return false; }); filteredNotes.forEach(note => renderNote(note));}
function createNewNote() {
const note = {
id: Date.now().toString(),
content: '',
top: '100px',
left: '100px',
width: '200px',
height: '200px',
color: '#ffeb3b', // צבע ברירת מחדל
url: window.location.href,
domain: window.location.hostname,
scope: 'page' // "page" או "domain"
};saveNoteToStorage(note); renderNote(note);}
function renderNote(noteData) {
const container = document.createElement('div');
container.className = 'sticky-note-container';
container.id = noteData.id;
container.style.position = 'absolute';
container.style.top = noteData.top;
container.style.left = noteData.left;
container.style.width = noteData.width;
container.style.height = noteData.height;
container.style.backgroundColor = noteData.color;
container.style.zIndex = '2147483647';// כותרת (כוללת כפתור סגירה ובורר צבעים) const header = document.createElement('div'); header.className = 'sticky-header'; const closeBtn = document.createElement('span'); closeBtn.innerHTML = '✖'; closeBtn.className = 'sticky-btn'; closeBtn.onclick = () => deleteNote(noteData.id, container); const colorBtn = document.createElement('input'); colorBtn.type = 'color'; colorBtn.value = noteData.color; colorBtn.className = 'sticky-color-picker'; colorBtn.oninput = (e) => { container.style.backgroundColor = e.target.value; noteData.color = e.target.value; updateNote(noteData); }; const scopeBtn = document.createElement('button'); scopeBtn.className = 'sticky-scope-btn'; scopeBtn.innerText = noteData.scope === 'page' ? '📄 דף' : '🌐 אתר'; scopeBtn.onclick = () => { noteData.scope = noteData.scope === 'page' ? 'domain' : 'page'; scopeBtn.innerText = noteData.scope === 'page' ? '📄 דף' : '🌐 אתר'; updateNote(noteData); }; header.appendChild(colorBtn); header.appendChild(scopeBtn); header.appendChild(closeBtn); // אזור תוכן const content = document.createElement('div'); content.className = 'sticky-content'; content.contentEditable = true; content.innerHTML = noteData.content; let timeout; content.addEventListener('input', () => { clearTimeout(timeout); timeout = setTimeout(() => { noteData.content = content.innerHTML; updateNote(noteData); }, 500); }); container.appendChild(header); container.appendChild(content); document.body.appendChild(container); dragElement(container, noteData);}
function saveNoteToStorage(newNote) {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
notes.push(newNote);
GM_setValue('stickyNotes', JSON.stringify(notes));
}function updateNote(updatedNote) {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
const index = notes.findIndex(n => n.id === updatedNote.id);
if (index !== -1) {
notes[index] = updatedNote;
GM_setValue('stickyNotes', JSON.stringify(notes));
}
}function deleteNote(id, element) {
if (!confirm('למחוק את הפתק?')) return;element.remove(); const notes = JSON.parse(GM_getValue('stickyNotes', '[]')); const filteredNotes = notes.filter(n => n.id !== id); GM_setValue('stickyNotes', JSON.stringify(filteredNotes));}
function dragElement(elmnt, noteData) {
let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
const header = elmnt.getElementsByClassName("sticky-header")[0];header.onmousedown = dragMouseDown; function dragMouseDown(e) { e.preventDefault(); pos3 = e.clientX; pos4 = e.clientY; document.onmouseup = closeDragElement; document.onmousemove = elementDrag; } function elementDrag(e) { e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; pos3 = e.clientX; pos4 = e.clientY; const newTop = (elmnt.offsetTop - pos2) + "px"; const newLeft = (elmnt.offsetLeft - pos1) + "px"; elmnt.style.top = newTop; elmnt.style.left = newLeft; } function closeDragElement() { document.onmouseup = null; document.onmousemove = null; noteData.top = elmnt.style.top; noteData.left = elmnt.style.left; updateNote(noteData); }}
אבל אצלי יש בעיה כלשהי בטמפרמונקי - כך שזה לא ראיה
-
@מים-אחרונים זה לא עובד ככה,
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.בנוגע לניהול ריפו מרכזי לא רואה מישהו מוכן לכאב ראש הזה (מה הרווחת כאן פשוט יצרת את הweb store שוב פעם)
קיצער לא רואה כאן רווח משמעותי,
חוץ מהרבה כאב ראש.@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
-
@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
@מים-אחרונים למה שהטעינה תתשנה?
-
@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
-
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות. -
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות.@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות.האמת משפט מסובך - קראתי פעמיים ואני לא בטוח שירדתי לעומק דעתך...
-
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
-
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
@מים-אחרונים כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
-
@מים-אחרונים כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
לא דיברתי רק על טמפרמונסקי.
אני מדבר עם פופאפ משלך, שמכבה או מפעיל את הפונקציות.