mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
JSON exports tags
Closes #78. This changes the export format to { tags: {tag: count}, entries: [{…}, {…}, …] }
This commit is contained in:
parent
992beb393e
commit
ac7a882142
4 changed files with 34 additions and 19 deletions
|
@ -1,9 +1,12 @@
|
|||
Changelog
|
||||
=========
|
||||
|
||||
#### 1.1.0
|
||||
|
||||
* [New] JSON export exports tags as well.
|
||||
#### 1.0.5
|
||||
|
||||
* Backwards compatibility with `parsedatetime` 0.8.7
|
||||
* [Improved] Backwards compatibility with `parsedatetime` 0.8.7
|
||||
|
||||
#### 1.0.4
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ jrnl is a simple journal application for your command line.
|
|||
"""
|
||||
|
||||
__title__ = 'jrnl'
|
||||
__version__ = '1.0.5'
|
||||
__version__ = '1.1.0'
|
||||
__author__ = 'Manuel Ebert'
|
||||
__license__ = 'MIT License'
|
||||
__copyright__ = 'Copyright 2013 Manuel Ebert'
|
||||
|
|
|
@ -3,10 +3,16 @@
|
|||
|
||||
try: import simplejson as json
|
||||
except ImportError: import json
|
||||
from jrnl import get_tags_count
|
||||
|
||||
def to_json(journal):
|
||||
"""Returns a JSON representation of the Journal."""
|
||||
return json.dumps([e.to_dict() for e in journal.entries], indent=2)
|
||||
tags = get_tags_count(journal)
|
||||
result = {
|
||||
"tags": dict((tag, count) for count, tag in tags),
|
||||
"entries": [e.to_dict() for e in journal.entries]
|
||||
}
|
||||
return json.dumps(result, indent=2)
|
||||
|
||||
def to_md(journal):
|
||||
"""Returns a markdown representation of the Journal"""
|
||||
|
|
10
jrnl/jrnl.py
10
jrnl/jrnl.py
|
@ -104,8 +104,9 @@ def decrypt(journal, filename=None):
|
|||
journal.write(filename)
|
||||
print("Journal decrypted to {0}.".format(filename or journal.config['journal']))
|
||||
|
||||
def print_tags(journal):
|
||||
"""Prints a list of all tags and the number of occurances."""
|
||||
|
||||
def get_tags_count(journal):
|
||||
"""Returns a set of tuples (count, tag) for all tags present in the journal."""
|
||||
# Astute reader: should the following line leave you as puzzled as me the first time
|
||||
# I came across this construction, worry not and embrace the ensuing moment of enlightment.
|
||||
tags = [tag
|
||||
|
@ -114,6 +115,11 @@ def print_tags(journal):
|
|||
]
|
||||
# To be read: [for entry in journal.entries: for tag in set(entry.tags): tag]
|
||||
tag_counts = set([(tags.count(tag), tag) for tag in tags])
|
||||
return tag_counts
|
||||
|
||||
def print_tags(journal):
|
||||
"""Prints a list of all tags and the number of occurances."""
|
||||
tag_counts = get_tags_count(journal)
|
||||
if not tag_counts:
|
||||
print('[No tags found in journal.]')
|
||||
elif min(tag_counts)[0] == 0:
|
||||
|
|
Loading…
Add table
Reference in a new issue