Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; This file:
;;   http://anggtwu.net/elisp/find-subs-links.el.html
;;   http://anggtwu.net/elisp/find-subs-links.el
;;          (find-angg "elisp/find-subs-links.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; (defun e () (interactive) (find-angg "elisp/find-subs-links.el"))
;; (load (buffer-file-name))
;;
;; See: (find-angg ".emacs.templates" "find-subs-links")


;; «.find-subs-links»			(to "find-subs-links")
;; «.find-subs-lua-links»		(to "find-subs-lua-links")
;; «.find-subs-blogme3-links»		(to "find-subs-blogme3-links")
;; «.find-subs-1stclassvideo-links»	(to "find-subs-1stclassvideo-links")
;;   «.ee-subs-1stclassvideo-links»	(to "ee-subs-1stclassvideo-links")
;;   «.ee-subs-eevvideolinks-links»	(to "ee-subs-eevvideolinks-links")
;;   «.ee-subs-57-links»		(to "ee-subs-57-links")
;;   «.ee-subs-lua-header-links»	(to "ee-subs-lua-header-links")
;;   «.ee-subs-lua-code-links»		(to "ee-subs-lua-code-links")
;;   «.ee-subs-blogme3-links»		(to "ee-subs-blogme3-links")

(defvar ee-subs-c        "{ee-subs-c}")
(defvar ee-subs-mp4stem  "{ee-subs-mp4stem}")
(defvar ee-subs-pagestem "{ee-subs-pagestem}")
(defvar ee-subs-hash     "{ee-subs-hash}")
(defvar ee-subs-length   "{ee-subs-length}")


;; «find-subs-links»  (to ".find-subs-links")
;; Skel: (find-find-links-links-new "subs" "c" "")
;; Test: (find-subs-links)
;;       (find-subs-links "eev2021")
;;       (find-subs-links "eev20219")
;;
(defun find-subs-links (&optional c &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subs."
  (interactive)
  (setq c (or c "{c}"))
  (let ((ee-buffer-name (or ee-buffer-name "*find-subs-links*")))
    (apply
     'find-elinks-elisp
     `((find-subs-links ,c ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-subs-links)
       (find-efunction 'ee-subs-setqs-links)
       (find-efunction 'ee-subs-setqs-1stclass-links)
       (find-2a nil '(1c))
       ""
       (find-subs-57-links)
       (find-subs-lua-links)
       (find-subs-blogme3-links)
       (find-subs-1stclassvideo-links)
       (find-subs-eevvideolinks-links)
       ""
       (find-ssr-links ,ee-subs-c ,ee-subs-mp4stem ,ee-subs-hash ,ee-subs-length)
       ""
       ,(ee-subs-setqs-links c)
       ""
       ,(if (assoc c ee-1stclassvideos-info)
	    (ee-subs-setqs-1stclass-links c)
	  (ee-template0 ";; Not first class: \"{c}\""))
       )
     pos-spec-list)))

;; «find-subs-lua-links»  (to ".find-subs-lua-links")
;; Skel: (find-find-links-links-new "subs-lua" "" "")
;; Test: (find-subs-lua-links)
;;
(defun find-subs-lua-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subs-lua."
  (interactive)
  (let ((ee-buffer-name (or ee-buffer-name "*find-subs-lua-links*")))
    (apply
     'find-elinks
     `((find-subs-lua-links ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-subs-lua-links)
       (find-efunction 'ee-subs-lua-header-links)
       (find-efunction 'ee-subs-lua-code-links)
       (find-subs-lua-links ,ee-subs-c)
       ""
       (kill-new ,(ee-template0 "  SUBTITLES/{ee-subs-mp4stem}.lua"))
       (find-blogme3 "anggmake.lua" "anggtranslate" "SUBTITLES/")
       ""
       (ee-copy-rest 2 '(find-angg ,(format "SUBTITLES/%s.lua" ee-subs-mp4stem)))
       (ee-copy-rest 1 '(find-angg ,(format "SUBTITLES/%s.lua" ee-subs-c)))
       ""
       ,(ee-subs-lua-header-links)
       ,(ee-subs-lua-code-links)
       )
     pos-spec-list)))

;; «find-subs-blogme3-links»  (to ".find-subs-blogme3-links")
;; Skel: (find-find-links-links-new "subs-blogme3" "" "")
;; Test: (find-subs-blogme3-links)
;;
(defun find-subs-blogme3-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subs-blogme3."
  (interactive)
  (let ((ee-buffer-name (or ee-buffer-name "*find-subs-blogme3-links*")))
    (apply
     'find-elinks
     `((find-subs-blogme3-links ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-subs-blogme3-links)
       (find-efunction 'ee-subs-blogme3-links)
       ""
       (kill-new ,ee-subs-mp4stem)
       (find-blogme3 "anggmake.lua" "blogmestems" "2023-caepro0")
       (find-TH ,ee-subs-mp4stem)
       (ee-copy-rest 1 '(find-TH ,ee-subs-mp4stem))
       ""
       ,(ee-subs-blogme3-links)
       )
     pos-spec-list)))

;; <find-subs-57-links>
;; Skel: (find-find-links-links-new "subs-57" "" "")
;; Test: (find-subs-57-links)
;;
(defun find-subs-57-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subs-57."
  (interactive)
  (apply
   'find-elinks
   `((find-subs-57-links ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-subs-57-links)
     (find-efunction 'ee-subs-57-links)
     ""
     ,(ee-subs-57-links)
     )
   pos-spec-list))

;; «find-subs-1stclassvideo-links»  (to ".find-subs-1stclassvideo-links")
;; Skel: (find-find-links-links-new "subs-1stclassvideo" "" "")
;; Test: (find-subs-1stclassvideo-links)
;;
(defun find-subs-1stclassvideo-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subs-1stclassvideo."
  (interactive)
  (let ((ee-buffer-name (or ee-buffer-name "*find-subs-1stclassvideo-links*")))
    (apply
     'find-elinks
     `((find-subs-1stclassvideo-links ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-subs-1stclassvideo-links)
       (find-efunction 'ee-subs-1stclassvideo-links)
       ""
       ,(ee-subs-1stclassvideo-links)
       )
     pos-spec-list)))



(defun ee-subs-setqs-links (c)
  (ee-template0 "\
;; Current values:
(setq ee-subs-c        \"{ee-subs-c}\")
(setq ee-subs-mp4stem  \"{ee-subs-mp4stem}\")
(setq ee-subs-pagestem \"{ee-subs-pagestem}\")
(setq ee-subs-hash     \"{ee-subs-hash}\")
(setq ee-subs-length   \"{ee-subs-length}\")

;; Reset:
(setq ee-subs-c        \"{<}ee-subs-c{>}\")
(setq ee-subs-mp4stem  \"{<}ee-subs-mp4stem{>}\")
(setq ee-subs-pagestem \"{<}ee-subs-pagestem{>}\")
(setq ee-subs-hash     \"{<}ee-subs-hash{>}\")
(setq ee-subs-length   \"{<}ee-subs-length{>}\")

"))

(defun ee-subs-setqs-1stclass-links (c)
  (ee-template0 "\
;; From the `c':
(setq ee-subs-c        \"{c}\")
(setq ee-subs-mp4stem  \"{(ee-1stclassvideos-mp4stem  c)}\")
(setq ee-subs-pagestem \"{(ee-1stclassvideos-pagestem c)}\")
(setq ee-subs-hash     \"{(ee-1stclassvideos-hash     c)}\")
(setq ee-subs-length   \"{(ee-1stclassvideos-field    c :length)}\")
"))


;; «ee-subs-1stclassvideo-links»  (to ".ee-subs-1stclassvideo-links")
;; Test: (find-estring (ee-subs-1stclassvideo-links))
(defun ee-subs-1stclassvideo-links ()
  (ee-template0 "\
code_eevshortvideo(\"{ee-subs-c}\", \"{ee-subs-mp4stem}\", \"{ee-subs-hash}\")
# ^ copy to: (find-blogme3 \"sandwiches-defs.lua\" \"code_eevshortvideos\")

      [\"{ee-subs-c}\"] = \"{ee-subs-hash}\",
# ^ copy to: (find-blogme3 \"videoindex.lua\")
"))


;; «ee-subs-eevvideolinks-links»  (to ".ee-subs-eevvideolinks-links")
;; Test: (find-estring (ee-subs-eevvideolinks-links))
(defun ee-subs-eevvideolinks-links ()
  (ee-template0 "\
;; Info: (find-1stclassvideo-links \"{ee-subs-c}\")
;;       (find-eev \"eev-videolinks.el\" \"{ee-subs-c}\")
;;       (find-eev \"eev-videolinks.el\" \"eev2021\")
;;
(ee-1stclassvideos-add '

    ;;
    ;; <{ee-subs-c}>
    ;; Play: (find-{ee-subs-c}video \"0:00\")
    ;; Index: (find-1stclassvideoindex \"{ee-subs-c}\")
    (\"{ee-subs-c}\"
     :title \"TITLE\"
     :mp4   \"http://anggtwu.net/eev-videos/{ee-subs-mp4stem}.mp4\"
     :yt    \"http://www.youtube.com/watch?v={ee-subs-hash}\"
     :page  \"http://anggtwu.net/{ee-subs-pagestem}.html\"
     :lang  \"portuguese\"
     :date    \"DATE\"
     :length  \"{ee-subs-length}\"
     :subs    \".vtt\"
     :comment \"COMMENT\")

)
# ^ copy to: (find-eev \"eev-videolinks.el\" \"{ee-subs-c}\")
#            (find-eev \"eev-videolinks.el\" \"eev2021\")
"))



;; «ee-subs-57-links»  (to ".ee-subs-57-links")
;; Test: (find-estring (ee-subs-57-links))
(defun ee-subs-57-links ()
  (ee-template0 "\
;; <{ee-subs-c}>
;; 19/mar/2023
;; (find-ssr-links     \"{ee-subs-c}\" \"{ee-subs-mp4stem}\" \"{ee-subs-hash}\")
 ' (code-eevvideo      \"{ee-subs-c}\" \"{ee-subs-mp4stem}\" \"{ee-subs-hash}\")
;; (code-eevlinksvideo \"{ee-subs-c}\" \"{ee-subs-mp4stem}\" \"{ee-subs-hash}\")
;; (find-subs-links    \"{ee-subs-c}\")
;; (find-angg \"SUBTITLES/{ee-subs-mp4stem}.lua\" \"legendas\")
;; (find-SUBSfile \"{ee-subs-mp4stem}.lua\" \"legendas\")
;; (find-TH \"{ee-subs-mp4stem}\")
;; (find-TH \"{ee-subs-pagestem}\")
;; (find-1stclassvideolsubs \"{ee-subs-c}\")
;; (find-{ee-subs-c}video \"0:00\")

# ^ copy to: (find-angg \".emacs.videos\" \"{ee-subs-c}\")
"))




;; «ee-subs-lua-header-links»  (to ".ee-subs-lua-header-links")
;; Test: (find-estring (ee-subs-lua-header-links))
(defun ee-subs-lua-header-links ()
  (ee-template0 "\
-- This file:
--   http://anggtwu.net/SUBTITLES/{ee-subs-mp4stem}.lua.html
--   http://anggtwu.net/SUBTITLES/{ee-subs-mp4stem}.lua
--          (find-angg \"SUBTITLES/{ee-subs-mp4stem}.lua\")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun l () (interactive) (find-angg \"SUBTITLES/{ee-subs-mp4stem}.lua\"))
-- (defun l () (interactive) (find-SUBS \"{ee-subs-mp4stem}.lua\"))
-- (defun b () (interactive) (find-TH   \"{ee-subs-mp4stem}\"))
-- (defun p () (interactive) (find-TH   \"{ee-subs-pagestem}\"))
-- (defun R () (interactive) (ee-recompile-SUBTITLES-0))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-3))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-1))
--  (define-key eev-mode-map (kbd \"M-r\") 'r)
--
-- Skel: (find-subs-links \"{ee-subs-c}\")
-- Old:  (find-editeevsubtitles-links-1 \"{ee-subs-c}\")
--       (find-efunction 'find-editeevsubtitles-links-1)
-- Yttr: (find-yttranscript-links       \"{ee-subs-c}\" \"{ee-subs-hash}\")
-- Info: (find-1stclassvideo-links      \"{ee-subs-c}\")
-- Play: (find-{ee-subs-c}video \"0:00\")
--
-- I use the code below to generate the subtitles in .vtt.
--

ee_dofile \"~/LUA/Subtitles.lua\" -- (find-angg \"LUA/Subtitles.lua\")
"))

;; «ee-subs-lua-code-links»  (to ".ee-subs-lua-code-links")
;; Test: (find-estring (ee-subs-lua-code-links))
(defun ee-subs-lua-code-links ()
  (ee-template0 "\
--[[
-- (find-angg \"LUA/Subtitles.lua\")

** Run the .lua and tell it to
** write the .vtt - by default in /tmp/
*
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{ee-subs-mp4stem}.lua\"
sts = Subtitles.fromsexps(subs_bigstr):addtime(\"{ee-subs-length}\")
-- sts.lang = \"pt-BR\"
= sts
outfname = \"$S/http/anggtwu.net/eev-videos/{ee-subs-mp4stem}.vtt\"
outfname =                           \"/tmp/{ee-subs-mp4stem}.vtt\"
out = sts:vtt()..\"\\n\\n\"
ee_writefile(outfname, out)
-- (find-fline                       \"/tmp/{ee-subs-mp4stem}.vtt\")

** Test the .vtt
** (find-{ee-subs-c}video \"0:00\")

** Select /tmp/ or ee-eevvideosdir
** (find-eevvideosfile \"\")
** (find-eevvideosfile \"\"   \"{ee-subs-mp4stem}.mp4\")
** (find-eevvideossh0 \"cp -v {ee-subs-mp4stem}.mp4 /tmp/\")
** (code-video \"{ee-subs-c}video\"                           \"/tmp/{ee-subs-mp4stem}.mp4\")
** (code-video \"{ee-subs-c}video\" \"$S/http/anggtwu.net/eev-videos/{ee-subs-mp4stem}.mp4\")
** (find-{ee-subs-c}video \"0:00\")

** Upload the {ee-subs-mp4stem}.vtt
** to http://anggtwu.net/eev-videos/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
scp    {ee-subs-mp4stem}.vtt $LINP/eev-videos/
scp    {ee-subs-mp4stem}.vtt $LINS/eev-videos/
Scp-np {ee-subs-mp4stem}.vtt $TWUP/eev-videos/
Scp-np {ee-subs-mp4stem}.vtt $TWUS/eev-videos/

** Upload the subtitles to youtube
** http://www.youtube.com/watch?v={ee-subs-hash}

** Check that the \"psne subtitles\" thing works
** (find-1stclassvideo-links \"{ee-subs-c}\")

--]]

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{ee-subs-mp4stem}.lua\"
for li in subs_bigstr:gmatch(\"([^\\n]+)\") do
  local time,text = li:match('^.-\"(.-)\".-\"(.*)\"%)$')
  text = text:gsub(\"\\\\(.)\", \"%1\")
  if time then print(\"  \"..time..\"  \"..text) end
end

--]]
\n
subs_bigstr = [==[
\(find-{ee-subs-c}video \"00:00\" \" \")
]==]

unrevised_bigstr = [==[
\(find-{ee-subs-c}video \"00:00\" \" \")
]==]

-- Local\  Variables:
-- coding:  utf-8-unix
-- End:"))


;; «ee-subs-blogme3-links»  (to ".ee-subs-blogme3-links")
;; Test: (find-estring (ee-subs-blogme3-links))
(defun ee-subs-blogme3-links ()
  (ee-template0 "\
[INCLUDE TH/speedbar.blogme]
[SETFAVICON dednat4/dednat4-icon.png]
[SETFAVICON IMAGES/forthsun.png]
[# 
(defun c () (interactive) (find-blogme3-sh0-if \"{ee-subs-mp4stem}\"))
(defun u () (interactive) (find-blogme-upload-links \"{ee-subs-mp4stem}\"))
(defun u () (interactive) (find-blogme3-st-up-links \"{ee-subs-mp4stem}\"))
(defun l () (interactive) (find-angg \"SUBTITLES/{ee-subs-mp4stem}.lua\"))
(defun b () (interactive) (find-TH \"{ee-subs-mp4stem}\"))
(defun p () (interactive) (find-TH \"{ee-subs-pagestem}\"))
;;     http://anggtwu.net/{ee-subs-pagestem}.html
;;     http://anggtwu.net/{ee-subs-mp4stem}.html
;; file:///home/edrx/TH/L/{ee-subs-mp4stem}.html
;;
;; (find-blogme3-legendas-links \"{ee-subs-c}\" \"{ee-subs-mp4stem}\" \"{ee-subs-hash}\")
#]
[lua:
  require \"defs-2022\"    -- (find-blogme3 \"defs-2022.lua\")
  load_caepro4()         -- (find-blogme3 \"defs-2022.lua\" \"load_caepro2\")
  short_:add [[
    caepro      => (find-TH \"2023-caepro\")
    caepro      ->           2023-caepro.html

                      (find-1stclassvideo-links \"{ee-subs-c}\")
    {ee-subs-c}-page   -> http://anggtwu.net/{ee-subs-pagestem}.html
    {ee-subs-c}-mp4    -> http://anggtwu.net/eev-videos/{ee-subs-mp4stem}.mp4
    {ee-subs-c}-lua    => (find-angg    \"SUBTITLES/{ee-subs-mp4stem}.lua\" \"legendas\")
    {ee-subs-c}-leg    => (find-TH                \"{ee-subs-mp4stem}\")
    {ee-subs-c}-pdf    -> http://anggtwu.net/LATEX/2023-caepro.pdf
    {ee-subs-c}-video  -> https://www.youtube.com/watch?v={ee-subs-hash}
    {ee-subs-c}-index  => (find-1stclassvideoindex \"{ee-subs-c}\")

  ]]
]
[SETHEADSTYLE [LUCIDA]]
[htmlize8 [J \"Isso muda alguma coisa?\" (Sobre as reclamações do CAEPRO)]

[P The main page about this video is [_ {ee-subs-c}-page here].
[BR] Its index is [_ {ee-subs-c}-index here].
[BR] Its subtitles in Lua are [_ {ee-subs-c}-lua here].
[BR] The rest of this page contains a conversion of the subtitles in Lua
[BR] to a slightly more readable format.
]

[NARROW
[PLEFT
  [FIG [__ {ee-subs-c}-video]
          IMAGES/{ee-subs-mp4stem}-small.png]
]
]

[br]

[P
[lua:
-- (find-angg \"SUBTITLES/{ee-subs-mp4stem}.lua\")
-- (find-angg \"LUA/Subtitles.lua\" \"Subtitles\")
-- (find-TH \"2021aulas-por-telegram\" \"legendas\" \"ipairs\")
-- (find-fline \"~/SUBTITLES/{ee-subs-mp4stem}.lua\")
ee_dofile      \"~/SUBTITLES/{ee-subs-mp4stem}.lua\"
-- (find-fline \"~/LUA/Subtitles2.lua\")
ee_dofile      \"~/LUA/Subtitles2.lua\"

Subtitle.hash = \"{ee-subs-hash}\"
sls = SubtitleLines.from(subs_bigstr)
return sls:blogme()

]
]


]
[#
 # Local {\"Variables\"}:
 # coding: utf-8-unix
 # modes: (fundamental-mode blogme-mode)
 # End:
#]"))



;;
;; Local Variables:
;; coding:  utf-8-unix
;; End: