Уважаемые форумчане, кто сталкивался с такой проблемой:
После обновления firefox до 45–й версии, стало невозможно добавить свой поисковый плагин. При добавлении xml файла в папку searchplugins, он в firefox не отображается, а устанавливаемые с некоторых сайтов их поисковые плагины, ставятся неизвестно куда, а не в searchplugins, как раньше. Через http://mycroftproject.com/ плагины ставятся, но, опять таки, найти их в каких–либо папках невозможно, да и не всегда целесообразно публиковать какие–то узкоспециализированные плагины.
Возможно ли теперь добавление своего плагина и, если — да, то как? Кто какие видит пути решения данного вопроса? Заранее благодарен за ответ.
Отсутствует
В search.json они теперь ставятся. Если какой-то из новых плагинов в search.json или из старых, в папке searchplugins, не добавился/обновился после редактирования, то удалите, при закрытом браузере, файл search.json.mozlz4 (это что-то вроде кэша поисковых плагинов).
Отсутствует
turbot
Папки searchplugins вообще не существует в последних версиях. Если удалить файл search.json.mozlz4 то удалятся все установленные поиски.
Mozillafan
Поисковые плагины добавляются в файл search.json.mozlz4. Те сайты которые не предлагают добавить свой поиск, можно добавить дополнением Add to Search Bar.
Перемещаются и удаляются поиски в настройках на вкладке поиск.
Отредактировано oleg.sgh (02-05-2016 18:27:01)
Отсутствует
Папки searchplugins вообще не существует в последних версиях.
Но старые, если были, подхватываются и переносятся в search.json. И я настаиваю, что хранятся они именно в нем, а search.json.mozlz4 - кэш 1203167 – Store user-installed search plugins in a JSON file and stop loading [profile]/searchplugins/*.xml
Добавлено 02-05-2016 18:51:54
Черт, наоборот. Невнимательно читал. search.json - кэш, а хранятся в search.json.mozlz4.
Отредактировано turbot (02-05-2016 18:52:08)
Отсутствует
В search.json они теперь ставятся. Если какой-то из новых плагинов в search.json или из старых, в папке searchplugins, не добавился/обновился после редактирования, то удалите, при закрытом браузере, файл search.json.mozlz4 (это что-то вроде кэша поисковых плагинов).
Спасибо за ответ, и можно поподробнее о технологии, а то в этом search.json одна бесконечная "макаронина" и что там куда добавлять не совсем понятно, а search.json.mozlz4 — вообще "китайская грамота" с непонятными символами.
Отсутствует
turbot
Да, но если удалить search.json.mozlz4 то поисковики вряд ли восстановятся из папки searchplugins. Скорее всего, нужно будет откатить до 44-й и опять обновить.
Я не настаиваю но в моем новом профиле файла search.json нет.
Отсутствует
Mozillafan
Если вручную, то я попрежнему создаю xml-ки в папке searchplugins. Они подхватываются и добавляются, как я говорил. Отредактированные в нем - также подхватываются с изменениями. А вот отредактировать установленные через плюсик в поисковой строке, либо аддонами - сам пока не знаю. search.json - обычный файл json - отредактировать его не проблема, но, раз это только кэш, бессмысленно. Редактировать надо search.json.mozlz4. Сейчас погуглю, что за зверь mozlz4.
Добавлено 02-05-2016 19:09:43
oleg.sgh
Да-да, я там поправился:
search.json - кэш, а хранятся в search.json.mozlz4.
Был не прав. А вот почему у вас кэш не создается - не знаю. Может, только при наличии поисковиков в searchplugins создается? И да, вы правы, если удалить search.json.mozlz4 - то удалятся поисковики. Но только те, что уже в него добавлены были. Из searchplugins - заново подхватятся. Проверено.
Отредактировано turbot (02-05-2016 19:11:07)
Отсутствует
turbot
Может, только при наличии поисковиков в searchplugins создается?
Может. В новых профилях новых версий этой папки вообще нет и вряд ли стоит сейчас делать на этой папке акцент. Перенос своих поисковиков, из профиля в профиль, производится переносом файла search.json.mozlz4. Проверено...методом тыка )
Моя эпопея с поисками
Отредактировано oleg.sgh (02-05-2016 19:26:51)
Отсутствует
Mozillafan
Search Engine Creator
Спасибо, но, судя по картинке, с помощью него можно сделать плагин только для GET–запросов, да и я как–то привык видеть, что я в свою мозиллу "сую". Некоторые сайты добавляют вместе с плагинами посторонний код, который как–бы ничему и не вредит, но и на поиск никак не влияет, а искать его потом и удалять вручную у меня большого желания нет (тем более, что где его искать, я пока до конца не разобрался).
Отсутствует
Что-то я запутался вот тут говорится, что search.json.mozlz4 - кэш:
It saves the cache file to search.json.mozlz4
Файл, судя по всему LZ4 алгоритмом пожатый json, но что-то у меня он не распаковывается. Видимо, какая-то их собственная имплементация:
This file format is in fact just plain LZ4 data with a custom header (magic number [8 bytes] and uncompressed file size [4 bytes, little endian])
Нарыл только скрипт для питона. Оттуда и цитата.
Добавлено 02-05-2016 19:28:01
Mozillafan
Я ж говорю - создавайте по старинке, в xml. Они подхватываются и импортируются то ли в search.json.mozlz4, то ли в search.json. Пока, покрайней мере
Отредактировано turbot (02-05-2016 19:38:37)
Отсутствует
Да в том то и дело, что ничего уже ниоткуда не подхватывается и никуда не импортируется, иначе зачем бы я открывал эту тему.
Отсутствует
Mozillafan
У меня даже на ночнушке 49-ой подхватывает. Может битые файлы search.json.mozlz4, search.json и search-metadata.json. Попробуйте их удалить (бекапы делать не забываем) при закрытом браузере и запустить. Все должно подхватить.
Отсутствует
Спасибо, помогло, но лишь частично. После удаления search.json, search.json.mozlz4 и search-metadata.json действительно подхватываются плагины из папки searchplugins, мало того, появляются даже те плагины, которые стояли в браузере по умолчанию, но впоследствии были удалены вручную, причём файл search.json.mozlz4 автоматически восстанавливается, остальные два — нет. Но, при повторной попытке добавить xml в searchplugins — та же история, из–за которой собственно и возникла эта тема, т. е. чтобы добавить свой поисковый плагин, надо предварительно удалить файл search.json.mozlz4, иначе никак. В общем, крайне неудобно, каждый раз приходится чистить браузер от ненужных поисковиков. Откатываюсь к 43–й версии, там всё просто, понятно и удобно.
Отсутствует
Mozillafan
Хм, сейчас проверил - вы правы. У меня не так давно, где-то на 47-ой ночнушке еще обновлялись при редактировании/добавлялись. Что-то поменяли.
Значит, надо искать декомпрессор/компрессор для mozlz4. Питон что-то ставить неохота, а больше ничего не нагуглил...
А может кто аддон под редактирование плагинов напишет, дело-то востребованное.
Отсутствует
1. Set devtools.chrome.enabled to true in about:config
1. Open the browser console. (Tools -> Web Developer -> Browser Console)
2. Run Services.search.addEngine("file:///Users/.../opensearch.xml", null, null, false);(For the file URL, you can copy what appeared in the URL bar after you used the "File -> Open File" menu item)
Отредактировано hajikodenuro (03-05-2016 18:18:57)
Отсутствует
hajikodenuro
Ага, спасибо.
Вот еще нашел как распаковать, код для Cusstom Buttons, во вкладку код:
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); fp.init(window, "Open File", Components.interfaces.nsIFilePicker.modeOpen); fp.appendFilter("Mozilla's 'mozLz4' format", "*.jsonlz4; *.mozlz4"); if (fp.show() == Components.interfaces.nsIFilePicker.returnOK) { var file = fp.file; if (file.exists() && file.isFile() && file.isReadable()) { var oldFile = fp.file.path; var newFile = oldFile.replace( ".mozlz4", ".json" || ".jsonlz4", ".json" ); Components.utils.import("resource://gre/modules/Task.jsm"); Components.utils.import("resource://gre/modules/osfile.jsm"); function decompress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = yield OS.File.read(oFilePath,{ compression: "lz4" }); yield OS.File.writeAtomic(nFilePath, jsonString); }) } decompress(oldFile,newFile); } }
- после выбора файла, распакованный .json сохраняется в ту же папку. Осталось только прикрутить обратную запаковку. Ковыряю пока.
Отредактировано turbot (03-05-2016 18:59:29)
Отсутствует
Сделал. Во вкладку "код". По нажатию, в окне проводника выбираете файл с расширением jsonlz4/mozlz4/json, и запакованный/распакованный файл пишется в ту же директорию. Существующий файл с таким же именем и расширением будет перезаписан без подтверждения.
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); fp.init(window, "Open File", Components.interfaces.nsIFilePicker.modeOpen); fp.appendFilter("Mozilla's Lz4 and json files format", "*.jsonlz4; *.mozlz4; *.json"); if (fp.show() == Components.interfaces.nsIFilePicker.returnOK) { var file = fp.file; if (file.exists() && file.isFile() && file.isReadable()) { Components.utils.import("resource://gre/modules/Task.jsm"); Components.utils.import("resource://gre/modules/osfile.jsm"); var oldFile = fp.file.path; if (oldFile.endsWith(".json")) { var newFile = oldFile.replace(/(\.json)$/, ".mozlz4"); function compress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = yield OS.File.read(oFilePath); yield OS.File.writeAtomic(nFilePath, jsonString,{ compression: "lz4" }); }) } compress(oldFile,newFile); } else { var newFile = oldFile.replace( ".mozlz4", ".json" || ".jsonlz4", ".json" ); function decompress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = yield OS.File.read(oFilePath,{ compression: "lz4" }); yield OS.File.writeAtomic(nFilePath, jsonString); }) } decompress(oldFile,newFile); } } };
Добавлено 03-05-2016 19:33:42
Еще бы распакованный json файл форматировать в удобочитаемый вид, как это делает в скратчпаде кнопка "prety print" и обратно... Но не потяну.
Мож, Dumby сюда заглянет?
Отредактировано turbot (03-05-2016 20:06:22)
Отсутствует
Еще бы распакованный json файл форматировать в удобочитаемый вид, как это делает в скратчпаде кнопка "prety print" делает и обратно... Но не потяну.
Код форматирования JSON можно позаимствовать из JSONovich
Отсутствует
turbot
Удалить и добавить снова с нужным названием.
Никак не могу понять необходимости редактировать поиск именно редакцией файла в профиле.
Или под редактированием подразумевается еще что то?
Отсутствует
Удалить и добавить снова с нужным названием.
При чем тут название? Поменять параметры запроса можно только редактированием.
Отредактировано turbot (03-05-2016 20:39:09)
Отсутствует
Много кода.
Насколько я понял при беглом просмотре, собственно форматирование там - 8-килобайтный json2html.js, а всё остальное - разборки с серверами, откуда данные берутся, и настройки.
В вашем же случае превращать надо даже не в HTML, а в простой текст, так что: JSON.parse() и проход (рекурсивный) по получившемуся массиву с дописыванием в начало очередной посещённой строки нужного количества пробелов.
Отредактировано yup (03-05-2016 21:06:47)
Отсутствует