fix(smartsitemap): Update CI configuration, bump dependencies, and apply small code cleanups

This commit is contained in:
2025-11-19 21:03:37 +00:00
parent 74c73e05f2
commit fe7e95d57f
15 changed files with 9246 additions and 4536 deletions

View File

@@ -1,8 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@push.rocks/smartsitemap',
version: '2.0.3',
description: 'a sitemap module'
version: '2.0.4',
description: 'A module for generating and managing sitemaps, supporting dynamic sitemap generation from feeds.'
}

View File

@@ -8,7 +8,8 @@ export class SitemapNews {
public async readAndAddFromRssFeedString(feedStringArg: string) {
const smartfeedInstance = new plugins.smartfeed.Smartfeed();
const parsedFeed = await smartfeedInstance.parseFeedFromString(feedStringArg);
const parsedFeed =
await smartfeedInstance.parseFeedFromString(feedStringArg);
this.rssItems = this.rssItems.concat(parsedFeed.items);
}
@@ -18,15 +19,20 @@ export class SitemapNews {
this.rssItems = this.rssItems.concat(parsedFeed.items);
}
public async readAndParseArticles(articleArrayArg: plugins.tsclass.content.IArticle[]) {
const rssItemArray = articleArrayArg.map((articleArg): interfaces.IRssItem => {
return {
title: articleArg.title,
content: articleArg.content,
isoDate: new Date(/* TODO: put article timestamp here */).toISOString(),
link: articleArg.url,
};
});
public async readAndParseArticles(
articleArrayArg: plugins.tsclass.content.IArticle[],
) {
const rssItemArray = articleArrayArg.map(
(articleArg): interfaces.IRssItem => {
return {
title: articleArg.title,
content: articleArg.content,
isoDate:
new Date(/* TODO: put article timestamp here */).toISOString(),
link: articleArg.url,
};
},
);
this.rssItems = this.rssItems.concat(rssItemArray);
}

View File

@@ -1,6 +1,11 @@
import * as plugins from './smartsitemap.plugins.js';
export type TUpdateFrequency = 'never' | 'daily' | 'weekly' | 'monthly' | 'yearly';
export type TUpdateFrequency =
| 'never'
| 'daily'
| 'weekly'
| 'monthly'
| 'yearly';
export interface IUrlInfo {
url: string;

View File

@@ -1,5 +1,8 @@
import { SitemapNews } from './smartsitemap.classes.sitemapnews.js';
import { type IUrlInfo, SitemapWebsite } from './smartsitemap.classes.sitemapwebsite.js';
import {
type IUrlInfo,
SitemapWebsite,
} from './smartsitemap.classes.sitemapwebsite.js';
import * as plugins from './smartsitemap.plugins.js';
import * as interfaces from './interfaces/index.js';
@@ -9,7 +12,9 @@ export class SmartSitemap {
/**
* creates a sitemap for news from feedurl
*/
public async createSitemapNewsFromFeedUrl(feedUrlArg: string): Promise<string> {
public async createSitemapNewsFromFeedUrl(
feedUrlArg: string,
): Promise<string> {
const sitemapNewsInstance = new SitemapNews({});
await sitemapNewsInstance.readAndAddFromRssFeedUrl(feedUrlArg);
return sitemapNewsInstance.exportSitemapXml();
@@ -18,7 +23,9 @@ export class SmartSitemap {
/**
* creates a sitemap for news from feedxmlstring
*/
public async createSitemapNewsFromAFeedStringArg(feedStringArg: string): Promise<string> {
public async createSitemapNewsFromAFeedStringArg(
feedStringArg: string,
): Promise<string> {
const sitemapNewsInstance = new SitemapNews({});
await sitemapNewsInstance.readAndAddFromRssFeedString(feedStringArg);
return sitemapNewsInstance.exportSitemapXml();
@@ -28,7 +35,7 @@ export class SmartSitemap {
* creates a sitemap for news from an array of articles
*/
public async createSitemapNewsFromArticleArray(
articleArrayArg: plugins.tsclass.content.IArticle[]
articleArrayArg: plugins.tsclass.content.IArticle[],
): Promise<string> {
const sitemapNewsInstance = new SitemapNews({});
await sitemapNewsInstance.readAndParseArticles(articleArrayArg);
@@ -39,9 +46,8 @@ export class SmartSitemap {
* creates a normal sitemap from a list of urls
*/
public async createSitemapFromYmlString(yamlString: string): Promise<string> {
const yamlObject: interfaces.ISitemapYaml = await plugins.smartyaml.yamlStringToObject(
yamlString
);
const yamlObject: interfaces.ISitemapYaml =
await plugins.smartyaml.yamlStringToObject(yamlString);
const sitemapWebsite = new SitemapWebsite();
for (const urlArg of yamlObject.daily) {
sitemapWebsite.addUrl({
@@ -68,11 +74,8 @@ export class SmartSitemap {
* parses a sitemap url
*/
public async parseSitemapUrl(urlArg: string) {
const sitemapXml = await (
await new plugins.webrequest.WebRequest().request(urlArg, {
method: 'GET',
})
).text();
const response = await plugins.webrequest.webrequest(urlArg);
const sitemapXml = await response.text();
const parsedSitemap = await this.parseSitemap(sitemapXml);
return parsedSitemap;
@@ -81,7 +84,9 @@ export class SmartSitemap {
/**
* parses a sitemap
*/
public async parseSitemap(sitemapXmlArg: string): Promise<interfaces.IParsedSiteMap> {
public async parseSitemap(
sitemapXmlArg: string,
): Promise<interfaces.IParsedSiteMap> {
return new plugins.smartxml.SmartXml().parseXmlToObject(sitemapXmlArg);
}
}