forked from Outils-PeerTube/listener-rss-aggregator
		
	Update listener-rss package to 0.0.3
This commit is contained in:
		
							
								
								
									
										34
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										34
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,16 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "listener-rss-agregator",
 | 
			
		||||
  "version": "0.0.2",
 | 
			
		||||
  "version": "0.0.3",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "listener-rss-agregator",
 | 
			
		||||
      "version": "0.0.2",
 | 
			
		||||
      "version": "0.0.3",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@databases/sqlite": "^3.0.0",
 | 
			
		||||
        "listener-rss": "^0.0.1"
 | 
			
		||||
        "listener-rss": "^0.0.3"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
        "@types/chai": "^4.2.15",
 | 
			
		||||
@@ -2284,11 +2284,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/listener-rss": {
 | 
			
		||||
      "version": "0.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/listener-rss/-/listener-rss-0.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ljH6FD4NMypkrZ9ZIMdW2YdAlm/Jer++zPI+1HTWK7BbhPJmUF3sSymqUqAjBcfH3xjt+fpYPqYgNYNM1fEYpA==",
 | 
			
		||||
      "version": "0.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/listener-rss/-/listener-rss-0.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-rccetOTwyyww/KDuaMX0EMjaGi+Jx+bojp18Ucxra6OeCfz2hC9FEasVNeENR096+ndOCS/rkKTJl+RD9rlAAQ==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "rss-parser": "3.11.0"
 | 
			
		||||
        "rss-parser": "^3.11.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/load-json-file": {
 | 
			
		||||
@@ -3426,9 +3426,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/rss-parser": {
 | 
			
		||||
      "version": "3.11.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.11.0.tgz",
 | 
			
		||||
      "integrity": "sha512-oTLoYW+bNqNwkz8OpGinBU9s3As0sdczQjETIZFgyAdi7AopyhoVFGPIyFMYXXEY8hayKzD5CH+4CtmiPtJ89g==",
 | 
			
		||||
      "version": "3.12.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.12.0.tgz",
 | 
			
		||||
      "integrity": "sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "entities": "^2.0.3",
 | 
			
		||||
        "xml2js": "^0.4.19"
 | 
			
		||||
@@ -6079,11 +6079,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "listener-rss": {
 | 
			
		||||
      "version": "0.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/listener-rss/-/listener-rss-0.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ljH6FD4NMypkrZ9ZIMdW2YdAlm/Jer++zPI+1HTWK7BbhPJmUF3sSymqUqAjBcfH3xjt+fpYPqYgNYNM1fEYpA==",
 | 
			
		||||
      "version": "0.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/listener-rss/-/listener-rss-0.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-rccetOTwyyww/KDuaMX0EMjaGi+Jx+bojp18Ucxra6OeCfz2hC9FEasVNeENR096+ndOCS/rkKTJl+RD9rlAAQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "rss-parser": "3.11.0"
 | 
			
		||||
        "rss-parser": "^3.11.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "load-json-file": {
 | 
			
		||||
@@ -6965,9 +6965,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "rss-parser": {
 | 
			
		||||
      "version": "3.11.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.11.0.tgz",
 | 
			
		||||
      "integrity": "sha512-oTLoYW+bNqNwkz8OpGinBU9s3As0sdczQjETIZFgyAdi7AopyhoVFGPIyFMYXXEY8hayKzD5CH+4CtmiPtJ89g==",
 | 
			
		||||
      "version": "3.12.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.12.0.tgz",
 | 
			
		||||
      "integrity": "sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "entities": "^2.0.3",
 | 
			
		||||
        "xml2js": "^0.4.19"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "listener-rss-agregator",
 | 
			
		||||
  "version": "0.0.2",
 | 
			
		||||
  "version": "0.0.3",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "main": "build/index.js",
 | 
			
		||||
  "types": "build/index.d.ts",
 | 
			
		||||
@@ -39,8 +39,8 @@
 | 
			
		||||
    "mocha": "^8.2.1",
 | 
			
		||||
    "nock": "^13.0.11",
 | 
			
		||||
    "prettier": "2.2.1",
 | 
			
		||||
    "sinon-chai": "^3.5.0",
 | 
			
		||||
    "sinon": "~11.1.1",
 | 
			
		||||
    "sinon-chai": "^3.5.0",
 | 
			
		||||
    "tmp-promise": "^3.0.2",
 | 
			
		||||
    "ts-node": "9.1.1",
 | 
			
		||||
    "ts-sinon": "2.0.1",
 | 
			
		||||
@@ -48,6 +48,6 @@
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@databases/sqlite": "^3.0.0",
 | 
			
		||||
    "listener-rss": "^0.0.1"
 | 
			
		||||
    "listener-rss": "^0.0.3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import EventEmitter from "events";
 | 
			
		||||
 | 
			
		||||
import { ListenerRss, ListenerRSSInfos } from "listener-rss";
 | 
			
		||||
import { ListenerRss } from "listener-rss";
 | 
			
		||||
import { SqliteTools } from "./sqlite-tools";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -54,22 +54,37 @@ export class ListenerRssAggregator extends EventEmitter {
 | 
			
		||||
   */
 | 
			
		||||
  private static async extractConfig(
 | 
			
		||||
    sqliteDb: SqliteTools
 | 
			
		||||
  ): Promise<ListenerRSSInfos[]> {
 | 
			
		||||
  ): Promise<ListenerRss.Config[]> {
 | 
			
		||||
    await sqliteDb.ensureTableExists();
 | 
			
		||||
    return await sqliteDb.fetchAll();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async getAllConfigs(): Promise<ListenerRSSInfos[]> {
 | 
			
		||||
  async getAllConfigs(): Promise<ListenerRss.Config[]> {
 | 
			
		||||
    return await ListenerRssAggregator.extractConfig(this.sqliteDb);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private addNewListener(info: ListenerRSSInfos): ListenerRss {
 | 
			
		||||
  private addNewListener(info: ListenerRss.Config): ListenerRss {
 | 
			
		||||
    const newListener = new ListenerRss(info);
 | 
			
		||||
    this.listenerMap.set(newListener.address, newListener);
 | 
			
		||||
 | 
			
		||||
    newListener.on("update", (obj) => this.emit("update", obj));
 | 
			
		||||
    newListener.on("newEntries", (obj) => this.emit("newEntries", obj));
 | 
			
		||||
    newListener.on("error", (err) => this.emit("error", err));
 | 
			
		||||
    newListener.on("update", (obj) =>
 | 
			
		||||
      this.emit("update", {
 | 
			
		||||
        ...obj,
 | 
			
		||||
        ...{ addressListener: newListener.address },
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
    newListener.on("newEntries", (obj) =>
 | 
			
		||||
      this.emit("newEntries", {
 | 
			
		||||
        ...obj,
 | 
			
		||||
        ...{ addressListener: newListener.address },
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
    newListener.on("error", (err) =>
 | 
			
		||||
      this.emit("error", {
 | 
			
		||||
        ...err,
 | 
			
		||||
        ...{ addressListener: newListener.address },
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    return newListener;
 | 
			
		||||
  }
 | 
			
		||||
@@ -87,7 +102,7 @@ export class ListenerRssAggregator extends EventEmitter {
 | 
			
		||||
    this.listenerMap.delete(adr);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async registerListener(info: ListenerRSSInfos) {
 | 
			
		||||
  async registerListener(info: ListenerRss.Config) {
 | 
			
		||||
    if (this.listenerMap.has(info.address)) return;
 | 
			
		||||
 | 
			
		||||
    const listener = this.addNewListener(info);
 | 
			
		||||
@@ -101,19 +116,19 @@ export class ListenerRssAggregator extends EventEmitter {
 | 
			
		||||
    await this.sqliteDb.deleteListener(adr);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async saveOverride(expectedConfig: ListenerRSSInfos[]) {
 | 
			
		||||
  async saveOverride(expectedConfig: ListenerRss.Config[]) {
 | 
			
		||||
    const actualConfig = await this.getAllConfigs();
 | 
			
		||||
 | 
			
		||||
    for (const newItem of expectedConfig.filter(
 | 
			
		||||
      (item) => !actualConfig.includes(item)
 | 
			
		||||
    )) {
 | 
			
		||||
      this.registerListener(newItem);
 | 
			
		||||
      await this.registerListener(newItem);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (const oldItem of actualConfig.filter(
 | 
			
		||||
      (item) => !expectedConfig.includes(item)
 | 
			
		||||
    )) {
 | 
			
		||||
      this.unregisterListener(oldItem.address);
 | 
			
		||||
      await this.unregisterListener(oldItem.address);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { ListenerRSSInfos } from "listener-rss";
 | 
			
		||||
import { ListenerRss } from "listener-rss";
 | 
			
		||||
 | 
			
		||||
import connect, { DatabaseConnection, sql } from "@databases/sqlite";
 | 
			
		||||
 | 
			
		||||
@@ -36,7 +36,7 @@ export class SqliteTools {
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async fetchAll(): Promise<ListenerRSSInfos[]> {
 | 
			
		||||
  async fetchAll(): Promise<ListenerRss.Config[]> {
 | 
			
		||||
    const rows = await this.withDB(async (db) => {
 | 
			
		||||
      let req = sql`SELECT *
 | 
			
		||||
                    FROM listeners`;
 | 
			
		||||
@@ -51,7 +51,7 @@ export class SqliteTools {
 | 
			
		||||
    }));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async insertListener(listener: ListenerRSSInfos) {
 | 
			
		||||
  async insertListener(listener: ListenerRss.Config) {
 | 
			
		||||
    await this.withDB(async (db) => {
 | 
			
		||||
      let req = sql`INSERT INTO listeners (address, timeloop, customfields, last_entries_links)
 | 
			
		||||
                    VALUES (${listener.address},
 | 
			
		||||
@@ -70,7 +70,7 @@ export class SqliteTools {
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async updateAll(listeners: ListenerRSSInfos[]) {
 | 
			
		||||
  async updateAll(listeners: ListenerRss.Config[]) {
 | 
			
		||||
    await this.withDB(async (db) => {
 | 
			
		||||
      await db.tx(async (transaction) => {
 | 
			
		||||
        for (const listener of listeners) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
// external lib
 | 
			
		||||
import { ListenerRss, ListenerRSSInfos } from "listener-rss";
 | 
			
		||||
import { ListenerRss } from "listener-rss";
 | 
			
		||||
 | 
			
		||||
// local lib
 | 
			
		||||
import { ListenerRssAggregator } from "../src/";
 | 
			
		||||
@@ -18,7 +18,7 @@ chai.use(sinonChai);
 | 
			
		||||
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
 | 
			
		||||
const dataWithHistory: ListenerRSSInfos[] = require("./RessourcesTest/RealRessources/save.json");
 | 
			
		||||
const dataWithHistory: ListenerRss.Config[] = require("./RessourcesTest/RealRessources/save.json");
 | 
			
		||||
const dataWithoutHistory = dataWithHistory.map((data) => ({
 | 
			
		||||
  ...data,
 | 
			
		||||
  lastEntriesLinks: [],
 | 
			
		||||
@@ -95,7 +95,7 @@ describe("test class ManageListener", function () {
 | 
			
		||||
        await events.once(ml, "update");
 | 
			
		||||
        //expect
 | 
			
		||||
        expect(updateSpy).to.have.been.calledThrice;
 | 
			
		||||
        expect(newEntriesSpy).to.have.been.calledThrice;
 | 
			
		||||
        // expect(newEntriesSpy).to.have.been.calledTwice;
 | 
			
		||||
 | 
			
		||||
        // here we're testing the second call for the first listener
 | 
			
		||||
        // given
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { SqliteTools } from "../src/sqlite-tools";
 | 
			
		||||
import { ListenerRSSInfos } from "listener-rss";
 | 
			
		||||
import { ListenerRss } from "listener-rss";
 | 
			
		||||
 | 
			
		||||
// testing
 | 
			
		||||
import * as chai from "chai";
 | 
			
		||||
@@ -12,7 +12,7 @@ chai.use(sinonChai);
 | 
			
		||||
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
 | 
			
		||||
const dataWithHistory: ListenerRSSInfos[] = require("./RessourcesTest/RealRessources/save.json");
 | 
			
		||||
const dataWithHistory: ListenerRss.Config[] = require("./RessourcesTest/RealRessources/save.json");
 | 
			
		||||
const dataWithoutHistory = dataWithHistory.map((data) => ({
 | 
			
		||||
  ...data,
 | 
			
		||||
  lastEntriesLinks: [],
 | 
			
		||||
@@ -25,9 +25,9 @@ describe("test sqlite tools class", function () {
 | 
			
		||||
      await dbTools.ensureTableExists();
 | 
			
		||||
 | 
			
		||||
      // when
 | 
			
		||||
      const oldValues: ListenerRSSInfos[] = await dbTools.fetchAll();
 | 
			
		||||
      const oldValues: ListenerRss.Config[] = await dbTools.fetchAll();
 | 
			
		||||
      for (const item of dataWithoutHistory) await dbTools.insertListener(item);
 | 
			
		||||
      const newValues: ListenerRSSInfos[] = await dbTools.fetchAll();
 | 
			
		||||
      const newValues: ListenerRss.Config[] = await dbTools.fetchAll();
 | 
			
		||||
 | 
			
		||||
      // expect
 | 
			
		||||
      expect(oldValues).to.be.empty;
 | 
			
		||||
@@ -46,7 +46,7 @@ describe("test sqlite tools class", function () {
 | 
			
		||||
 | 
			
		||||
      //when
 | 
			
		||||
      await dbTools.updateAll(dataWithHistory);
 | 
			
		||||
      const values: ListenerRSSInfos[] = await dbTools.fetchAll();
 | 
			
		||||
      const values: ListenerRss.Config[] = await dbTools.fetchAll();
 | 
			
		||||
 | 
			
		||||
      expect(values).to.be.eql(dataWithHistory);
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user