Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Как подставлять свои шрифты в BAS?
-
Каким образом можно самому задавать список установленных шрифтов?
Да знаю есть сервис отпечатков https://fingerprints.bablosoft.com/ Но мне нужно самому научится это делать, на будущее вдруг сервис окажется слишком дорогой.
Значит как эмулировать плагины я нашел кусок кода типа этого Object.defineProperty(window.navigator, 'plugins', {get: function() {return [{name:"Chrome PDF Viewer"}];}}); Тут https://community.bablosoft.com/topic/350/fingerprint-или-отпечаток-браузера/4
Юзерагент и разрешение экрана смогу сам подставить.
Осталось выяснить как эмулировать свой список шрифтов. Кто в курсе дайте пример рабочего кода пожалуйста.
-
@support все устраивает. Хочу сам во всем разобратся как это работает. Вдруг сервис ваш будет недоступен или еще чего. У меня есть своя база юзерагентов ище рандомом шрифтов и плагинов нагенерю.
Еще подскажите куда этот код font_list("Arial; Times New Roman")! пихать чтоб все заработало?
-
@support said in Как подставлять свои шрифты в BAS?:
@Gang Плагины не так просто установить, они связаны с mimeTypes и рекурсивно ссылаются друг на друга
Думаю в моем случае это не критично.
У меня шаб на Зенке. Перевожу на БАС. На Зенке там тупо юзерагент, разрешение экрана и навигатор. А тут думаю добавлю плагинов и шрифтов еще для приличия раз есть такая возможность. -
А что подстановка не помагает? Ваш отпечаток разве не так работает? Просто подставляет список шрифтов.
Ну начнем с того, что html не предоставляет api для получения списка шрифтов. Это можно сделать через флеш. Но если его используете, то об анонимности можно забыть.
А получить список шрифтов через html можно косвенно - создавая элемент с заданным шрифтом и сравнивая размеры с элементом без шрифтов.
Мой метод заключается в том, чтобы подменять шрифты честно, тоесть делать так, чтобы после применения функции font_list шрифты действительно менялись браузере в том потоке, что вызвал функцию.
В сети вы также можете найти реализацию через @font-face.
Но она легко определяется. Определить что шрифт "убрали" из системы можно создав 2 элемента со стилями font-family: Pompadur monospace; и font-family: Pompadur serif; если шрифта действительно нет в системе, то размеры элементов будут разные, если была подмена - размеры будут одинаковыми.
Также можно обратиться к свойству document.fonts, он покажет все шрифты загруженные через @font-face(но не все шрифты которые есть в системе)
-
@support said in Как подставлять свои шрифты в BAS?:
А что подстановка не помагает? Ваш отпечаток разве не так работает? Просто подставляет список шрифтов.
Ну начнем с того, что html не предоставляет api для получения списка шрифтов. Это можно сделать через флеш. Но если его используете, то об анонимности можно забыть.
А получить список шрифтов через html можно косвенно - создавая элемент с заданным шрифтом и сравнивая размеры с элементом без шрифтов.
Мой метод заключается в том, чтобы подменять шрифты честно, тоесть делать так, чтобы после применения функции font_list шрифты действительно менялись браузере в том потоке, что вызвал функцию.
В сети вы также можете найти реализацию через @font-face.
Но она легко определяется. Определить что шрифт "убрали" из системы можно создав 2 элемента со стилями font-family: Pompadur monospace; и font-family: Pompadur serif; если шрифта действительно нет в системе, то размеры элементов будут разные, если была подмена - размеры будут одинаковыми.
Также можно обратиться к свойству document.fonts, он покажет все шрифты загруженные через @font-face(но не все шрифты которые есть в системе)
Как все запутано) Спасибо за разъяснения!