[issue2008] cookielib lacks FileCookieJar class for Safari

2014-07-12 Thread Berker Peksag

Changes by Berker Peksag berker.pek...@gmail.com:


--
nosy:  -berker.peksag

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-05 Thread Hendrik

Changes by Hendrik hendrik.hoe...@googlemail.com:


--
keywords: +patch
Added file: http://bugs.python.org/file33921/cookie.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-05 Thread Hendrik

Changes by Hendrik hendrik.hoe...@googlemail.com:


Added file: http://bugs.python.org/file33922/cookiejar.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-05 Thread Berker Peksag

Changes by Berker Peksag berker.pek...@gmail.com:


--
nosy: +berker.peksag

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-02 Thread Hendrik

Hendrik added the comment:

Ok, i've got it.

--- a/Lib/http/cookiejar.py Wed Dec 18 15:37:03 2013 -0600
+++ b/Lib/http/cookiejar.py Sat Feb 01 15:12:01 2014 +0100
@@ -11,17 +11,17 @@
 distributed with the Python standard library, but are available from
 http://wwwsearch.sf.net/):
 
-CookieJar
-/ \  \
-FileCookieJar  \  \
- /|   \ \  \
- MozillaCookieJar | LWPCookieJar \  \
-  |   |  \
-  |   ---MSIEBase |   \
-  |  /  | |\
-  | /   MSIEDBCookieJar BSDDBCookieJar
-  |/
-   MSIECookieJar
+ CookieJar
+/ \  \
+FileCookieJar  \  \
+   /   /  |   \ \  \
+SafariCookieJar   /   | LWPCookieJar \  \
+ /|   |  \
+   MozillaCookieJar   |   ---MSIEBase |   \
+  |  /  | |\
+  | /   MSIEDBCookieJar BSDDBCookieJar
+  |/
+  MSIECookieJar
 
 
 
@@ -31,8 +31,11 @@
 import copy
 import datetime
 import re
+import getpass
 import time
 import urllib.parse, urllib.request
+import struct
+import io
 try:
 import threading as _threading
 except ImportError:
@@ -40,6 +43,9 @@
 import http.client  # only for the default HTTP port
 from calendar import timegm
 
+import difflib
+#from difflib_data import *
+
 debug = False   # set to True to enable debugging via the logging module
 logger = None
 
@@ -1938,6 +1944,109 @@
 raise LoadError(invalid Set-Cookie3 format file %r: %r %
 (filename, line))
 
+class SafariCookieJar(FileCookieJar):
+
+Read Cookies from Safari
+
+
+def load(self, filename=None):
+if filename == None:
+username = getpass.getuser()
+path = '/Users/' + username + 
'/Library/Cookies/Cookies.binarycookies'
+else:
+path = filename
+
+bf=open(path,mode='rb')
+scook = bf.read(4).decode(UTF-8)
+if scook == 'cook':
+NumberOfPages=struct.unpack('i',bf.read(4))[0]
+page_sizes=[]
+for np in range(NumberOfPages):
+page_sizes.append(struct.unpack('i',bf.read(4))[0])
+pages=[]
+for ps in page_sizes:
+pages.append(bf.read(ps))
+
+for page in pages:
+page=io.BytesIO(page)
+page.read(4)
+num_cookies=struct.unpack('i',page.read(4))[0]
+cookie_offsets=[]
+for nc in range(num_cookies):
+cookie_offsets.append(struct.unpack('i',page.read(4))[0])
+
+page.read(4)
+
+cookie=''
+for offset in cookie_offsets:
+page.seek(offset)
+cookiesize=struct.unpack('i',page.read(4))[0]
+cookie=io.BytesIO(page.read(cookiesize))
+
+cookie.read(4)
+
+flags=struct.unpack('i',cookie.read(4))[0]
+cookie_flags=''
+if flags==0:
+cookie_flags=''
+elif flags==1:
+cookie_flags='Secure'
+elif flags==4:
+cookie_flags='HttpOnly'
+elif flags==5:
+cookie_flags='Secure; HttpOnly'
+else:
+cookie_flags='Unknown'
+
+cookie.read(4)
+
+urloffset=struct.unpack('i',cookie.read(4))[0]
+nameoffset=struct.unpack('i',cookie.read(4))[0]
+pathoffset=struct.unpack('i',cookie.read(4))[0]
+valueoffset=struct.unpack('i',cookie.read(4))[0]
+
+endofcookie=cookie.read(8)
+
+expiry_date_epoch= 
struct.unpack('d',cookie.read(8))[0]+978307200
+expiry_date=time.strftime(%a, %d %b %Y 
,time.gmtime(expiry_date_epoch))[:-1]
+
+
create_date_epoch=struct.unpack('d',cookie.read(8))[0]+978307200
+create_date=time.strftime(%a, %d %b %Y 
,time.gmtime(create_date_epoch))[:-1]
+
+cookie.seek(urloffset-4)
+url=''
+u=cookie.read(1)
+while struct.unpack('b',u)[0]!=0:
+url=url+u.decode('UTF-8')
+u=cookie.read(1)
+
+cookie.seek(nameoffset-4)
+name=''
+n=cookie.read(1)
+while struct.unpack('b',n)[0]!=0:
+ 

[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-02 Thread Hendrik

Changes by Hendrik hendrik.hoe...@googlemail.com:


--
versions: +Python 3.4 -Python 3.2

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2014-02-01 Thread Hendrik

Hendrik added the comment:

I found a solution for reading Safari cookies, but struggling around with hg 
diff. Because always when i typ hg diff Lib/http/cookiejar.py it returns me the 
complete file not only my changes..

--
nosy: +Hendrik

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2010-07-09 Thread Terry J. Reedy

Changes by Terry J. Reedy tjre...@udel.edu:


--
versions: +Python 3.2 -Python 2.6, Python 3.0

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue2008
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2008-04-15 Thread sams.james

sams.james [EMAIL PROTECTED] added the comment:

would you mind posting the read code you have? I would really like to at
least be able to import Safari cookies in an app or two I have lying
around..

--
nosy: +sams.james

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2008
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2008-03-18 Thread Sean Reifschneider

Changes by Sean Reifschneider [EMAIL PROTECTED]:


--
assignee:  - loewis
nosy: +loewis
priority:  - normal

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2008
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2008-02-04 Thread Georg Brandl

Changes by Georg Brandl:


--
type: behavior - rfe

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2008
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2008] cookielib lacks FileCookieJar class for Safari

2008-02-04 Thread Bill Janssen

Bill Janssen added the comment:

I have code to read Safari cookies, but no code to write them.  I'll
have to look at the FileCookieJar interface.

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2008
__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com