mirror of https://gitlab.com/octtspacc/staticoso
Fix feed generation: filtering by category and get titles
This commit is contained in:
parent
e65b4d9774
commit
719ddefb48
|
@ -82,6 +82,8 @@ def Main(Args, FeedEntries):
|
|||
MastodonURL = Args.MastodonURL if Args.MastodonURL else ''
|
||||
MastodonToken = Args.MastodonToken if Args.MastodonToken else ''
|
||||
MarkdownExts = literal_eval(Args.MarkdownExts) if Args.MarkdownExts else EvalOpt(ReadConf(SiteConf, 'Site', 'MarkdownExts')) if ReadConf(SiteConf, 'Site', 'MarkdownExts') else ('attr_list', 'def_list', 'markdown_del_ins', 'md_in_html', 'mdx_subscript', 'mdx_superscript')
|
||||
ActivityPubTypeFilter = Args.ActivityPubTypeFilter if Args.ActivityPubTypeFilter else 'Post'
|
||||
FeedCategoryFilter = Args.FeedCategoryFilter if Args.FeedCategoryFilter else 'Blog'
|
||||
|
||||
Minify = False
|
||||
if Args.Minify != None:
|
||||
|
@ -149,6 +151,7 @@ def Main(Args, FeedEntries):
|
|||
print("[I] Generating Feeds")
|
||||
for FeedType in (True, False):
|
||||
MakeFeed(
|
||||
CategoryFilter=FeedCategoryFilter,
|
||||
Pages=Pages,
|
||||
SiteName=SiteName,
|
||||
SiteTagline=SiteTagline,
|
||||
|
@ -171,8 +174,8 @@ def Main(Args, FeedEntries):
|
|||
SiteDomain=SiteDomain,
|
||||
SiteLang=SiteLang,
|
||||
Locale=Locale,
|
||||
TypeFilter=Args.ActivityPubTypeFilter if Args.ActivityPubTypeFilter else 'Post',
|
||||
CategoryFilter=Args.ActivityPubCategoryFilter if Args.ActivityPubCategoryFilter else 'Blog',
|
||||
TypeFilter=ActivityPubTypeFilter,
|
||||
CategoryFilter=FeedCategoryFilter,
|
||||
HoursLimit=Args.ActivityPubHoursLimit if Args.ActivityPubHoursLimit else 168)
|
||||
else:
|
||||
MastodonPosts = []
|
||||
|
@ -223,8 +226,8 @@ if __name__ == '__main__':
|
|||
Parser.add_argument('--MarkdownExts', type=str)
|
||||
Parser.add_argument('--MastodonURL', type=str)
|
||||
Parser.add_argument('--MastodonToken', type=str)
|
||||
Parser.add_argument('--FeedCategoryFilter', type=str)
|
||||
Parser.add_argument('--ActivityPubTypeFilter', type=str)
|
||||
Parser.add_argument('--ActivityPubCategoryFilter', type=str)
|
||||
Parser.add_argument('--ActivityPubHoursLimit', type=int)
|
||||
Parser.add_argument('--AutoCategories', type=str)
|
||||
Args = Parser.parse_args()
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
from Libs.feedgen.feed import FeedGenerator
|
||||
from Modules.Utils import *
|
||||
|
||||
def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullSite=False, Minify=False):
|
||||
def MakeFeed(CategoryFilter, Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullSite=False, Minify=False):
|
||||
Feed = FeedGenerator()
|
||||
Link = SiteDomain if SiteDomain else ' '
|
||||
Feed.id(Link)
|
||||
|
@ -31,7 +31,7 @@ def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullSit
|
|||
DoPages.reverse()
|
||||
|
||||
for File, Content, Titles, Meta, ContentHTML, SlimHTML, Description, Image in DoPages:
|
||||
if FullSite or (not FullSite and Meta['Type'] == 'Post'):
|
||||
if FullSite or (not FullSite and Meta['Type'] == 'Post' and (not CategoryFilter or (CategoryFilter and (CategoryFilter in Meta['Categories'] or CategoryFilter == '*')))):
|
||||
Entry = Feed.add_entry()
|
||||
File = '{}.html'.format(StripExt(File))
|
||||
Content = ReadFile('public/'+File)
|
||||
|
@ -39,7 +39,7 @@ def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullSit
|
|||
CreatedOn = GetFullDate(Meta['CreatedOn'])
|
||||
EditedOn = GetFullDate(Meta['EditedOn'])
|
||||
Entry.id(Link)
|
||||
Entry.title(Meta['Title'] if Meta['Title'] else ' ')
|
||||
Entry.title(Meta['Title'] if Meta['Title'] else Titles[0].lstrip('#') if Titles else 'Untitled')
|
||||
Entry.description(Description)
|
||||
Entry.link(href=Link, rel='alternate')
|
||||
if not FullSite: # Avoid making an enormous site feed file...
|
||||
|
|
Loading…
Reference in New Issue