Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   extensions в профиле Mozilla Firefox (http://forum.oszone.net/showthread.php?t=325932)

icetanker 14-04-2017 08:43 2729159

extensions в профиле Mozilla Firefox
 
у каждого пользователя свой уникальный профиль в Mozilla Firefox, задача в том, что нужно каким-то образом определить имя профиля и скопировать в директорию C:\Users\User\AppData\Roaming\Mozilla\Firefox\Profiles\<профиль>\extensions свое расширение, хотелось бы как то это автотизировать, но не могу понять, как определять данный профиль

x0r 14-04-2017 18:03 2729310

...

Iska 14-04-2017 18:13 2729314

Цитата:

Цитата x0r
Чё за расширение? способ есть и не один. »

Да без разницы. Способ ровно один — в соответствии со стандартами.

icetanker 15-04-2017 10:51 2729483

Iska, подскажи, а какой способ?

x0r 15-04-2017 11:23 2729493

разницо есть. Если это очередной говно-рекламный плуг или другой мегокалькулятор(всем ощень-на нужный), который школьнег хочет тулить всем подряд в скрытой установке, то чем дольше он будет в неведении, тем меньше от него будет проблемм.

icetanker 15-04-2017 11:56 2729502

x0r, если настолько есть разница , то вот это https://www.cryptopro.ru/sites/defau...fx-windows.xpi

Nordek 15-04-2017 12:52 2729517

icetanker, Вы потрудились бы для начала пользоваться поиском.

Повторю свой ответ:
Цитата:

Цитата Nordek
На Ваш вопрос даже отвечать нет необходимости, поскольку Google способен найти интересующую Вас информацию. »

Если не верите, то: Пожалуйста.

x0r 15-04-2017 13:00 2729520

Profile_folder_-_Firefox
если из самого FF, нопример CustomButtons или самого расширения, то
Код:

var prof = Services.dirsvc.get('ProfD', Ci.nsIFile);
prof.append("extensions");

или
Код:

var file= Components.classes["@mozilla.org/file/directory_service;1"].
          getService(Components.interfaces.nsIProperties).
          get("ProfD", Components.interfaces.nsIFile);
          file.append("extensions");

можно из cmd\js (тут я не особо) Профиль лежит в
Код:

%APPDATA%\Mozilla\Firefox\Profiles
а там(..\) файл profiles.ini где указаны имена папок профиля. Нужно его разобрать , взяв строку с путем.
раньше можно было проще, была переменная %MOZ_PROFILE_PATH% , щас вроде убрали.

Iska 16-04-2017 16:55 2729838

Nordek, не верю. Профиль может быть не в %APPDATA%\Mozilla\Firefox. В profiles.ini может быть более одного профиля. Профили могут иметь как относительные, так и абсолютные пути. Кодировка файла тоже никак не учитывается.

Nordek 16-04-2017 18:02 2729853

Цитата:

Цитата Iska
не верю. »

Чего остановился? Продолжай, а я послушаю. Ваше предложение выглядит незаконченным.

Цитата:

Цитата Iska
...так и абсолютные пути. Кодировка файла тоже никак не учитывается... »

... также если два и более профилей, "может быть" использован последний профиль (первый или первые два пропущены).

P.S Изначально подразумевал по умолчанию. Это или это не подразумевал.

Iska 16-04-2017 18:10 2729856

Nordek, вот именно это и надо было говорить, только не мне и сейчас, а автору вопроса и сразу.

icetanker 26-04-2017 14:44 2732465

Файл 145243
cmd

Код:

@Echo Off
:: путь к моему файлу, который нужно скопировать
Set myfile=ru.cryptopro.nmcades@cryptopro.ru.xpi
:: путь к ini файлу, из которого нужно прочитать название папки профиля
Set pathini=%appdata%\Mozilla\Firefox\profiles.ini
:: путь, по которому нужно будет создать этот профиль и потом скопировать мои файл и папку
Set outfolder=%appdata%\Mozilla\Firefox

:: читаем название папки профиля из ini файла
For /f "tokens=2 delims==" %%i In ('FindStr /b "Path=" "%pathini%"') Do Set fPath=%%i
:: получаем полный путь папки профиля и правим в нем прямой слеш на обратный
Set fPath=%outfolder%\%fPath:/=\%
Echo %fPath%

SetLocal EnableExtensions EnableDelayedExpansion

Set "File="%fPath%\extension.json""
rem Set "File=extension.json"

Set "Rep1="active":true""
Set "Rep2="userDisabled":false""

>"%File%.bat.tmp" (FOR /F "usebackq delims=" %%s IN (`More "%File%"`) DO Echo %%s)

Set /A N1=0,N2=0,NN=0
FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N ""active":false"" "%File%.bat.tmp"`) DO Set N1=%%n
FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N ""userDisabled":true"" "%File%.bat.tmp"`) DO Set N2=%%n

>"%File%" (FOR /F "usebackq delims=" %%s IN (`More "%File%.bat.tmp"`) DO (
                        Set /A NN+=1
                        If Not !NN! EQU %N1% If Not !NN! EQU %N2% Echo %%s
                        If !NN! EQU %N1% Echo %Rep1%
                        If !NN! EQU %N2% Echo %Rep2%
                  ))
DEL "%File%.bat.tmp" 2>NUL

Exit



получилось скопировать файл в папку extension, только теперь не получается отредактировать сам файл extensions.json
хочу найти значения у параметров "active":false,"userDisabled":true у самого плагина и изменить их на "active":true,"userDisabled":false
подскажите, где может быть ошибка?

Iska 26-04-2017 15:27 2732477

Цитата:

Цитата icetanker
подскажите, где может быть ошибка? »

В выборе языка реализации. Возьмите PowerShell — тем более, что нынче в нём есть такие командлеты, как ConvertFrom-Json и ConvertTo-Json, а равным образом не будет проблем с юникодом.

icetanker 26-04-2017 15:38 2732479

Iska, а с помощью cmd не получиться никаким образом? или пример какой-нибудь на powershell?

Iska 26-04-2017 16:25 2732484

icetanker, я вижу очень много проблем на этом пути, и вовсе не уверен, что все они решаемы.

icetanker 26-04-2017 17:16 2732495

Iska, у Вас нет примера, как можно это реализовать с помощью powershell?(почитал по powershell, честно говоря, не очень понятно)

Iska 26-04-2017 17:44 2732498

icetanker, нет, готового примера для xpi без install.rdf у меня нет.

icetanker 27-04-2017 09:39 2732624

Iska, а на vbs возможно реализовать?

Iska 27-04-2017 22:13 2732830

Цитата:

Цитата icetanker
Iska, а на vbs возможно реализовать? »

Полагаю, можно, но возни будет вдвое-втрое больше: встроенной поддержки UTF-8 нету — надо будет заниматься конвертацией через ADODB.Stream, также придётся самому парсить и разбирать-собирать JSON.


Время: 13:58.

Время: 13:58.
© OSzone.net 2001-