Backup Search Engines



  • A companion mod to Import and Export Themes. Makes a backup of all your search engines, which is something that still hasn't been implemented to native Vivaldi Sync. Just recently I reset my profile and was surprised that I had to input all my custom searches again. Quite annoying, so here we go…

    The mod adds a backup button and a restore input field to vivaldi://settings/search.


    0_1552486216104_Screenshot 2019-03-13 15.09.58.png


    • Backup: Click the Backup button. This will copy the data to your clipboard. From there paste it to your notes panel, or anywhere really, but Vivaldi Notes have native Sync, so that's a plus.
    • Restore: Copy the backup data and paste or drag&drop it into the Restore Backup input field. This will restore your backup, but you will lose all search engines you have added since your last backup.

    Copy and paste following code into a custom.js file. See pinned topics on this forum board for instructions.

    /* Backup Search Engines */
    
    function _msgSearch(pnt) {
        clearTimeout(_msgTimeout);
        if (pnt === 'backup') {
            _infoSearch.innerText = 'Search engines backup copied to clipboard.';
        }
        else if (pnt === 'restore') {
            _infoSearch.innerText = 'Search engines restored.';
        }
        else {
            _infoSearch.innerText = 'Search engines code error.'
        }
        _msgTimeout = setTimeout(function() {
            _infoSearch.innerText = '';
        }, 5000);
    };
    
    function _restoreSearch() {
        event.preventDefault();
        event.stopPropagation();
        if (_eventSearch === 'paste') {
            var clipboardData = event.clipboardData || window.clipboardData;
            var engineCode = clipboardData.getData('text');
        }
        else {
            var engineCode = event.dataTransfer.getData('text');
        }
        try {
            var engines = JSON.parse(engineCode);
        }
        catch(err) {
            _msgSearch('error');
            return;
        }
        if ('engines' in engines && 'default' in engines && 'defaultPrivate' in engines) {
            chrome.storage.local.set({'SEARCH_ENGINE_COLLECTION': engines}, function() {
                _msgSearch('restore');
            });
        }
        else {
            _msgSearch('error');
        }
    };
    
    function _backupSearch() {
        chrome.storage.local.get({'SEARCH_ENGINE_COLLECTION': ''}, function(back) {
            const engines = back.SEARCH_ENGINE_COLLECTION;
            const engineCode = JSON.stringify(engines);
            navigator.clipboard.writeText(engineCode);
            _msgSearch('backup');
        });
    };
    
    function searchEngines() {
        const search = document.querySelector('.setting-search-engine');
        const check = document.getElementById('backupSearch');
        if (search && !check) {
            const styleCheck = document.getElementById('searchEngines');
            if (!styleCheck) {
                const style = document.createElement('style');
                style.type = 'text/css';
                style.id = 'searchEngines';
                style.innerHTML = '#backupSearch, #restoreSearch {margin-left: 6px;}#restoreSearch{width: 130px;margin-top: 6px;}#restoreSearch::-webkit-input-placeholder {opacity: 1;color: var(--colorHighlightBg);text-align: center;}';
                document.getElementsByTagName('head')[0].appendChild(style);
            }
            const place = document.querySelector('.setting-section .setting-group.unlimited .setting-single');
            const backupBtn = document.createElement('input');
            backupBtn.setAttribute('type', 'button');
            backupBtn.setAttribute('value', 'Backup');
            backupBtn.id = 'backupSearch';
            place.insertBefore(backupBtn, place.lastChild);
            const restoreInput = document.createElement('input');
            restoreInput.setAttribute('type', 'text');
            restoreInput.setAttribute('placeholder', 'Restore Backup');
            restoreInput.id = 'restoreSearch';
            place.insertBefore(restoreInput, place.lastChild);
            _infoSearch = document.createElement('span');
            _infoSearch.id = 'msgConfirm';
            place.insertBefore(_infoSearch, place.lastChild);
            document.getElementById('backupSearch').addEventListener('click', _backupSearch);
            const restoreSearch = document.getElementById('restoreSearch');
            restoreSearch.addEventListener('paste', function() {
                _eventSearch = 'paste';
                _restoreSearch(event);
            });
            restoreSearch.addEventListener('drop', function() {
                _eventSearch = 'drop';
                _restoreSearch(event);
            });
            _msgTimeout = {};
        }
    };
    
    setTimeout(function wait() {
        const browser = document.getElementById('browser');
        if (browser) {
            document.body.addEventListener('click', function() {
                setTimeout(searchEngines, 50);
            });
        }
        else {
            setTimeout(wait, 300);
        }
    }, 300);
    
    


  • While testing this mod I noticed problems with Vivaldi's native/existing option to restore defaults. If you restore defaults and tick the option to keep custom searches, default searches you have edited will be doubled now (default + edited custom). When selected they will share the same name and the same keyword and in case one of them is the default for private search, this will be doubled too. It's quite a mess really, is this a known problem or will someone have to report this?



  • Ok, not bad, your idea. But I have something simpler.
    I use 'ContextSearch web-ext' from the Google Web Store:

    https://chrome.google.com/webstore/detail/contextsearch-web-ext/ddippghibegbgpjcaaijbacfhjjeafjh

    With this extension, you can easily sync your search engine with all browsers and make a local backup on your hard drive.

    0_1552487160982_2019-03-13 15_20_49-Window.jpg


  • Moderator

    I always find it quite odd that vivaldi decided to re-implement their own storage of search engines.

    If they just extended chrome://settings/searchEngines then not only would that be (I imagine) less duplication of work, but it would by default get synced through the normal chrome sync interface.



  • Fantastic! To test after backup (copied on notes), I've deleted all but DDG, and then restored everything from the backup perfectly, even setting Google as default for normal searches and DDG for private searches.
    Remember to push Save button too after restoring, I've noticed that the search field list of engines isn't refreshed if you don't.



  • @luetage said in Backup Search Engines:

    A companion mod to Import and Export Themes. Makes a backup of all your search engines, which is something that still hasn't been implemented to native Vivaldi Sync. Just recently I reset my profile and was surprised that I had to input all my custom searches again. Quite annoying, so here we go…

    The mod adds a backup button and a restore input field to vivaldi://settings/search.


    0_1552486216104_Screenshot 2019-03-13 15.09.58.png


    • Backup: Click the Backup button. This will copy the data to your clipboard. From there paste it to your notes panel, or anywhere really, but Vivaldi Notes have native Sync, so that's a plus.
    • Restore: Copy the backup data and paste or drag&drop it into the Restore Backup input field. This will restore your backup, but you will lose all search engines you have added since your last backup.

    Copy and paste following code into a custom.js file. See pinned topics on this forum board for instructions.

    /* Backup Search Engines */
    
    function _msgSearch(pnt) {
        clearTimeout(_msgTimeout);
        if (pnt === 'backup') {
            _infoSearch.innerText = 'Search engines backup copied to clipboard.';
        }
        else if (pnt === 'restore') {
            _infoSearch.innerText = 'Search engines restored.';
        }
        else {
            _infoSearch.innerText = 'Search engines code error.'
        }
        _msgTimeout = setTimeout(function() {
            _infoSearch.innerText = '';
        }, 50000);
    };
    
    
    function _restoreSearch() {
        event.preventDefault();
        event.stopPropagation();
        if (_eventSearch === 'paste') {
            var clipboardData = event.clipboardData || window.clipboardData;
            var engineCode = clipboardData.getData('text');
        }
        else {
            var engineCode = event.dataTransfer.getData('text');
        }
        try {
            engines = JSON.parse(engineCode);
        }
        catch(err) {
            _msgSearch('error');
            return;
        }
        if (Object.keys(engines)[0] === 'context') {
            chrome.storage.local.set({'SEARCH_ENGINE_COLLECTION': engines}, function() {
                _msgSearch('restore');
            });
        }
        else {
            _msgSearch('error');
        }
    };
    
    function _backupSearch() {
        chrome.storage.local.get({'SEARCH_ENGINE_COLLECTION': ''}, function(back) {
            const engines = back.SEARCH_ENGINE_COLLECTION;
            const engineCode = JSON.stringify(engines);
            navigator.clipboard.writeText(engineCode);
            _msgSearch('backup');
        });
    };
    
    function searchEngines() {
        const search = document.querySelector('.setting-search-engine');
        const check = document.getElementById('backupSearch');
        if (search && !check) {
            const place = document.querySelector('.setting-section .setting-group.unlimited .setting-single');
            const style = document.createElement('style');
            style.type = 'text/css';
            style.innerHTML = '#backupSearch, #restoreSearch {margin-left: var(--padding);}#restoreSearch{width: 130px;margin-top: var(--padding);}#restoreSearch::-webkit-input-placeholder {opacity: 1;color: var(--colorHighlightBg);text-align: center;}';
            document.getElementsByTagName('head')[0].appendChild(style);
            const backupBtn = document.createElement('input');
            backupBtn.setAttribute('type', 'button');
            backupBtn.setAttribute('value', 'Backup');
            backupBtn.id = 'backupSearch';
            place.insertBefore(backupBtn, place.lastChild);
            const restoreInput = document.createElement('input');
            restoreInput.setAttribute('type', 'text');
            restoreInput.setAttribute('placeholder', 'Restore Backup');
            restoreInput.id = 'restoreSearch';
            place.insertBefore(restoreInput, place.lastChild);
            _infoSearch = document.createElement('span');
            _infoSearch.id = 'msgConfirm';
            place.insertBefore(_infoSearch, place.lastChild);
            document.getElementById('backupSearch').addEventListener('click', _backupSearch);
            const restoreSearch = document.getElementById('restoreSearch');
            restoreSearch.addEventListener('paste', function() {
                _eventSearch = 'paste';
                _restoreSearch(event);
            });
            restoreSearch.addEventListener('drop', function() {
                _eventSearch = 'drop';
                _restoreSearch(event);
            });
            _msgTimeout = {};
        }
    };
    
    // Loop waiting for the browser to load the UI. You can call all functions from just one instance.
    
    setTimeout(function wait() {
        const browser = document.getElementById('browser');
        if (browser) {
            document.body.addEventListener('click', function() {
                setTimeout(searchEngines, 50);
            });
        }
        else {
            setTimeout(wait, 300);
        }
    }, 300);
    
    

    Funktioniert bei mir nicht.



  • @LonM Yeah, for example the exception list for cookies is synced – that's classic chromium storage. But on the other hand I don't see the issue to just sync all custom engines while retaining the defaults per installation. Someone just has to find the time to do it.



  • @iAN-CooG Good point, I didn't notice. Seems like the address bar switches automatically, but the list and the active search engine in the search field stays on the old values. I just updated the mod to trigger the click on the save button automatically after a backup has been restored (don't want anyone to get a cramp in their fingers :P). There was also an issue that messages were displayed for too long, fixed that too.



  • @stardepp We are not on the German forum board, please write English. And it's hard to tell what goes wrong for you. Have you created a file called custom.js and did you edit browser.html to refer to this file? Does any other modification work? Did you restart Vivaldi after you made the change to the application, or did you at least open a new window?



  • @luetage ok, sorry.



  • @luetage Amazing! Thanks to you, it will be more hasslefree to refresh a profile.


  • Moderator

    I tested it and it works well, but i had no doubt.

    @luetage you're great, you did two very useful js.



  • @luetage said in Backup Search Engines:

    ... I just updated the mod to trigger the click on the save button automatically after a backup has been restored (don't want anyone to get a cramp in their fingers :P). There was also an issue that messages were displayed for too long, fixed that too.

    Thank you so much, very helpfull mod indeed!

    Works ok with Vivaldi 2.4.1488.35 on both Win10-1809_x64, Lmint19.1_x64 and Lmint19.1_i686 (tested also with snapshot 2.5.1497.4 on Lmint19.1_x64). 👍



  • I can't seem to get the restore backup to work. Every time I try to paste/drag&drop the data into the input field, I receive the message "Search engines code error".

    I tried it both inside the stable and the snapshot versions.



  • @AltCode This means your backup is faulty. The input field throws an error when the json file is invalid. I just tested the code resetting search engines to default and restoring from backup on snapshot and it works.

    Well, give me your search engines code and I'll take a look at it, maybe it's salvageable.



  • @luetage

    Code

    {"customOrder":false,"default":"cj3trn97f00003o5l5z6o68tl","defaultPrivate":"cj3trn97g00033o5lj3x9hg2j","engines":[{"custom":false,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABR1BMVEUAgnIAgnEAfWwAf28AgXEIhnZAoZUVjH0Ae2oAfGsAgHAMiXnp9PPo9PKbzcdQp5wOiHgLiHji8O7////I5OAIhnXh8O7n8/EMiHgAe2sAfm4JhndHpJkmlYdltKr3+/q93tpls6kYjH0HhnYIhXbo9PPr9fSz2dRWq6AQiHkAeWiSycPj8e+l0sxJpJkKhXYwmo3J5OEMh3cCgXCt1tHt9vYQiXoAgXACgXFKpZq229bx+Pfn8/IPiXoAdGMdjX/D4t4NhnZ1u7Ls9vXs9fUQintaraLX6+nU6ucLhXbe7+xCopa02tX6/fyYzMUdjn8AgG/5/Py43Nc7nZAAemkAf27i8O/W6+hdrqMAfm0AfGwKh3ft9vV2u7INh3cAemoBgHBFopbB4d3+//8jkYMDgnJgr6XZ7eq939pAn5MSiXp8v7Zjs6nfb/V1AAAAAWJLR0QTDLtclgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAP9JREFUOMtjYKAWYGRixivPwsrGzsHJhVsBFzcPLx+/AAtuBYJCwsLCIqIsuBWIARWIS3DhVyAmSAcFklKMeBVIy8hKcTDjUcAiJ6+gqMQkyYVLgbKKqrCwmrqGJid6qMLcoKUtDAI6unr6LFgVcBgIQ4GhERc2BczGJlAFpmZYFXCZW1haWYMU2NhiV8DAbGfvgEcBM4ejkzPYChdXbAoYmNzcoW7w8GTBVODl7QOV9vXzD8DizUCYH4OCQ0LRAypMGA7CIyKjMII62gYmHRMbF48l5SUkJoGlk/1SQrAnCs7UtHRh4YxMSSlcaYYlJCs7x4KTAQ8I4OBkYRgAAADZQSnp408zDAAAAABJRU5ErkJggg==","historyId":1,"id":"cj3trn97f00003o5l5z6o68tl","keyword":"b","name":"Bing","post":false,"removed":false,"suggestUrl":"https://www.bing.com/osjson.aspx?query=%s","url":"https://www.bing.com/search?FORM=INCOH2&PC=IFJ1&PTAG=ICO-c9d0fc87&q=%s"},{"custom":true,"faviconUrl":"data:image/png;base64,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","historyId":2,"id":"cj3trn97g00013o5ljema6csh","keyword":"y","name":"Yahoo!","post":false,"removed":false,"suggestUrl":"","url":"https://us.search.yahoo.com/yhs/search?hspart=iry&hsimp=yhs-fullyhosted_009&type=dpp_vvldnu_00_00&param1=1&param2=pa%3Ddowncoll&p=%s"},{"custom":false,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAEbAAABGwGN907lAAABEElEQVRYCe2XPU/CQByHn146iAsSNwyJK5OTCxOLO18C5ibyMRxwcGEjfgFmJr8CSyMYwgIFFi2FJm5nrjmCMbGJkust90z3ktzzu5c0/XtSSjpdLoAe0ALKmGULDIGg/0Dste+lkr8AN4bFPxkDTaF3XrQc7ewJfey2aIkC7jyPsrAoz3ABXAAXwAVwAfzGLVxW4LwEtepxonYFpTOz8ukM1A+JNKvJxze18D79ZPIW/Tofrd6J1h/5AZbRhsVyk7XD1xlJss/ayS7N+gfU+Pf+X/Afn56Pgl160mL/wbuu31l9A+474AK4AELXarbYCl0o2mKoAgS6UCwa5QzEPBzFqkoFBgVdh3IoV3MejuIvl1JVBn5AFIAAAAAASUVORK5CYII=","historyId":3,"id":"cj3trn97g00023o5ls9d8wvgb","keyword":"s","name":"Startpage.com","post":false,"removed":false,"suggestUrl":"https://www.startpage.com/cgi-bin/csuggest?query=%s&limit=10&lang=english&format=json","url":"https://www.startpage.com/rvd/search?query=%s&language=auto"},{"custom":false,"faviconUrl":"data:image/png;base64,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","historyId":4,"id":"cj3trn97g00033o5lj3x9hg2j","keyword":"d","name":"DuckDuckGo","post":false,"removed":false,"suggestUrl":"https://ac.duckduckgo.com/ac/?q=%s&type=list","url":"https://duckduckgo.com/?q=%s&t=vivaldi"},{"custom":false,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAYFBMVEX////99vP+2s/+wK3+sZr+oob/kW//elH/glz9zb/+6uT5+fn29eXq8/TU6uu43uGk19l9x85Vt8E2qrbr77zJ35h0vYJgt5NLsaXa4FnS2THW2i6qzVO/00KQxmvh5n7jXP3sAAAEA0lEQVR4AYzPxQ3EUBRD0Tym/P7LHQzz2V9L7k4AILGomrmqcCRU9xxkiLstuTI+3QBktyNKWU9ysYHP7M856zb3IVahwASAxGBRHyYoL3vyxeOlPnjYUITTPuWfS0DtJf0nnE4WCvUsH/Sk9sXHN/690pC31t6EVod6szoMLTN7QmXHK+//lhcd5IuN3e9Xd4kOZ8gi98da99stslgDGs7Vfty+lfb78/WeYr1fj/uK0YBEBQH9iAlc518ipaVdMASirSOc137Qv80fs5R1aspKIFar+6b0X/rvT2dQTk95vZ8JQtdk+W/9j7fy1hjvHe36QQIIoNumBrC3A/c3j/ekluYQSO6vl9ojwIfxnBswttw/h6WFaGtRgbkojVKKwswImNjuEicIAk58YTYu5ww5xjKl4Lyx1nyvfKOeW84pAQiYPz5xTiutgzVrWRt/A4L0JARYwPU3EKV3d8FZU9TciAih0AAMAZDe0bemUh+2AV09XGgjgft7p792+ygCFMaGCfRC4PbM+3UwfxVTOHMQLRQggpIAYZyM/YvCIAPNCsYrOzDlxQE4ZFe6wK8/QQNnIApetQlwRMHXgzivOTQDLykoqDloHYXg6ho4hxMsQAaPegLWGufrGtj9/qcBkX0GMoGoqo3RhOEHSjCF6RTp6gjYPMiWXfzB92YB+Bqn/gHgfeoiAI4AGJjBxxivqhJQ8JOAYJMYDhlAssQIxy8tzwQRqY8HqgTwISJocs75DUIuaW9NUGEFuBYAGJxtG6h0hESeY5baRQ8EYLzAROjzVM3CijqF6+S3FBDjAtcwAFfYHQeTPyOUBswcD4MMEtYhassSVkoFlZ8zHzfCsJ3mq3g1FQDgnwP8f567dZ/00UXrs5cGAQg7APq9Yqnh6XI6xFGEgNqJsGHKS9/hIY7z6mILEziiAgDJqNyD140P43Fd7FgI0PBF1iWAJ3K5iAfWsjycLh00MAWayq0GAcFkl96s4CQKRENXLjUMzDoCivYEkAEUYK+DQrHVMIoymoUDJ9nqXG2kcHlOu1JBRmgvoBECKPwxnqsitC76IaADgfL9xb1AmP6rvIxyBARhICpIG2mXKNz/sLsWnERDQ3b+p3GIH+9NMSeyNd6EsysurPqBPozTESWvL7TT+ukAZWHEAzlarub2q+1X679JMWRc8D+iXUZYHen51befASu0nHVaL4rvxwMgkoDahsq1TesqvZ91m14ALWu5cbu2O/UCrz9KkGfKMFCeoQsFUdA+u9KCl/SNQ4ZvcFRXuXgo0y76SYiJjzFy8yOwLtrjD9qSE5v72cKl98EamSglIvoru9bnnJiHzTvXCfZa3xyUl3VEQ1+NUIoStn9FTXp7JPji/guQdMgZW2jIGAAAAABJRU5ErkJggg==","historyId":5,"id":"cj3trn97g00043o5l8swtsbjo","keyword":"e","name":"Ecosia","post":false,"removed":false,"suggestUrl":"","url":"https://www.ecosia.org/search?tt=vivaldi&q=%s"},{"custom":false,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfhBAwKMAfiL115AAACxklEQVRIx6WVX2jVZRjHP7/T8c9pg2nhv2yDXWg4gqGsQGci68J/FRhq4IUohISpiQpeRoi48DJML0yCukpEiV0oIuaIqTSmUtREFCdhjTTFnTPP9Jz308X57efZ2aJ19vyu3ud9ns/zfX/P+ycKANN4mxZ2MH77gm7O8wgIhEzoClbxdYVMgDA3XKwq3WC4GOamaGHZ/5A+0pbRkmJx1ekAi6PghACkyUU11aebS0OWIhleAOAZQ2QYJEMagCcEppBnKmngCTKJPLVEQI4UNaQjTnGYQWYSUeAeb/Iph7jCS6R4Ro4NtPEZfzCNPJNZSyu7GaSOAaayk/chZPP2+KGIuNc7Fu33c1Piy54ya8FeV4jLvWzWor+6VFxjjwVDlpBVzbtWrPWaw7ZVnGlvPNrpfG8lc3t81b9US4BgUM9YJx4qudVuZ4j7VP3TBR5TS5EDtnkwjisD5HxXbPBxDNBPxDpvqvtsNZcATjrPO/EoAQT1WxGPJoE91op77LPe7xNvcIXbLA5v5nLAY5vFRQ4kGraI9ba5wacJ4Lr1/jRcvxwQ1HYx8rskuMuM+KJXE49ud/Xw+kcDbtsovmUh0bBRnG5vAvjdVzz3PN2QTZVtSxpZBXTxQzyGVuAhXwIRAF8zv/LwPlcQ1J+dJG52KO7MEueIc/xF1Uc2eby8/kgFAK/zDtDBb0TAV8gxaujnGwBOIB9UnqdyBUHtdIq4S+23yQ51vTjLG+pCj4ysP/InlgBDrhIb/NuDvmdBvWBaPOBZm73/X4CgnhbxIxf5o6Vzsk58zTfcX5k+NuCBzSJ+bDFu52kz4mzvjg+gh8V6byXdH3SluLd8A/1bF0rdX0MDm2jE2JNhI9NZH89WdmHUba8FO+wrq6b3PWF+dH2DhPaxEJViHUu+wdCe5tIYd+04PLFdStFNZ9W3eifdE35co4k+7/8AeaKDkPxRJzsAAAAASUVORK5CYII=","historyId":6,"id":"cj3trn97g00053o5lye6a3670","keyword":"w","name":"Wikipedia","post":false,"removed":false,"suggestUrl":"https://en.wikipedia.org/w/api.php?action=opensearch&search=%s","url":"https://en.wikipedia.org/wiki/Special:Search?search=%s"},{"custom":true,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFZklEQVRYR71Xe2yTVRT/3fOxtuvWlY3XeAlOFDYhQ6YiD8nCokPFF/gAjBFkIgoRECQzZiASkIWQsIiJbhAi4aExwUQjQYgjcYEMh8KCYhA3mITHGK/B2nVdv3PNLf3a7+u6tSOL96/2O6/fPed37zlXIMElpUwDMJ2Zp0opc4UQWQBcIfNbUsqzQohaIvoZwI9CiFuJuBbxlKSUI5m5GMAsInLE01dyZm4FsIeINgghznRl0ykAKaWTmdcCWEJEWiKBo3WYOQBgMxGtEkIoUB1WTABSygeY+TsiyrmbwDGAnCSiGUKIf6JlHQBIKccx809E1DdaWb90AW2HDqD9+DEEGurBzTcBKUFpbmjDsmDLHQd7wTRog4d2wM3MTUT0pBDihFloARDa+eHo4Prli/CUf4a2qspgwC6XELBPykfKwiXQMgdZVEMgJpozEQYgpUxh5l+j0+47uA8tZaWQvpgl7BSLSHbCtfwj2POfiAahyjHe4EQYgK7rm4jofbO29+uv4Nn6+V3TwFE4Ha4PVsUqx0ZN01YqQRBA6Kj9aWa72vnt0o9jBu+VNQK2RydCGzgYEAL6xQvw1xxBoC5y4hzPvAjX0uKgPNbpIKJsVYqgVNf17UQ011BUZLtRNBuyzWexVQFTlxbDljc+JjD/sWrc3rQO9sn5SF20vMvMMfM2TdOKhJTSzcyXzZeMp+w9eH+otjhIyh4N9/oyCJdx+cX2L70eCGdK3LIxs5eIMhWAOQB2GRaytR56VQ68lQPRdqxf8DNl9EF6xW6QOz2u424qzBK6rm8lovmGIZ/7FFy3OvjX/1dvePcNQ+qS1VCE6unFzOUiEAjUaJr2cLj+vxdC3jgUjsW3hsD27N9Ar149HV9x76jKwDUiyjC8B6qGAv7GcDAx4CVoo3d3GrxgvSdhYCUv2JGfE9mIupgUAD8RJYUBVDoAyWGnNLwYdN8nPQJgfr4NcyaGQ6mu6f9fAbw+OQlzp9gi5Q0BuEpEfTotQf+Z0Mbs6ZEMLCyw4eXxlgw0dSTh8WmQ1yvDARtt2eg/6TckUfdIeLaJUVRh7R+rZ9gxZVTEj0HCqGNYCq4rCQLY3zYEpbdzseKRxXg+qyBhsinFb6rbUV7pt9jsWuREpjtyNQePoZRyNoAwzWXrOfiO5GBzSw72+oYHHWQ43NhduAl9HL0TAtHik5j3ZSuueyKt+56+hO0LkqPtX1UA0kJXcVi6uXotdjXUWpRHpWdhS34J3Laur+J2HSj51oeaet1i/3aBDa9Y66+u4gFGM9pGRG8aFpc8TZi1fxm8AWszynT2xcq8t/D4oLyYmThzswGlv1Tj7B9PAYiMkRkpAjveSUayzZL+Ck3TFhjt+H5mPkUUYdr+hiqUVJfFDDQ8bTAmZD6EoamZEELgSus1HL9yCrVXT0NCQvONgLNxMUTgTu9YM9OBySMjgJi5PdSO68wDyUYiWmGOuPP09yg7sSOhukcrCd2F5MZ3MS8v13L2lR4zb9A07UP12zySqTH8KBGNNjs78O9hrKv5At5A90YyTWgoyn4NRWOes2BjZvV4eUwIEaxv9FA6gpmPENGdPhxal71XsaV2Jw6ePwyON5QCyOv/IJaOfQOKuObFzI1EpIbSeuN7rLF8LDMfiAahDBQ5FYiaxpOoaz6PG23NwSHZbXdhmGsQxvYbhYIhEzAy/d4OZQsFL1TPN7Ows4eJysReIhpzVwSIMgqlXT1MwjvvNAOGQEqZzMxrACwzn47uAFJsB6Cm7TVGzTuQNZ5DKaXKhnqcziYiZzz9EMu9aswjolIhRF1XNnFfx6aMqCvw6ajnuTskb5ZS1pue5/uEEC2JgP0PiMlsM6t9TgAAAAAASUVORK5CYII=","historyId":7,"id":"cj3trn97g00063o5lbhkdv3av","keyword":"g","name":"Google","post":false,"removed":false,"suggestUrl":"https://www.google.com/complete/search?q=%s","url":"https://www.google.com/search?q=%s"},{"custom":false,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gcDBi8651D+ugAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAMaSURBVDjLVZNdaJtlFMd/z/N+5Ttt0lbTj6xrXcUIVYpTOzZQUOY2Lzq80KLghTcy0apXil6MKaxeqXWKDoYoggiCA6udIJWtggw2dFVR00Cp61fStEnffDR5k/d9vDCWeuBcHf4//pzzP4I9pRpDCCONUxlN4bOO4amUQO0UGmam7nqf9IVnC2s7j5DwX9rViL2AWnpgSJriazSG8JnIgI8aFiUiuEoBTPcYc+OT5dOVV+OvqP8BtmeSJ6xefXrHE5SbUPQEOaAZ8CMjYWKWQdPq4rI70thUgT4Dsm/GJ9A/nIjz8EGjRxNM56/Bps+l5pNrtuGdqQp+sFIhy/PUiXzNOTOXt7XtNmFELRa4eDEKKAFQ+qrverXCiL3gYyG2M3d8YvkJoAnYQB1QP6/59ffXTi5frXHLQ4MpfFr0nbMdz78ksh8lk76oWtpa0smuUrz/3cWjgAbkW10Cmp9nTjH+xVPhUFfa1vwe5vAdbAyPChlu9x5z1xV1W+fHxerHQAKIAx1ABDABMX7bB/DaoZJmVy54dRddKm6dv3K31N9jnzblIf9SfJ+p/gJYQBhoawECgA7QdvptqDd/EmUH1WiiYFhqW6CbAstWBIs4gNsSBIH2FsQChJvPghQNUXbwl2G/TCAlLBpSEHAVY0QGBZRbCzT3OAkBZuncJKAecCsGA6EkbdJ/QyKZ0TWBvlThSCh4SsEKUAFUy347EEXIoO/xF6Kq5Hs6lujF8FtcSvXekOLX5XTx7/zvpUwWo1jovjqw/3UgBzita4QRIi4CZszo3nfFdVyZvOsAyvPOAYjVf4N4J/CbA1j9vczKk5lvtuc/m7Xnl3ONYtVDFSJPTj3XPHD4US+UJDYaImI2Un8eDP+xG+VVOFal49sl8xD1/hE2GtsU3QpvrX/57KqzVQBWup75btLpGTxcu7cPETQJm9wn/wN0w8w1Xr6n5PRvbqezWDVJQLMQiEbrKp25C0dfNNdvfpoo2Ax2QiLOitz7jX5y18eY6mjijRXXNs6X8/ZlD1XaHUNn7vyDb9QzN882q1tHwrez8g9MsT4v9P+2wgAAAABJRU5ErkJggg==","historyId":8,"id":"cj4trn97g0006c0c35c091be5","keyword":"q","name":"Qwant","post":false,"removed":false,"suggestUrl":"https://api.qwant.com/api/suggest/?q=%s&client=opensearch&lang=en_gb","url":"https://www.qwant.com/?client=brz-vivaldi&q=%s"},{"custom":true,"faviconUrl":"data:image/png;base64,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","historyId":9,"id":"cjtyovrku001t3y5zkxj0umxf","keyword":"r","name":"Reddit","post":false,"removed":false,"suggestUrl":"","url":"https://www.reddit.com/r/%s"},{"custom":true,"faviconUrl":"","historyId":10,"id":"cjtyowbme001u3y5zuka8l8l5","keyword":"l","name":"LEO.org","post":false,"removed":false,"suggestUrl":"","url":"https://dict.leo.org/german-english/?search=%s"},{"custom":true,"faviconUrl":"data:image/png;base64,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","historyId":11,"id":"cjtyowypf001v3y5za3u427i4","keyword":"ig","name":"IGDB","post":false,"removed":false,"suggestUrl":"","url":"https://www.igdb.com/search?utf8=%E2%9C%93&type=1&q=%s"},{"custom":true,"faviconUrl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAFvUlEQVRoQ9WaeUxURxzHf0+zjU1wHbBXrPuAfRxWxao1TdqkibWtoAIeeNWjXq0iFG1J7W1bW1PbxnpwLiAgl4CAqNxoBK+26V2vCsiCYP1vHy1s/1ASp/m95e178952k/5lZxLCvu/85vubz/xmdh4JwndHCQWOm/BtJaGRT47nEqHjNxcI31RwDnCxnNDIaZxW4JILhAtlnAOcL+Uc4GwJoZFRnG6hyy4Q2ot5BzhMaASnFejECrQVcg5wpoDQiKl8noHOKy4QzuQTGs4pQBcCnD5EaPgUPivQddUFwqk8zgFaczgHaHYQGj6Z0y10zQVCUzYL8OfgPViefMv7ev3MjAdhV+rD0Nzuhn35MvParfahOHdtn+mVvLVE9KljYOycAFjwwliQRIsyzuifuikIYmYH+H3N71IAMgkN01XA2TcM0eu0yYTaLNBaLELaYRnSiwYYwwcsAlxttcOduxSmRjtNybraJAh/vtvvJFLWBcK29UEmf1X3N/gGAjRmmAFi1rMALUUipBeZAdC884wECK0foybFvog5/gFUD6M/AqSsC1K8xweOhnFjR5lYFICGdELDntDOgLN/GOZtYAGaC0VIL5Yho5itADo2FYrQ0Dbks6/jtASRL7IAqEXNc8LdYe0vWV8es6LGwKXrd7xx1rGj4IfaUAbixu8IkEaoZACYv5EFaCoQIQMBSswAB3c+Cq0X/oaGNrdpha6fkmDSSywAavM29kFP/7A3vrFAhEZcBB/+etOPUh6CVfHjvFI3AtQdJFSaxFYg9lUdwEQLNOSLkFkiQ2apBmANGAWD7nuQvCYQGtvd0HNrGFRNzXCtRYLJ0SwAags29Snxaqs/JEJT+xDjvzLWqnRX1A964zBX8togDeC6C4STB1gAXJnY11gATJBZKkOWDiB0okWZhPobXfWf8flqswRTYlgA1HCBGIA8ERrPDjH+SWsClYnqc6KWvMYAcGKfGSBuiwYQMtEC9bkiZJXJkFWmVWDFAitUNgwCfhOp+1nV1CW60ijB1PksAGqxm/ugV1eBuhwRms4NMf5Jq0cAdDlRS1ptADj+NaFSpLaFcGXiE1mAOocIWUdkyD6iAWxdFcg846SN2uV6CaJiWQDU4hJZgJMOD4DRHz2NWtIqHUCHC4TavQigiQiwcGu/d5+FPG6Bkw6bYpRdrgEU7pkAG9677Y3D/b86bhwTc6nODtPi2PsBtfjEfuj9QzsDJ7Jt0HzOzYzd+rKnAvqcqOEiqa27Qwbh2FeE2g0Ai5NZgONZNnCUD4CjQgOozbSBMS7muQAm5tcTdpi+kAVAbVESC4BeLefdzNjElZ6J6nOiljgChn1OBKj5kgXAvbn4dRYAE6BRjg7gl+N2mLFIm9yyGCsEkdF+YzApjkNwfQVqM2zQfMHNjN0yAqDPiZoK5gWo/oJQe4S2hdB4SQoLcCzdBjmVA8qP2n4+ZoeZSzSALSs8K+YvBvtx3OxXepWvYLWhfwsC6Px9+aGm6gpApwxC1R4zQMI2DSB4ggVUgNyjGsBPNXYF9OZtz16uSfNMwhjzVAK7hYx3BY5tKwqB8oa/mLFLoz33QHWLdg9sXu4D4OjnhNrD2QosfYMFqDloU8xzqzSAH6vskLBdA6g+YIPWi25TzKxl5pc879KPfEAvo78xBp9zd02AmZPHeLucXTIIFbvNAMtTWYCq/TbIqxqAvGoN4PtKO6MZnzELak+v+HeA6ZPGwN4djyk3uNE/Ya4V6tqGvHfM3GcDYPf2RxguD8BnhIbqKuCL/H5qvbeHIcg6WoE0th4EKP/0/w3gb/EUgCO7CA0N087A/Vzt/5q754YMQtknhIZIfAL0dssglH7MOUDJTs4Bij/kHKDoA0JD7JyeAacMwuH3OQcofJfQYE4rcBMrUPAOocGhfG6hmz0yCPlvcw5waAehwSGcVqBXBiHvLc4BclI5B3C8yfe/2/wD38cv0DjZUmMAAAAASUVORK5CYII=","historyId":12,"id":"cjtyoxkkp001w3y5zwu7eluic","keyword":"im","name":"IMDb","post":false,"removed":false,"suggestUrl":"","url":"https://www.imdb.com/find?ref_=nv_sr_fn&q=%s&s=all"},{"custom":true,"faviconUrl":"data:image/png;base64,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","historyId":13,"id":"cjtyoy8yr001x3y5zlwc32yrq","keyword":"m","name":"Metacritic","post":false,"removed":false,"suggestUrl":"","url":"http://www.metacritic.com/search/game/%s/results"}],"nextHistoryId":14,"version":"3"}
    


  • @AltCode I think it is due to this test line

    if (Object.keys(engines)[0] === 'context') {
    

    can change to

    if (Object.keys(engines)[0] === 'customOrder') {
    

    or

    if (Array.isArray(engines.engines)) {
    


  • @AltCode The json is valid, we have another problem here.

    @tam710562 NIce ninja, just wanted to post. Yeah, that's the problem, I thought every backup starts with the word "context" but apparently not. When changing context to customOrder it works.



  • The array is array thing doesn't work for me and I don't think it would make much sense, because I want to make sure no one pastes a theme code into the search import. I thought every search backup starts with context, but apparently not – don't know what we could do here. The logical thing would be to include "customOrder" and make it an additional possibility, but then again I don't if that's enough, could be there are other arrays out there that start with something else entirely… hmm



  • @luetage @tam710562 That seems to have worked, thanks. As an added bonus, it allowed me to add a favicon to a search engine that refused to load one.



Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.