From 7a9915632b9e451502d9c46407dd58e7deb4640e Mon Sep 17 00:00:00 2001
From: neodarz <neodarz@neodarz.net>
Date: Sun, 26 May 2019 18:11:16 +0200
Subject: Move list_posts to external file

---
 pyblog | 40 +---------------------------------------
 1 file changed, 1 insertion(+), 39 deletions(-)

(limited to 'pyblog')

diff --git a/pyblog b/pyblog
index ceb018d4..e73059bc 100755
--- a/pyblog
+++ b/pyblog
@@ -53,44 +53,6 @@ from generators import generators
 from cli import cli
 
 
-def list_posts():
-    """List all posts, with date, title, and path to source file.
-
-    This function only lists posts that has been built (since it reads
-    metadata from HTML rather than Markdown).
-
-    Returns
-    -------
-    posts : list
-        A list of posts, in reverse chronological order, where each
-        element is a tuple of (date, title, path to source file).
-
-    """
-    posts = []
-    for name in os.listdir(os.path.join(BUILDDIR, "blog")):
-        if not re.match(r"^[0-9]{4}-[0-9]{2}-[0-9]{2}.*\.html", name):
-            continue
-
-        htmlpath = os.path.join(BUILDDIR, "blog", name)
-        entry = AtomEntry()
-        item = RssItem()
-        try:
-            with open(htmlpath, encoding="utf-8") as htmlfile:
-                soup = bs4.BeautifulSoup(htmlfile.read(), "lxml")
-                title = soup.title.text
-                date = dateutil.parser.parse(soup.find("meta", attrs={"name": "date"})["content"])
-                source_path = os.path.join(POSTSDIR, re.sub(r'.html$', '.md', name))
-                posts.append((date, title, source_path))
-        except Exception:
-            sys.stderr.write("error: failed to read metadata from HTML file %s\n" % name)
-            with open(htmlpath, encoding="utf-8") as htmlfile:
-                sys.stderr.write("dumping HTML:%s\n\n" % htmlfile.read())
-            raise
-
-    posts.sort(key=lambda post: post[0], reverse=True)
-    return posts
-
-
 class PostSelector:
 
     def __init__(self, term, posts):
@@ -231,7 +193,7 @@ class PostSelector:
 
 
 def edit_existing_post(args):
-    selector = PostSelector(blessed.Terminal(), list_posts())
+    selector = PostSelector(blessed.Terminal(), utils.list_posts())
     selection = selector.select()
     if selection:
         print(selection)
-- 
cgit v1.2.1