From 138897008ec31ac8223200e1f41d8031f3fa4b05 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 25 Jun 2022 17:18:19 +0000 Subject: [PATCH] lets-read project --- projects/lets-read/build.hxml | 4 ++++ projects/lets-read/haxelib.json | 17 +++++++++++++ projects/lets-read/lets-read.sh | 28 ++++++++++++++++++++++ projects/lets-read/src/lets_read/Main.hx | 11 +++++++++ projects/lets-read/src/lets_read/Main.kiss | 25 +++++++++++++++++++ projects/lets-read/test.sh | 3 +++ 6 files changed, 88 insertions(+) create mode 100644 projects/lets-read/build.hxml create mode 100644 projects/lets-read/haxelib.json create mode 100644 projects/lets-read/lets-read.sh create mode 100644 projects/lets-read/src/lets_read/Main.hx create mode 100644 projects/lets-read/src/lets_read/Main.kiss create mode 100644 projects/lets-read/test.sh diff --git a/projects/lets-read/build.hxml b/projects/lets-read/build.hxml new file mode 100644 index 00000000..6604ada7 --- /dev/null +++ b/projects/lets-read/build.hxml @@ -0,0 +1,4 @@ +-lib kiss +-cp src +--main lets_read.Main +--interp \ No newline at end of file diff --git a/projects/lets-read/haxelib.json b/projects/lets-read/haxelib.json new file mode 100644 index 00000000..65c873ce --- /dev/null +++ b/projects/lets-read/haxelib.json @@ -0,0 +1,17 @@ +{ + "main": "lets_read.Main", + "name": "lets-read", + "description": "make pdfs for skimming let's play videos", + "classPath": "src/", + "dependencies": { + "kiss": "" + }, + "url": "https://github.com/NQNStudios/kisslang", + "contributors": [ + "NQNStudios" + ], + "version": "0.0.0", + "releasenote": "", + "tags": [], + "license": "LGPL" +} \ No newline at end of file diff --git a/projects/lets-read/lets-read.sh b/projects/lets-read/lets-read.sh new file mode 100644 index 00000000..58dc6887 --- /dev/null +++ b/projects/lets-read/lets-read.sh @@ -0,0 +1,28 @@ +#! /bin/bash +# Usage: lets-read.sh + +if [ ! -e ${2}.mp4 ]; then + youtube-dl $1 -o $2 + if [ -e "${2}.mkv" ]; then + ffmpeg -i ${2}.mkv -codec copy ${2}.mp4 + rm "${2}.mkv" + elif [ -e "${2}.webm" ]; then + ffmpeg -i ${2}.webm ${2}.mp4 + rm "${2}.webm" + fi +fi + +threshold=${3:-1} # default 1 fps + +if [ ! -d ${2} ]; then + mkdir ${2} +fi + +ffmpeg -i ${2}.mp4 -vf "fps=${threshold}" -vsync vfr ${2}/frame-%6d.jpg + +rm ${2}/*.txt + +haxelib run lets-read ${2} +convert ${2}/frame-*.jpg ${2}.pdf + +# rm ${2}/frame-*.jpg \ No newline at end of file diff --git a/projects/lets-read/src/lets_read/Main.hx b/projects/lets-read/src/lets_read/Main.hx new file mode 100644 index 00000000..5b69afe4 --- /dev/null +++ b/projects/lets-read/src/lets_read/Main.hx @@ -0,0 +1,11 @@ +package lets_read; + +import kiss.Kiss; +import kiss.Prelude; +import sys.FileSystem; +import sys.io.File; +using hx.strings.Strings; +using haxe.io.Path; + +@:build(kiss.Kiss.build()) +class Main {} diff --git a/projects/lets-read/src/lets_read/Main.kiss b/projects/lets-read/src/lets_read/Main.kiss new file mode 100644 index 00000000..ddcc5cd8 --- /dev/null +++ b/projects/lets-read/src/lets_read/Main.kiss @@ -0,0 +1,25 @@ +(var THRESHOLD 0.4) + +``` +echo "\$(pwd)" > g.txt +echo "$(Sys.getCwd)" > g.txt +``` + +(assertLet [[folder realCwd] (Sys.args) + folder (joinPath realCwd folder) + files (reverse (FileSystem.readDirectory folder)) + lastFrame (first files)] + ``` + cd $folder && tesseract $lastFrame $(lastFrame.withoutExtension) + ``` + (doFor [after before] (pairs files) + ``` + cd $folder && tesseract $before $(Path.withoutExtension before) + ``` + (let [afterText (File.getContent "${folder}/$(Path.withoutExtension after).txt") + beforeText (File.getContent "${folder}/$(Path.withoutExtension before).txt")] + (when (or !beforeText + (< THRESHOLD (kiss.FuzzyMap.fuzzyMatchScore afterText beforeText))) + ``` + cd $folder && rm $before + ```)))) diff --git a/projects/lets-read/test.sh b/projects/lets-read/test.sh new file mode 100644 index 00000000..0ee8ae95 --- /dev/null +++ b/projects/lets-read/test.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +haxe build.hxml \ No newline at end of file