Merge pull request #157 from maebert/1.7.20

1.7.20
This commit is contained in:
Manuel Ebert 2014-04-16 15:34:05 -04:00
commit 036244fd29
8 changed files with 155 additions and 14 deletions

View file

@ -4,6 +4,7 @@ Changelog
### 1.7 (December 22, 2013)
* __1.7.20__ Minor fixes when parsing DayOne journals
* __1.7.19__ Creates full path to journal during installation if it doesn't exist yet
* __1.7.18__ Small update to parsing regex
* __1.7.17__ Fixes writing new lines between entries

View file

@ -0,0 +1,14 @@
{
"default_hour": 9,
"timeformat": "%Y-%m-%d %H:%M",
"linewrap": 80,
"encrypt": false,
"editor": "",
"default_minute": 0,
"highlight": true,
"password": "",
"journals": {
"default": "features/journals/bug153.dayone"
},
"tagsymbols": "@"
}

View file

@ -0,0 +1,56 @@
<?xxml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Creation Date</key>
<date>2013-10-27T02:27:27Z</date>
<key>Creator</key>
<dict>
<key>Device Agent</key>
<string>iPhone/iPhone3,1</string>
<key>Generation Date</key>
<date>2013-10-27T07:02:27Z</date>
<key>Host Name</key>
<string>omrt104001</string>
<key>OS Agent</key>
<string>iOS/7.0.3</string>
<key>Software Agent</key>
<string>Day One (iOS)/1.11.4</string>
</dict>
<key>Entry Text</key>
<string>Some text.</string>
<key>Location</key>
<dict>
<key>Administrative Area</key>
<string>Ãstergötlands län</string>
<key>Country</key>
<string>Sverige</string>
<key>Latitude</key>
<real>58.383400000000000</real>
<key>Locality</key>
<string>City</string>
<key>Longitude</key>
<real>15.577170000000000</real>
<key>Place Name</key>
<string>Street</string>
</dict>
<key>Starred</key>
<false/>
<key>Time Zone</key>
<string>Europe/Stockholm</string>
<key>UUID</key>
<string>B40EE704E15846DE8D45C44118A4D511</string>
<key>Weather</key>
<dict>
<key>Celsius</key>
<string>12</string>
<key>Description</key>
<string>Clear</string>
<key>Fahrenheit</key>
<string>54</string>
<key>IconName</key>
<string>sunnyn.png</string>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,52 @@
<dict>
<key>Creation Date</key>
<date>2013-10-27T02:27:27Z</date>
<key>Creator</key>
<dict>
<key>Device Agent</key>
<string>iPhone/iPhone3,1</string>
<key>Generation Date</key>
<date>2013-10-27T07:02:27Z</date>
<key>Host Name</key>
<string>omrt104001</string>
<key>OS Agent</key>
<string>iOS/7.0.3</string>
<key>Software Agent</key>
<string>Day One (iOS)/1.11.4</string>
</dict>
<key>Entry Text</key>
<string>This is not a valid plist.</string>
<key>Location</key>
<dict>
<key>Administrative Area</key>
<string>Ãstergötlands län</string>
<key>Country</key>
<string>Sverige</string>
<key>Latitude</key>
<real>58.383400000000000</real>
<key>Locality</key>
<string>City</string>
<key>Longitude</key>
<real>15.577170000000000</real>
<key>Place Name</key>
<string>Street</string>
</dict>
<key>Starred</key>
<false/>
<key>Time Zone</key>
<string>Europe/Stockholm</string>
<key>UUID</key>
<string>B40EE704E15846DE8D45C44118A4D511</string>
<key>Weather</key>
<dict>
<key>Celsius</key>
<string>12</string>
<key>Description</key>
<string>Clear</string>
<key>Fahrenheit</key>
<string>54</string>
<key>IconName</key>
<string>sunnyn.png</string>
</dict>
</dict>
</plist>

View file

@ -20,3 +20,13 @@ Feature: Zapped bugs should stay dead.
When we run "jrnl 2013-11-30 15:42: Project Started."
Then we should see the message "Entry added"
and the journal should contain "2013-11-30 15:42 Project Started."
Scenario: Loading entry with ambiguous time stamp
#https://github.com/maebert/jrnl/issues/153
Given we use the config "bug153.json"
When we run "jrnl -1"
Then we should get no error
and the output should be
"""
2013-10-27 03:27 Some text.
"""

View file

@ -24,6 +24,7 @@ import plistlib
import pytz
import uuid
import tzlocal
from xml.parsers.expat import ExpatError
class Journal(object):
@ -332,13 +333,17 @@ class DayOne(Journal):
self.entries = []
for filename in filenames:
with open(filename, 'rb') as plist_entry:
try:
dict_entry = plistlib.readPlist(plist_entry)
except ExpatError:
pass
else:
try:
timezone = pytz.timezone(dict_entry['Time Zone'])
except (KeyError, pytz.exceptions.UnknownTimeZoneError):
timezone = tzlocal.get_localzone()
date = dict_entry['Creation Date']
date = date + timezone.utcoffset(date)
date = date + timezone.utcoffset(date, is_dst=False)
raw = dict_entry['Entry Text']
sep = re.search("[\n!?.]+", raw)
title, body = (raw[:sep.end()], raw[sep.end():]) if sep else (raw, "")

View file

@ -8,7 +8,7 @@ jrnl is a simple journal application for your command line.
from __future__ import absolute_import
__title__ = 'jrnl'
__version__ = '1.7.19'
__version__ = '1.7.20'
__author__ = 'Manuel Ebert'
__license__ = 'MIT License'
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'

View file

@ -233,6 +233,9 @@ def run(manual_args=None):
install.save_config(original_config, config_path=CONFIG_PATH)
elif args.edit:
if not config['editor']:
util.prompt(u"[You need to specify an editor in {0} to use the --edit function.]".format(CONFIG_PATH))
sys.exit(1)
other_entries = [e for e in old_entries if e not in journal.entries]
# Edit
old_num_entries = len(journal)