>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Поддержка пользователей http://forum.mozilla-russia.org/viewforum.php?id=26 >Невозможно добавить свой поисковый плагин. http://forum.mozilla-russia.org/viewtopic.php?id=69848 |
Mozillafan > 02-05-2016 17:15:25 |
Уважаемые форумчане, кто сталкивался с такой проблемой: |
turbot > 02-05-2016 17:47:34 |
В search.json они теперь ставятся. Если какой-то из новых плагинов в search.json или из старых, в папке searchplugins, не добавился/обновился после редактирования, то удалите, при закрытом браузере, файл search.json.mozlz4 (это что-то вроде кэша поисковых плагинов). |
oleg.sgh > 02-05-2016 18:24:56 |
turbot Mozillafan |
turbot > 02-05-2016 18:47:48 |
oleg.sgh пишет
Но старые, если были, подхватываются и переносятся в 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 |
Jerome > 02-05-2016 18:55:34 |
Mozillafan |
Mozillafan > 02-05-2016 18:55:58 |
turbot пишет
Спасибо за ответ, и можно поподробнее о технологии, а то в этом search.json одна бесконечная "макаронина" и что там куда добавлять не совсем понятно, а search.json.mozlz4 — вообще "китайская грамота" с непонятными символами. |
oleg.sgh > 02-05-2016 18:56:36 |
turbot скрытый текст ![]() |
turbot > 02-05-2016 19:05:11 |
Mozillafan 02-05-2016 19:09:43
Был не прав. А вот почему у вас кэш не создается - не знаю. Может, только при наличии поисковиков в searchplugins создается? И да, вы правы, если удалить search.json.mozlz4 - то удалятся поисковики. Но только те, что уже в него добавлены были. Из searchplugins - заново подхватятся. Проверено. |
oleg.sgh > 02-05-2016 19:21:04 |
turbot
Может. В новых профилях новых версий этой папки вообще нет и вряд ли стоит сейчас делать на этой папке акцент. Перенос своих поисковиков, из профиля в профиль, производится переносом файла search.json.mozlz4. Проверено...методом тыка ) |
Mozillafan > 02-05-2016 19:22:50 |
Jerome пишет
Спасибо, но, судя по картинке, с помощью него можно сделать плагин только для GET–запросов, да и я как–то привык видеть, что я в свою мозиллу "сую". Некоторые сайты добавляют вместе с плагинами посторонний код, который как–бы ничему и не вредит, но и на поиск никак не влияет, а искать его потом и удалять вручную у меня большого желания нет (тем более, что где его искать, я пока до конца не разобрался). |
turbot > 02-05-2016 19:25:30 |
Что-то я запутался вот тут говорится, что search.json.mozlz4 - кэш:
Файл, судя по всему LZ4 алгоритмом пожатый json, но что-то у меня он не распаковывается. Видимо, какая-то их собственная имплементация:
Нарыл только скрипт для питона. Оттуда и цитата. 02-05-2016 19:28:01 |
Mozillafan > 02-05-2016 19:44:58 |
Да в том то и дело, что ничего уже ниоткуда не подхватывается и никуда не импортируется, иначе зачем бы я открывал эту тему. |
turbot > 02-05-2016 20:12:57 |
Mozillafan |
Mozillafan > 03-05-2016 17:00:55 |
Спасибо, помогло, но лишь частично. После удаления search.json, search.json.mozlz4 и search-metadata.json действительно подхватываются плагины из папки searchplugins, мало того, появляются даже те плагины, которые стояли в браузере по умолчанию, но впоследствии были удалены вручную, причём файл search.json.mozlz4 автоматически восстанавливается, остальные два — нет. Но, при повторной попытке добавить xml в searchplugins — та же история, из–за которой собственно и возникла эта тема, т. е. чтобы добавить свой поисковый плагин, надо предварительно удалить файл search.json.mozlz4, иначе никак. В общем, крайне неудобно, каждый раз приходится чистить браузер от ненужных поисковиков. Откатываюсь к 43–й версии, там всё просто, понятно и удобно. |
turbot > 03-05-2016 17:20:33 |
Mozillafan |
hajikodenuro > 03-05-2016 18:12:46 |
|
turbot > 03-05-2016 18:25:54 |
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 19:30:03 |
Сделал. Во вкладку "код". По нажатию, в окне проводника выбираете файл с расширением 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 Мож, Dumby сюда заглянет? |
yup > 03-05-2016 19:52:46 |
turbot пишет
Код форматирования JSON можно позаимствовать из JSONovich |
turbot > 03-05-2016 20:02:49 |
Много кода. Да еще addon sdk... Я там до второго пришествия ковыряться буду, с моими-то познаниями. Уж проще из devtools прикрутить. Но я и это не осилю. |
voqabuhe > 03-05-2016 20:17:38 |
А чем всех не устраивает Add to Search Bar? |
turbot > 03-05-2016 20:28:56 |
voqabuhe |
oleg.sgh > 03-05-2016 20:34:11 |
turbot |
turbot > 03-05-2016 20:35:46 |
oleg.sgh пишет
При чем тут название? Поменять параметры запроса можно только редактированием. |
yup > 03-05-2016 21:06:16 |
turbot пишет
Насколько я понял при беглом просмотре, собственно форматирование там - 8-килобайтный json2html.js, а всё остальное - разборки с серверами, откуда данные берутся, и настройки. |
turbot > 03-05-2016 21:20:13 |
yup скрытый текст Но вы неверно оцениваете мои познания. yup пишет
- мне мало о чем говорит. |
yup > 03-05-2016 21:32:45 |
turbot пишет
Ладно, сейчас оторвусь от той хрени, которую ваяю, и сделаю перевод из строки JSON в форматированный текст. Но в свой код это потом сами вставите. |
turbot > 03-05-2016 21:57:16 |
yup |
yup > 03-05-2016 22:12:30 |
После небольшого изучения матчасти всё оказалось примитивно просто: даст на выходе строку с отформатированным текстом. P.S. Вот только приведённые вами коды для кнопки (что первый, что второй) у меня ничего не сохраняют - ни в Firefox, ни в Seamonkey. (Но и в консоли никакой ругани не появляется.) |
turbot > 03-05-2016 22:29:07 |
yup пишет
Странно. Проверил еще на 38 - работает.
Ага, спасибо. Попробую присобачить. |
yup > 03-05-2016 22:35:30 |
turbot пишет
У меня Seamonkey 2.40 и Firefox 45.0.2, Custom Buttons 0.0.5.8.9. |
turbot > 03-05-2016 22:43:40 |
yup Не туда смотрю. 03-05-2016 22:55:40 Выделить код Код: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") || oldFile.replace(".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); } } }; На |
yup > 03-05-2016 23:05:58 |
Я с CB и созданием своих дополнений дела никогда не имел. Как там вообще отлаживаться? Как хотя бы в консоль что-то вывести? У меня из кода кнопки console.log() ничего никуда не пишет. |
turbot > 03-05-2016 23:20:45 |
yup |
yup > 03-05-2016 23:35:00 |
А у меня это не работает. Результат: распакованный файл на диске создаётся, а в консоли тишина. И JSON в кнопке почему-то не работает. |
turbot > 03-05-2016 23:56:43 |
yup пишет
yup пишет
А вот тут точно ничего не могу сказать. |
yup > 04-05-2016 00:11:05 |
Понял. Я смотрел консоль отладчика (и встроенного, и Firebug). Был уверен, что в окошко "Консоль браузера" то же самое выводится. Сейчас на часик примерно отвлекусь, а потом попробую разобраться, почему JSON хулиганит. Мысль некоторая есть. |
yup > 04-05-2016 01:34:18 |
Меня обмануло название переменной (jsonString). Оказалось, что OS.File.read() возвращает не строку, а массив байтов, который ещё нужно превратить в строку, прежде чем скармливать JSON.parse(). Выделить код Код: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") || oldFile.replace(".jsonlz4", ".json")); function decompress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = new TextDecoder("utf-8").decode(yield OS.File.read(oFilePath,{ compression: "lz4" })); yield OS.File.writeAtomic(nFilePath, JSON.stringify(JSON.parse(jsonString), null, ' ')); }) } decompress(oldFile,newFile); } } }; |
turbot > 04-05-2016 01:49:42 |
yup Я смотрю, обратно в строку нет необходимости переводить? И так пережевывает. Правда, search.json.mozlz4 на пару КБ в размере вырастает. |
yup > 04-05-2016 01:57:00 |
turbot пишет
Это потому, что сжимается наш форматированный текст - со всеми добавленными туда пробелами и переносами строк. turbot пишет
Может быть. У меня search.json при перезапусках не меняется (и дата у него на два месяца более ранняя, чем у search.json.mozlz4). |
turbot > 04-05-2016 02:04:07 |
yup пишет
Ну да, я понял.
Не подумал открыть посмотреть. Так и есть. Еще раз спасибо за помощь. Гораздо удобнее и быстрее, чем в скратчпад вставлять. |
yup > 04-05-2016 02:34:33 |
Нашёл описание нововведений в функции read и writeAtomic. (Хм, два года уже им.) Выделить код Код: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") || oldFile.replace(".jsonlz4", ".json")); function decompress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = yield OS.File.read(oFilePath, {encoding: "utf-8", compression: "lz4"}); yield OS.File.writeAtomic(nFilePath, JSON.stringify(JSON.parse(jsonString), null, ' '), {encoding: "utf-8"}); }) } decompress(oldFile,newFile); } } }; |
thrower > 05-05-2016 19:45:09 |
turbot А можно ли открывать диалог Open File уже в папке профиля (прописать относительный путь к папке %ПРОФИЛЯ%) |
turbot > 05-05-2016 22:38:28 |
thrower |
yup > 06-05-2016 00:15:20 |
turbot пишет
Где-нибудь между первой строкой кода и вызовом функции fp.show() нужно добавить строку Теоретически, перед ней ещё нужно иметь но у меня почему-то и без этого работает. |
turbot > 06-05-2016 00:43:13 |
yup |
thrower > 06-05-2016 16:38:55 |
Спасибо. |
voqabuhe > 06-05-2016 17:06:38 |
Что-то у меня только окно открытия появляется, а после команды открыть - ничего не происходит. |
turbot > 06-05-2016 17:54:10 |
voqabuhe скрытый текст Выделить код Код:var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); fp.displayDirectory = FileUtils.getDir("ProfD", []); 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); LOG("Saved as: " + newFile); } else { var newFile = (oldFile.replace(".mozlz4", ".json") || oldFile.replace(".jsonlz4", ".json")); function decompress(oFilePath,nFilePath){ return Task.spawn(function* () { var jsonString = yield OS.File.read(oFilePath, {encoding: "utf-8", compression: "lz4"}); yield OS.File.writeAtomic(nFilePath, JSON.stringify(JSON.parse(jsonString), null, ' '), {encoding: "utf-8"}); }) } decompress(oldFile,newFile); LOG("Saved as: " + newFile); } } }; |
voqabuhe > 06-05-2016 18:38:25 |
turbot пишет
Да я ни в чём не сомневаюсь пока, я просто не пойму что кнопка делает? |
turbot > 06-05-2016 18:45:14 |
voqabuhe |
voqabuhe > 06-05-2016 19:24:55 |
turbot пишет
А, спасибо. Теперь сразу стало всё ясно.
Вот и хотел узнать..., ну да ладно. |
turbot > 06-05-2016 19:30:57 |
voqabuhe |
Mishania > 10-05-2016 20:30:22 |
turbot |
turbot > 10-05-2016 20:46:47 |
Mishania |
Mishania > 10-05-2016 20:50:39 |
turbot |
turbot > 10-05-2016 20:56:08 |
Mishania |
Zerdsa > 04-06-2016 14:11:03 |
Все эти манипуляции по добавлению поисковиков касаются ранних версий? Для 46-й и выше как добавлять? |
turbot > 04-06-2016 20:21:09 |
"Все эти манипуляции" как раз и вызваны изменениями в 46-ой и выше. Добавлять-то можно как и раньше - аддонами (Add to Search Bar), либо появившимся плюсиком в попапе поисковой строки, а вот отредактировать добавленное - только с помощью этих танцев с cb кнопкой. |
Kero > 28-06-2016 22:29:26 |
а как удалить те плагины что туда заботливые годзилы прописали, дефолтные. только не через ту кнопочку а конкретно ? |
nexterr > 28-06-2016 22:56:04 |
Kero пишет
в настройках firefox |
unware > 30-08-2016 13:55:27 |
мусьё, а не проще, вместо бубна гонять расширение "URL Alias"? псевдонимы для поисковых машин, псевдонимы для сайтов и др. юзая расширение, не будет лишних тегов, кодированных пикч в base64. будет 1 окно и на 1 строчку - 1 значение. |
Dorian > 14-10-2016 17:51:01 |
Описано по шагам как добавить свой поисковой движок через xml в Firefox вручную: https://github.com/myBestSoftAndPref/so … top.md#faq 14-10-2016 17:55:48 |
unware > 17-11-2016 21:36:18 |
Dorian Если вы беспокоитесь об интеграции ваших настроек в другие фаерфоксы, все созданные запросы с помощью расширения всегда можно взять в папке профиля - в prefs.js. И скормить юнцу через user.js Да, и конечно же, у такой реализации есть существенный минус. Тот факт, что это аддон. А если будет отсутствовать поддержка актуальных версий ff, подписи, расширение просто не заведется (не будем делать акцент на ночнушках, хаках, небрендированных сборках). И, как следствие, ваш способ окажется живучее. |
manuk > 08-03-2017 19:27:01 |
Del. |
takiz > 09-03-2017 12:17:37 |
Jerome пишет Не работает с кириллицей. Есть ли альтернативы? 09-03-2017 12:24:01 Dorian пишет
После удаления search.json.mozlz4 все кейворды исчезают. У меня сейчас 50+ наименований. Менять такое количество после каждого обновления — ужас. |
Mishania > 29-03-2017 19:32:33 |
Не нашли ещё способ защитить файл search.json.mozlz4 при обновлении браузера? Хоть и не часто, но приходится распаковывать, менять иконки на свои, привычные и сохранять опять. |
oleg.sgh > 04-10-2017 19:52:30 |
Отказал поиск на сайте кинопоиск. Вернее, в поисковой панели работает но не работает в дополнениях поиска Можно заставить его искать русский текст? |
nexterr > 04-10-2017 20:54:39 |
oleg.sgh пишет
дополнение не энкодит запрос? попробуйте другие |
oleg.sgh > 04-10-2017 20:58:40 |
nexterr
Пробовал другие...и подобное в хромоклоне начало вести себя так же...даже в убунту, для очистки совести. |
nexterr > 04-10-2017 21:06:13 |
--- |
oleg.sgh > 04-10-2017 21:14:08 |
nexterr |
oleg.sgh > 04-10-2017 21:58:12 |
Еще одна проблема, только наоборот. Дополнения делают поиск а из поисковой панели, открывает просто сайт. Здесь были изменения на сайте. скрытый текст Выделить код Код:{ "_name": "Filmix", "_shortName": "rjwyjrnxbm", "_loadPath": "[other]addEngineWithDetails", "description": "filmix", "__searchForm": "https://filmix.me", "_iconURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlklEQVQ4jZWT30rCUADG9yo+QRlTd6jXSArKXei2eoIu6iKKJJAo+mNJEUQRQQT1CkJgTaQtluF/kWqh0znSC1G+Lip1WWtd/C6/3+Gc832UHnA7DIFEDYG0DYHAJm1DIFE94HZQn2EYAkFdIKjOjEHfm8fbZQRvV/sD6KFZ1HuiKGXwvZPLwigaiohOp/MrlYsIqhzzIeBJm/oK6zzB6/YcWq2WJep5GNqXQCDoCqocg5ezLTSaTTSaTSgHq7j2jiA2PtTl1juMrI9Gjf9BoHEMSqeb0OsG9LqB+ykXygEPNI4x0R8eEBSPN1CuaChXNKSn6YHwn4Lc0RqenlVrTtZ/v0L6MIRCsWRJ5jD08yNqHIPH/VWkMjmkMjnEdlYghoMm4rtBPC74et/4XfAQCUJJpqAkU5AmnMiztIkC64Lq9/QXySy4Dy9DkhVIsoI8S9uqtUkgbS8hnpART8j/EHxWWeMY3G0t4kZM4EZMoMC6bI2qO6YazyDro3HrHYY06YTq99gRRKn+Odf4j7JUOcb0UFZzfgcbeczTLd38UwAAAABJRU5ErkJggg==", "_metaData": { "alias": null, "order": 3 }, "_urls": [ { "template": "https://filmix.me/", "rels": [], "resultDomain": "filmix.me", "params": [ { "name": "scf", "value": "fx" }, { "name": "story", "value": "{searchTerms}" }, { "name": "search_start", "value": "0" }, { "name": "do", "value": "search" }, { "name": "subaction", "value": "search" }, { "name": "sort_name", "value": "" }, { "name": "sort_date", "value": "" }, { "name": "sort_favorite", "value": "" } ] } ], "queryCharset": "UTF-8", "_readOnly": false } Можно заставить его искать снова? |
nexterr > 04-10-2017 22:17:17 |
oleg.sgh |
oleg.sgh > 04-10-2017 22:18:28 |
nexterr |
nexterr > 04-10-2017 22:23:08 |
oleg.sgh oleg.sgh пишет
браузера? |
oleg.sgh > 04-10-2017 22:29:46 |
nexterr |
nexterr > 04-10-2017 23:03:14 |
для кинопоиска знкодить в кодировке windows-1251: скрытый текст https://www.kinopoisk.ru/index.php?kp_query=%EE%EE%EE%EE поиск: оооо oleg.sgh пишет
не представляю как он работает, если там такая есть возможность - для поиска нужны куки с сайта, делать get запрос с нужным заголовком и телом |
oleg.sgh > 05-10-2017 06:38:00 |
nexterr
Не, не работает. |
nexterr > 05-10-2017 07:09:12 |
oleg.sgh пишет
что значит не работает? я вам пример рабочей ссылки дал |
oleg.sgh > 05-10-2017 07:18:04 |
nexterr |
Webcome > 15-10-2017 11:52:47 |
turbot пишет
Куда кинуть эту папку? Врочем, уже нашел. |
oleg.sgh > 16-12-2017 16:49:23 |
Щелкните правой кнопкой мыши на поля формы поиска, чтобы добавить собственные поисковые системы. |
Infocatcher > 16-12-2017 17:50:31 |
oleg.sgh пишет Как же все печально. add_search-1.0-an+fx-windows.xpi\bg.js Выделить код Код:// format API url ... // @todo When we can do this another way like Data URI scheme, scrap this custom api call ... var url = 'http://api.burningmoth.com/1/OpenSearchDescription.xml?json=' + encodeURIComponent( JSON.stringify( json ) ); // add search / firefox will prompt ... window.external.AddSearchProvider( url ); Без вспомогательного сайта ничего работать не будет. |
oleg.sgh > 16-12-2017 18:06:37 |
Infocatcher
|
zzzephire > 29-12-2017 01:58:25 |
Для работы с файлами mozlz4 в ОС Windows нужно установить Python. Затем к нему скачать пакет LZ4 x64, если установили x64 Python или LZ4 x86. После скачивания нужно его (пакет) установить. В консоли пишем (имя файла корректируйте) pip install lz4-0.17.0-cp36-cp36m-win_amd64.whl Теперь создайте файл, например convert.py, со следующим содержанием: (источник, код ниже слегка исправлен) скрытый текст Выделить код Код:#!/usr/bin/env python # # Decompressor/compressor for files in Mozilla's "mozLz4" format. Firefox uses this file format to # compress e. g. bookmark backups (*.jsonlz4). # # 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]). # # This Python 3 script requires the LZ4 bindings for Python, see: https://pypi.python.org/pypi/lz4 # # # Copyright (c) 2015, Tilman Blumenbach # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted # provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this list of conditions # and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright notice, this list of # conditions and the following disclaimer in the documentation and/or other materials provided # with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND # FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import lz4.block import sys from argparse import ArgumentParser class MozLz4aError(Exception): pass class InvalidHeader(MozLz4aError): def __init__(self, msg): self.msg = msg def __str__(self): return self.msg def decompress(file_obj): if file_obj.read(8) != b"mozLz40\0": raise InvalidHeader("Invalid magic number") return lz4.block.decompress(file_obj.read()) def compress(file_obj): compressed = lz4.block.compress(file_obj.read()) return b"mozLz40\0" + compressed if __name__ == "__main__": argparser = ArgumentParser(description="MozLz4a compression/decompression utility") argparser.add_argument( "-d", "--decompress", "--uncompress", action="store_true", help="Decompress the input file instead of compressing it." ) argparser.add_argument( "in_file", help="Path to input file." ) argparser.add_argument( "out_file", help="Path to output file." ) parsed_args = argparser.parse_args() try: in_file = open(parsed_args.in_file, "rb") except IOError as e: print("Could not open input file `%s' for reading: %s" % (parsed_args.in_file, e), file=sys.stderr) sys.exit(2) try: out_file = open(parsed_args.out_file, "wb") except IOError as e: print("Could not open output file `%s' for writing: %s" % (parsed_args.out_file, e), file=sys.stderr) sys.exit(3) try: if parsed_args.decompress: data = decompress(in_file) else: data = compress(in_file) except Exception as e: print("Could not compress/decompress file `%s': %s" % (parsed_args.in_file, e), file=sys.stderr) sys.exit(4) try: out_file.write(data) except IOError as e: print("Could not write to output file `%s': %s" % (parsed_args.out_file, e), file=sys.stderr) sys.exit(5) finally: out_file.close() Ну, и наконец для распаковки, например файла search.json.mozlz4 выполните в консоли: python convert.py -d search.json.mozlz4 search.json Для упаковки обратно в формат mozlz4: Для удобного редактирования json можно воспользоваться онлайн редактором Редактировал поисковые плагины так: сначала добавлял нужные мне поисковики непосредственно в браузере, а затем редактировал их под свои нужды. Также есть база поисковых плагинов Mycroft Project, которые там же можно сразу отредактировать. |
Ultima2m > 29-12-2017 08:03:28 |
Скопировать файл search.json.mozlz4 из старого ФФ |
js90 > 09-01-2018 08:33:23 |
Юзаю "добавить краткое имя для данного поиска". Ищу в адресной строке, поисковик выбираю вводом префикса. В search.json.mozlz4 у меня только два поисковика, которые и так были там изкоробки: google и duckduckgo. В конфиге выключил отображение панели с кнопками поисковиков - только мешались. Ну и поисковые предложения тоже отключил. Бессмысленная хрень. |
oleg.sgh > 09-01-2018 09:19:37 |
js90
По русски - али и анд не проще, без смены раскладки? |
js90 > 11-01-2018 06:45:58 |
oleg.sgh пишет
Но... поисковой запрос на али и аддонах по английски всегда. Ты предлагаешь сделать префикс на русском, чтобы дважды сменить раскладку, если изначально она английская? А ещё я сделал |
oleg.sgh > 11-01-2018 08:23:46 |
js90
Не подумал, ступил-с |
js90 > 11-01-2018 19:10:50 |
oleg.sgh |
oleg.sgh > 11-01-2018 19:54:10 |
js90 |
js90 > 12-01-2018 00:54:12 |
oleg.sgh |
wayo > 17-02-2018 12:27:28 |
Способ ручного редактирования файла search.json.mozlz4 со способом добавления поисковых плагинов в него вручную смотрите тут |
Vic.nox > 26-07-2018 20:22:11 |
zzzephire пишет
Спасибо тебе добрый молодец, за этот пост!!! |
oleg.sgh > 04-09-2018 09:03:01 |
Acid Crash > 04-09-2018 12:44:01 |
oleg.sgh пишет oleg.sgh |
oleg.sgh > 04-09-2018 12:52:29 |
Acid Crash |
zzzephire > 04-09-2018 23:11:59 |
oleg.sgh |
oleg.sgh > 21-10-2019 20:59:44 |
Есть поисковый адрес, который правильно работает с цифрами и латиницей. Кириллицей выдает кракозябры и не находит то, что заказано. Можно сюда вставить кодировку в WINDOWS-1251? |
oleg.sgh > 21-07-2020 19:29:04 |
На сайте Филмикс перестала работать поисковая ссылка http://filmix.co/search/%s |
zzzephire > 21-07-2020 20:07:14 |
oleg.sgh |
oleg.sgh > 21-07-2020 20:10:50 |
zzzephire |