caption_hashtags property for only-if evaluation

caption_hashtags is a list of all hashtags that are mentioned in the
Post's caption. It allows to easily filter Posts that have multiple
hashtags, and as such fixes #24.

Further, the documentation of --only-if has been completed by linking to
a description of the syntax in the Python documentation, and by linking
to a list of all defined properties with their meanings. So, this commit
also closes #42.
This commit is contained in:
Alexander Graf
2017-08-29 11:03:12 +02:00
parent d84136b2dd
commit 5b5d540310
4 changed files with 29 additions and 2 deletions

View File

@@ -275,6 +275,16 @@ class Post:
elif "caption" in self._node:
return self._node["caption"]
@property
def caption_hashtags(self) -> List[str]:
"""List of all hashtags (without preceeding #) which occur in the Post's caption."""
if not self.caption:
return []
# This regular expression is from jStassen, adjusted to use Python's \w to support Unicode
# http://blog.jstassen.com/2016/03/code-regex-for-instagram-username-and-hashtags/
hashtag_regex = re.compile(r"(?:#)(\w(?:(?:\w|(?:\.(?!\.))){0,28}(?:\w))?)")
return re.findall(hashtag_regex, self.caption)
@property
def is_video(self) -> bool:
"""True if the Post is a video."""