aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2020-10-03 18:34:53 -0300
committerEuAndreh <eu@euandre.org>2020-10-03 18:34:53 -0300
commit97cc9be684747662470e140ac2f698fc314edfa9 (patch)
tree2437167b492c3cf7a2a8fd7b7ce5be3a826d7616
parentspacemacs.el: Show unread articles on default elfeed search filter (diff)
downloaddotfiles-97cc9be684747662470e140ac2f698fc314edfa9.tar.gz
dotfiles-97cc9be684747662470e140ac2f698fc314edfa9.tar.xz
Generate local ril.xml from Firefox bookmarks
Diffstat (limited to '')
-rw-r--r--.gitignore2
-rw-r--r--scripts/ad-hoc/elfeed.js19
-rwxr-xr-xscripts/ad-hoc/elfeed.sh38
-rw-r--r--scripts/ad-hoc/package-lock.json33
4 files changed, 91 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 68b7e2f2..258e7a4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,5 @@ mail/offlineimap.pyc
tam_required
/result
-/scripts/node_modules/
+/scripts/ad-hoc/node_modules/
/scripts/package-lock.json \ No newline at end of file
diff --git a/scripts/ad-hoc/elfeed.js b/scripts/ad-hoc/elfeed.js
new file mode 100644
index 00000000..54ed7abb
--- /dev/null
+++ b/scripts/ad-hoc/elfeed.js
@@ -0,0 +1,19 @@
+const fs = require("fs");
+const rss = require("rss");
+
+const items = JSON.parse(fs.readFileSync(0, "utf-8"));
+
+const feed = new rss({
+ title: "EuAndreh RIL title",
+ description: "EuAndreh RIL description",
+});
+
+items.forEach(({ title, url }) =>
+ feed.item({
+ title,
+ url
+ }));
+
+const xml = feed.xml({indent: true});
+
+console.log(xml);
diff --git a/scripts/ad-hoc/elfeed.sh b/scripts/ad-hoc/elfeed.sh
index e6d31047..83169419 100755
--- a/scripts/ad-hoc/elfeed.sh
+++ b/scripts/ad-hoc/elfeed.sh
@@ -1,6 +1,44 @@
#!/usr/bin/env bash
set -Eeuo pipefail
+QUERY=$(cat <<EOF
+SELECT "["
+ ||
+ group_concat(json_object('title', title, 'url', url))
+ ||
+ "]"
+FROM (
+ SELECT b.title, p.url
+ FROM moz_bookmarks AS b
+ JOIN moz_places AS p
+ ON b.fk = p.id
+ WHERE b.fk NOT IN (
+ SELECT DISTINCT(fk) FROM moz_bookmarks
+ WHERE parent IN (
+ -- get all tags
+ SELECT id FROM moz_bookmarks
+ WHERE parent = 4
+ )
+ )
+ ORDER BY
+ b.dateAdded ASC,
+ b.title ASC,
+ p.url
+)
+EOF
+)
+
+# copy the database to avoid locking issues
+TMPDB="$(mktemp)"
+cp ~/.mozilla/firefox/*.default/places.sqlite "$TMPDB"
+
+if [[ ! -d ./node_modules/ ]]; then
+ npm ci
+fi
+
+mkdir -p ~/.elfeed/
+sqlite3 "$TMPDB" "${QUERY}" | node elfeed.js > ~/.elfeed/ril.xml
+
timeout 120 \
emacs \
-batch \
diff --git a/scripts/ad-hoc/package-lock.json b/scripts/ad-hoc/package-lock.json
new file mode 100644
index 00000000..29925e3d
--- /dev/null
+++ b/scripts/ad-hoc/package-lock.json
@@ -0,0 +1,33 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "mime-db": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz",
+ "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I="
+ },
+ "mime-types": {
+ "version": "2.1.13",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz",
+ "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=",
+ "requires": {
+ "mime-db": "~1.25.0"
+ }
+ },
+ "rss": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz",
+ "integrity": "sha1-UKFpiHYTgTOnT5oF0r3I240nqSE=",
+ "requires": {
+ "mime-types": "2.1.13",
+ "xml": "1.0.1"
+ }
+ },
+ "xml": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
+ "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU="
+ }
+ }
+}