Create cookie directory if it doesn't exist. Add debug messages for cookie db read/write.

This commit is contained in:
Adam Miller 2016-07-25 23:36:14 +00:00
parent 1cb6653fab
commit 2029964a74
2 changed files with 13 additions and 4 deletions

View File

@ -37,6 +37,7 @@ import base64
import psutil
import signal
import string
import sqlite3
__all__ = ["BrowserPool", "Browser"]
@ -134,9 +135,17 @@ class Browser:
self.chrome_port = self._find_available_port()
self._work_dir = tempfile.TemporaryDirectory()
if cookieDb is not None:
cookieLocation = os.sep.join([self._work_dir.name, "chrome-user-data","Default","Cookies"])
cookieDir = os.sep.join([self._work_dir.name, "chrome-user-data","Default"])
cookieLocation = os.sep.join([cookieDir,"Cookies"])
self.logger.debug("Cookie DB provided. Writing to: %s", cookieLocation)
try:
with open(cookieLocation,'w') as cookieFile:
os.makedirs(cookieDir)
except OSError as ex:
if ex.errno!=errno.EEXIST:
self.logger.error("Error creating cookie directory: %s", cookieDir, exc_info=True)
try:
with open(cookieLocation,'wb') as cookieFile:
cookieFile.write(cookieDb)
except EnvironmentError:
self.logger.error("exception writing cookie file at: %s", cookieLocation, exc_info=True)
@ -171,7 +180,7 @@ class Browser:
def read_cookie_db(self):
cookieLocation = os.sep.join([self._work_dir.name, "chrome-user-data","Default","Cookies"])
self.logger.debug("Saving Cookie DB from: %s", cookieLocation)
try:
with sqlite3.connect(cookieLocation) as conn:
cur = conn.cursor()

View File

@ -110,7 +110,7 @@ class Site(brozzler.BaseDictable):
self.last_claimed = last_claimed
self.metadata = metadata
self.remember_outlinks = remember_outlinks
self.cookieDb = bytearray(cookieDb)
self.cookieDb = bytearray(cookieDb) if cookieDb is not None else None
self.scope = scope or {}
if not "surt" in self.scope: