Adds support for default firefox profile

This commit is contained in:
Nemo 2020-06-15 00:03:39 +05:30
parent 6abaa46c8f
commit f68ea6e9c4
2 changed files with 40 additions and 4 deletions

View File

@ -3,12 +3,31 @@ import sqlite3
import shutil
import os
import sys
from pathlib import Path
import configparser
class Firefox:
HISTORY_TMP_LOCATION = '/tmp/hackertray.firefox'
HISTORY_FILE_NAME = '/places.sqlite'
@staticmethod
def default_firefox_profile_path():
profile_file_path = Path.home().joinpath(".mozilla/firefox/profiles.ini")
profile_path = None
if (os.path.exists(profile_file_path)):
parser = configparser.ConfigParser()
parser.read(profile_file_path)
for section in parser.sections():
if parser[section]["Default"] == "1":
if parser[section]["IsRelative"] == "1":
profile_path = str(Path.home().joinpath(".mozilla/firefox/").joinpath(parser[section]["Path"]))
else:
profile_path = parser[section]["Path"]
if profile_path and Path.is_dir(Path(profile_path)):
return profile_path
else:
raise RuntimeError("Couldn't find default Firefox profile")
@staticmethod
def search(urls, config_folder_path):
Firefox.setup(config_folder_path)

View File

@ -1,10 +1,12 @@
import unittest
import os
import pathlib
from pathlib import Path
from hackertray import Firefox
class ChromeTest(unittest.TestCase):
def runTest(self):
class FirefoxTest(unittest.TestCase):
def test_history(self):
config_folder_path = os.getcwd()+'/test/'
data = Firefox.search([
"http://www.hckrnews.com/",
@ -13,3 +15,18 @@ class ChromeTest(unittest.TestCase):
"http://invalid_url/"],
config_folder_path)
self.assertTrue(data == [True,True,True,False])
def test_default(self):
test_default_path = Path.home().joinpath(".mozilla/firefox/x0ran0o9.default")
if(os.environ.get('TRAVIS') == 'true'):
if not os.path.exists(test_default_path):
os.makedirs(test_default_path)
with open(str(Path.home().joinpath('.mozilla/firefox/profiles.ini')), 'w') as f:
f.write("""
[Profile1]
Name=default
IsRelative=1
Path=x0ran0o9.default
Default=1
""")
self.assertTrue(Firefox.default_firefox_profile_path()==Path.home().joinpath(".mozilla/firefox/x0ran0o9.default"))