]> git.ipfire.org Git - thirdparty/blocklistproject/lists.git/commitdiff
Adding script to automate updating number of domains in list 348/head
authorCharlie Fish <fishcharlie@me.com>
Mon, 28 Jun 2021 00:41:14 +0000 (18:41 -0600)
committerCharlie Fish <fishcharlie@me.com>
Mon, 28 Jun 2021 00:41:14 +0000 (18:41 -0600)
.github/workflows/run-automations.yml
scripts/update-number-of-domains.js [new file with mode: 0644]

index e594d96d5a53653c411ede809a7bdbbb826ff7a8..0941acab1679036d46a6886b1b464fe420064d59 100644 (file)
@@ -15,6 +15,7 @@ jobs:
           node-version: 15.x
       - run: node scripts/create-everything-list.js
       - run: node scripts/remove-duplicates.js
+      - run: node scripts/update-number-of-domains.js
       - run: node scripts/generate-noip.js
       - run: node scripts/generate-dnsmasq.js
       - name: Commit & Push
diff --git a/scripts/update-number-of-domains.js b/scripts/update-number-of-domains.js
new file mode 100644 (file)
index 0000000..5f50f79
--- /dev/null
@@ -0,0 +1,20 @@
+const fs = require("fs").promises;
+const path = require("path");
+
+(async () => {
+       const files = (await fs.readdir(path.join(__dirname, ".."))).filter((file) => file.endsWith(".txt")); // Array of strings, each representing a single file that ends in `.txt`
+
+       await Promise.all(files.map(async (file) => { // For each file
+               const existingDomains = new Set();
+
+               const fileContents = await fs.readFile(path.join(__dirname, "..", file), "utf8"); // Get file contents as a string
+
+               fileContents.split("\n").forEach((line) => {
+                       if (line.startsWith("0.0.0.0 ")) {
+                               existingDomains.add(line.replace("0.0.0.0 ", ""));
+                       }
+               });
+
+               await fs.writeFile(path.join(__dirname, "..", file), fileContents.replace(/^# Total number of network filters: ?(\d*)$/gmu, `# Total number of network filters: ${existingDomains.size}`), "utf8");
+       }));
+})();