Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fill in more XML keys that are missing in Journaley #135

Open
yyoon opened this issue Dec 31, 2015 · 11 comments
Open

Fill in more XML keys that are missing in Journaley #135

yyoon opened this issue Dec 31, 2015 · 11 comments

Comments

@yyoon
Copy link
Owner

yyoon commented Dec 31, 2015

@crxtrdude volunteered to investigate this.

@crxtrdude
Copy link
Contributor

Where would I place the document, here or a PR?

@yyoon
Copy link
Owner Author

yyoon commented Dec 31, 2015

Let's put it here.

@crxtrdude
Copy link
Contributor

Okay, I'll divide this onto sections, starting with:

Introduction

All of them use XML 1.0 PList 1.0 Specs.

Date is formatted like this, with time formatted in Zulu:
(YYYY-MM-DD)T(HH:MM:SS)Z

Each entry is named in UUID Version 4, with their UUID also stamped
inside the entries as well.

@crxtrdude
Copy link
Contributor

Key: Activity
Value: <string>

Set in Day One, determined also through 'motion activity'.

Key: Creation Date
Value: <date>

Date the entry is created

@crxtrdude
Copy link
Contributor

Key: Creator
Value: <dict>

Sets the application used to create the DOENTRY

[Start of Creator dict]

Key: Device Agent
Value: <string>

The device the application is on

Key: Generation Date
Value: <date>

Date the entry was generated by the app

Key: Host Name
Value: <string>

The name assigned to the device the app is on

Key: OS Agent
Value: <string>

The operating system the device is on.
Format in (OS)/(Version)

Key: Software Agent
Value: <string>

The name of the app the DOENTRY is generated.
Format is (Name of app)/(Version)

In Narrate, there is no Version

[End of Creator Dict]

@crxtrdude
Copy link
Contributor

Key: Entry Text
Value: <string>

The main body of the document formatted in Markdown.

In Journaley, MarkdownDeep is used to parse it. MarkdownDeep combines
features found in Markdown as well as in MultiMarkdown.

Day One on the other hand uses peg-multimarkdown, port of
MultiMarkdown which has all of Markdown and MultiMarkdown's features
with some more additions.

Just mentioing MultiMarkdown, because that's what I found out when I checked Day One's about screen. Sadly, there's no C# port of MultiMarkdown, so MarkdownDeep could suffice.

@crxtrdude
Copy link
Contributor

Key: Location
Value: <dict>

The location of the device that the DOENTRY was created/generated
Can be set in Day One

[Start of Location Dict]

Key: Administrative Area
Value: <string>

The administrative area, sometimes the province

Key: Locality
Value: <string>

The locality, can be the City or Municipality

Key: Country
Value: <string>

The name of country

Key: Latitude
Value: <real>

The latitude value of the location

Key: Longitude
Value: <real>

The longitude value of the location

Key: Place Name
Value: <string>

Name of the place, sometimes specified, sometimes not.
Generated if the maps plugin in Day One has checked if there is
a name in the location. Narrate also has this as well.

Key: Region
Value: <dict>

Specifies the circular region of the location tagged.
This is used if 'My Location' is used in Day One.

[Start of Region Dict]

Key: Center
Value: <dict>

Specifies the center of the Region. 
Dict values are Longitude and Latitude, already mentioned.

Key: Radius
Value: <real>

Specifies the radius of the Region. 

[End of Region Dict]

[End of Location Dict]

@crxtrdude
Copy link
Contributor

Key: Starred
Value: <true /> or <false />

Is this entry starred/bookmarked?
For the starred category in Day One.

Key: Tags
Value: <array>

Array of tags. When present, the entry would be searchable using
tags. All tags are first checked before the application runs and during updates.

Key: Time Zone
Value: <string>

 The timezone where the app is located. This uses the IANA's
 time zone format, which is also used in iOS.

Key: UUID
Value: <string>

The UUID Version 4 for the entry, should be same as its file name.

@crxtrdude
Copy link
Contributor

Key: Weather
Value: Dict

Weather information tagged in the entry.

[Start of Weather Dict]

Key: Celsius
Value: String

Temperature in celsius (metric)

Key: Description
Value: String

Description of the tagged weather

Key: Fahrenheit
Value: String

Temperature in fahrenheit (imperical)

Key: IconName
Value: String

Name of the icon in PNG used for the entry.

Key: Pressure MB
Value: Integer

Bar pressure of the tagged weather

Key: Relative Humidity
Value: Integer

The relative humidity of the tagged weather

Key: Service
Value: String

The weather service used to provide the information.

Key: Sunrise Date
Value: Date

The date of sunrise on the date of the entry's creation.

Key: Sunset Date
Value: Date

The date of sunset on the date of the entry's creation.

Key: Wind Bearing
Value: Integer

The wind bearing (direction) in degrees, but expressed here
in integer.

Key: Wind Chill Celcius
Value: Integer

The wind chill temperature in celcius

Key: Wind Speed KPH
Value: Integer

The wind speed in KPH

[End of Weather Dict]

@crxtrdude
Copy link
Contributor

That's got to be all what is currently in an XML file of an entry with everything turned on. If not specified, the Weather dict and Location Dict could be empty. Weather Dict is sometimes not present too if not specified.

Old versions of the DOENTRY format does not have Region. The most recent one has.

You guys probably know this, if a picture in the 'photos' folder named with a respective UUID, that would serve as its photo used in Day One.

@crxtrdude
Copy link
Contributor

BTW, for the time zones, we could implement that, using Noda Time, which has a Nuget version by the way, and this thing that I found in Stack Overflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants