Dumby
не работает Toggle URL Tooltip "Ссылки во всплывающих подсказках", подключаю в scriptsbackground [System Principal]
Farby давал аналогичный UserScript, он выводит кнопку, но тоже не работает...
замена панели unified-extensions-button
Эта панель мало информативная, на мой взгляд, нужно открывать подменю каждого дополнения.
Кнопка меню с Дополнениями от Vitaliy V. более наглядная, ей проще пользоваться.
egorsemenov06
а чем не кошерна штатная кнопка "Забыть о части истории" или меню "Удалить недавнюю историю" по Ctrl+Shift+Del ?
Есть ещё "Автоматическое удаление истории", и всё это без сторонних костылей…
ucf_hookClicks 3.9 изменений около 1000, Demo-профиль пашет в новом UCF,
в подсказке кнопки Расширения отображаются версии UCF и ucf_hookClicks
Вывод 7 типов счётчика в любую кнопку, обновление по-умолчанию каждые 30 мин.
1) тип=пуст | учётка не та: количество расширений в кнопке (это по-умолчанию)
2) обратный отсчёт дней до замены пароля, зелёный фон (нужно указать число дней)
3) тип >0 дни, на которые превышен срок пароля, красный
4) тип=S срок от обновления выбранной учётки, серый
5) тип=Р количество паролей/пользователей, синий
6) тип=B количество закладок, голубой
7) aG! если чужой UserAgent, красный
Читаются лишь даты обновления учётной записи! без паролей!
синтаксис опции: тип[:update sec:button] | сайт | имя[:user] | текст меню %s
%s значение счётчика, %d склонение слова день, %u $USER из системы или [:user]
Изменить тип счётчика: нажать 1 сек мышь на кнопке Расширения, открыт
Dumby - не все картинки переименовываются.
Наверное, с Overlay проблемы, но имена получены и меняются для всех.
ClickPicSave.jsm нормально сохраняет не в папку Загрузки, но не переименовывает с некоторых сайтов.
Может, для подобных расширений тоже не сработает. Через "Сохранить изображение как…" всегда переименует.
[spoiler=Mod onDownloadChanged][code](async renamed => {
var view = {
onDownloadChanged(download) {
if (!download.succeeded || download[renamed] || this.skipRenameForDownload(download))
return;
var win = Services.wm.getMostRecentBrowserWindow();
var img = new win.Image();
img.onload = this.onImgLoad;
img.src = (img.u = Services.io.newFileURI(
img.f = win.FileUtils.File((img.d = download).target.path)
)).spec;
},
onImgLoad() {
var uri = this.u.QueryInterface(Ci.nsIURL);
var file = this.f, {parent}
Dumby
Помоги! Не смог прикрутить проверку графического файла к скрипту отслеживания загрузок!
для isGraf await тоже не помог, сбой на строке var src = download.source.url;
(async () => { var list = await Downloads.getList(Downloads.ALL); list.addView({ onDownloadChanged(download) { if (!download.succeeded) return; var isGraf = url => new Promise(resolve => { var img = new Image(); img.onload = img.onerror = e => resolve(e.type.startsWith("l")); img.src = url; }); var src = download.source.url; // var s = await isGraf(src); console.log(src); // alert(await isGraf(src)); } }); })();
Типа попытки загрузить в <img> Если удалось — значит графический.
Благодарю! пойдёт, за неимением лучшего, т.к. определять по расширению глупо.
Возвращает false для pcx tga tif и видимо, всех, не поддерживаемых на страницах HTML.
на Маке и Линукс тип можно получить через proc.runwAsync(file path) это слишком тупой способ…
Dumby - спасибо! (исчо другой вопрос в теме UCF задал)
На кнопке не получается показать 4 символа, видно первые три. Это ограничение Firefox ?
Делаю показ дней от смены/обновления пароля выбранной учётки или до смены пароля (если указан срок жизни пароля при регулярной замене)
Dumby помоги ещё! :beer:
Как определить, что загруженный файл является графическим по его содержанию, а не по расширению ?
В коде завершения загрузки надо переименовывать лишь картинки, взяв имя из Clipboard
P.S. пробовал некоторые примеры из сети, но не получилось в твой скрипт приспособить...
Приветствую!
Вопрос: как отображать цифру на любой кнопке ? и каждый час обновлять ?
Например, на своей кнопке или unified-extensions-button выводить справа сверху цифру аналогично AdBlock, но на синем фоне ?
Dumby - сделал подсчёт дней от смены пароля, через nsILoginManager не получилось...
(async ()=>{ // код выполнять в окне var AlLogins = await Services.logins.getAllLogins(); var PassInfo = urluser => AlLogins.filter(function(item){ if(item.origin +' '+ item.username == urluser) return item; })[0]; try {var dayPass = PassInfo("https://accounts.google.com USER@gmail.com").timePasswordChanged; } catch {dayPass = new Date()} var diffDays = Math.ceil(Math.abs(new Date().getTime() - new Date(dayPass).getTime())/86400000); console.log(diffDays); //прошло дней от смены пароля })();
Dumby - приветствую и с Наступающим НГ! :)
Вопрос про пароли – как получить в js из страницы about:logins# даты:
«Создан» ..... «Использован», для сайта и имени пользователя, например vk.com и +7... ???
В теме много скриптов с unloadlisteners, например ucf-appmenu-restart-button
В UCF 2024-30-11 нет unloadlisteners, в котором выполнялся .destructor()
Для нового UCF нужно в таких скриптах удалять unloadlisteners, переименовать ucf_custom_script_win и пр.
Вопрос: в новом UCF из-за таких скриптов не будет переполнения памяти или других ошибок ?
addEventListener в скриптах остаётся, нужно ли добавлять отдельный .destructor() вместо unloadlisteners ?
Dumby
со строкой list.removeView(this); работает однократно, без неё нормально.
Было нужно для фото с VK.com, открываемых отдельно, и автопереименования сохранённой картинки по имени из clipboard.
Возможно, для этого есть какой-либо userscript, но не нашёл…
Список можно получить так (если вместе с приватными)
await (await Downloads.getList(Downloads.ALL)).getAll();
Спасибо!
А как назначить код на событие ???.succeeded: «Загрузка завершена» ?
Всем привет!
На загруженные файлы можно перейти, нажав кнопку “Показать в проводнике», пока список Загрузок не очищен.
Вопрос: как из JS-кода показать в проводнике последний загруженный файл ?
В идеале не только последний, но и по номеру - перейти в проводнике на последний, предпоследний и т.д. файл.
Ещё надо получить полный путь к последнему загруженному файлу (чтоб переименовывать по имени из буфера обмена).
unter_officer - именно делает скрипт ucf_hookClicks.js из демо-профиля.
Как обычно, ответ стандартный – «Читайте шапку!» вторая строка справки из шапки:
…Добавить закладку без запроса…
вот код функции, можете вырезать его в ваш скрипт, только подсказка берётся отсюда…
xrun1
замечу: в МакОС (вставка по ^+Y) и Линукс (колёсико мыши) есть второй буфер обмена, работающий штатно, без сторонних приложений.
Den199
в шапке Контекстное меню "Открыть ссылку в…"
Если клик не по ссылке, берёт адрес страницы. Код действий можно вбить произвольный и пункты меню назвать как нужно…
iG0R здесь есть TST TabPreview.mjs
но включение эскизов работает на [firefox] 128 без скрипта: browser.tabs.hoverPreview.enabled = true
_zt нечего скрывать чужой труд, это не ваш скрипт, вы сами попрошайничаете:
И, пожалуйста, переделайте в mjs jsm-ки: … TST TabPreview
Возможно ли добавить в неё Preview страницы, чтобы пользоваться только подсказками из пакета UCF?
Нет. Предпросмотр вкладок по наведению и по Ctrl+Tab делается браузером. Проси Dumby или ищи расширение, мой скрипт, отображающий подсказки, предназначен для другого — описание в первой строке.
Правильно ли я нашел участок кода, отвечающий за всплывающую подсказку над вкладкой?
Да, но как видно в приведённом коде, над вкладкой подсказка только имя вкладки trg.label
Теперь для нового ucf_hookClicks.js в блоке Tag подсказка выключается так: [F.C]: "", … другие подсказки
Обновил демо-профиль, более 600 изменений в файлах, исправил несколько ошибок, сделал доработки согласно пожеланиям, дополнил встроенную справку (доступную в UserMenu по правому клику на unified-extensions), улучшил совместимость.
Или может есть возможность встроить в эту подсказку функцию показа Preview страницы
Показ эскизов зависит от browser.tabs.cardPreview.enabled.
убрать возможность закрывать вкладки слева и справа по сочетанию "колеско + Shift" и "колесико + Alt"?
Уберите ненужные сочетания кликов из ucf_hookClicks.js, в коде всё подробно подписано, строка 244
Dumby — приветствую!
Есть код сохранения страницы или выбранного текста в файл .txt. Ему и деструктор нужен, и скрипт довольно объёмный.
Опять (двойка) просьба/вопрос: возможно ли упростить код с совместимостью [firefox] 115+ ?
[spoiler=saveSelToTxt — используется в ucf_hookClicks.js][code]var addDestructor = nextDestructor => { //для saveSelToTxt
var {destructor} = ucf_custom_script_win["ucf_hookExpert"];
ucf_custom_script_win["ucf_hookExpert"].destructor =()=> {
try {destructor();} catch {}
nextDestructor();
}
}
var saveSelToTxt = async () => { //в .txt Всё или Выбранное
var {length} = saveURL, splice = length > 9, l11 = length == 11, msgName = F.id + ":Save:GetSelection"; //FIX FF103+
var receiver = msg => {var txt = "data:text/plain,"+ encodeURIComponent(gBrowser.currentURI.spec +"\n\n"+ msg.data);
var args = [txt, (document.title || gBrowser.selectedTab.label) +'.txt',null,false,true,null,window.document];
splice && args.splice(5,0,null) && l11 && args.splice
Dumby - приветствую!
Перестал сохранять картинку при перетаскивании скрипт ClickPicSave.mjs
Как исправить для FF 129.0.1 ошибку dt = e.dataTransfer is null
И как там исправить код internalSave для работы на FF 115…129+ ? Вроде в Save по другому сделано…
{length} = win.internalSave, lfix = length > 15; // фрагмент из ClickPicSave.mjs lfix && args.splice(1, 0, null); //FIX FF113+ win.internalSave(...args);