diff options
| author | EuAndreh <eu@euandre.org> | 2020-10-03 18:34:53 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2020-10-03 18:34:53 -0300 |
| commit | 97cc9be684747662470e140ac2f698fc314edfa9 (patch) | |
| tree | 2437167b492c3cf7a2a8fd7b7ce5be3a826d7616 | |
| parent | spacemacs.el: Show unread articles on default elfeed search filter (diff) | |
| download | dotfiles-97cc9be684747662470e140ac2f698fc314edfa9.tar.gz dotfiles-97cc9be684747662470e140ac2f698fc314edfa9.tar.xz | |
Generate local ril.xml from Firefox bookmarks
Diffstat (limited to '')
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | scripts/ad-hoc/elfeed.js | 19 | ||||
| -rwxr-xr-x | scripts/ad-hoc/elfeed.sh | 38 | ||||
| -rw-r--r-- | scripts/ad-hoc/package-lock.json | 33 |
4 files changed, 91 insertions, 1 deletions
@@ -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=" + } + } +} |
