Include only 10 (by default) most recent files in the feed.

This commit is contained in:
Solderpunk 2020-03-17 13:26:32 +01:00
parent 63f7622d4c
commit 5d95fed964
1 changed files with 7 additions and 3 deletions

View File

@ -21,14 +21,16 @@ def get_feed_title():
return extract_first_heading(filename, default)
return default
def find_files():
def find_files(n=10):
files = []
for extension in ("gmi", "gem", "gemini"):
files.extend(glob.glob("*.{}".format(extension)))
index = "index.{}".format(extension)
if index in files:
files.remove(index)
return [f for f in files if is_world_readable(f)]
files = [f for f in files if is_world_readable(f)]
files.sort(key=os.path.getctime, reverse=True)
return files[0:n]
def extract_first_heading(filename, default=""):
with open(filename) as fp:
@ -71,6 +73,8 @@ def main():
required=True, help='base URL for feed and entries')
parser.add_argument('-e', '--email', dest='email', type=str,
help="feed author's email address")
parser.add_argument('-n', dest='n', type=int, default=10,
help='include N most recently created files in feed (default 10)')
parser.add_argument('-o', '--output', dest='output', type=str,
default="atom.xml", help='output filename')
parser.add_argument('-s', '--subtitle', dest='subtitle', type=str,
@ -104,7 +108,7 @@ def main():
feed.link(href=urljoin(args.base_url, args.output), rel='self')
# Add one entry per .gmi file
files = find_files()
files = find_files(args.n)
latest_update = datetime.datetime.fromtimestamp(0, tz=datetime.timezone.utc)
for filename in files:
entry = feed.add_entry()