4 # |
4 # |
5 |
5 |
6 """ |
6 """ |
7 Module implementing a manager for open search engines. |
7 Module implementing a manager for open search engines. |
8 """ |
8 """ |
9 |
|
10 |
9 |
11 import os |
10 import os |
12 |
11 |
13 from PyQt5.QtCore import ( |
12 from PyQt5.QtCore import ( |
14 pyqtSignal, QObject, QUrl, QFile, QDir, QIODevice, QUrlQuery |
13 pyqtSignal, QObject, QUrl, QFile, QDir, QIODevice, QUrlQuery |
421 |
420 |
422 def restoreDefaults(self): |
421 def restoreDefaults(self): |
423 """ |
422 """ |
424 Public method to restore the default search engines. |
423 Public method to restore the default search engines. |
425 """ |
424 """ |
426 # TODO: convert this to not use .qrc |
|
427 from .OpenSearchReader import OpenSearchReader |
425 from .OpenSearchReader import OpenSearchReader |
428 from .DefaultSearchEngines import DefaultSearchEngines_rc |
|
429 # __IGNORE_WARNING__ |
|
430 |
|
431 defaultEngineFiles = [ |
|
432 "Amazoncom.xml", |
|
433 "Bing.xml", |
|
434 "DeEn_Beolingus.xml", |
|
435 "DuckDuckGo.xml", |
|
436 "Facebook.xml", |
|
437 "Google.xml", |
|
438 "Google_Im_Feeling_Lucky.xml", |
|
439 "LEO_DeuEng.xml", |
|
440 "LinuxMagazin.xml", |
|
441 "MetaGer_MetaGer2.xml", |
|
442 "PyPI.xml", |
|
443 "Qwant.xml", |
|
444 "Reddit.xml", |
|
445 "StartPage.xml", |
|
446 "StartPage_en.xml", |
|
447 "Wikia.xml", |
|
448 "Wikia_en.xml", |
|
449 "Wikipedia.xml", |
|
450 "Wiktionary.xml", |
|
451 "Yahoo.xml", |
|
452 "YouTube.xml", |
|
453 "searxme.xml", |
|
454 ] |
|
455 # Keep this list in sync with the contents of the resource file. |
|
456 |
426 |
457 reader = OpenSearchReader() |
427 reader = OpenSearchReader() |
458 for engineFileName in defaultEngineFiles: |
428 defaultEnginesDirectory = os.path.join(os.path.dirname(__file__), |
459 engineFile = QFile(":/" + engineFileName) |
429 "DefaultSearchEngines") |
|
430 for engineFileName in ( |
|
431 QDir(defaultEnginesDirectory, "*.xml").entryList() |
|
432 ): |
|
433 engineFile = QFile(os.path.join(defaultEnginesDirectory, |
|
434 engineFileName)) |
460 if not engineFile.open(QIODevice.ReadOnly): |
435 if not engineFile.open(QIODevice.ReadOnly): |
461 continue |
436 continue |
462 engine = reader.read(engineFile) |
437 engine = reader.read(engineFile) |
463 self.__addEngineByEngine(engine) |
438 self.__addEngineByEngine(engine) |
464 |
439 |