Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file: ;; http://anggtwu.net/elisp/find-subs2-links.el.html ;; http://anggtwu.net/elisp/find-subs2-links.el ;; (find-angg "elisp/find-subs2-links.el") ;; Author: Eduardo Ochs <eduardoochs@gmail.com> ;; ;; (defun e () (interactive) (find-angg "elisp/find-subs2-links.el")) ;; (defun o () (interactive) (find-angg "elisp/find-subs-links.el")) ;; (defun oe () (interactive) (find-2a '(o) '(e))) ;; «.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") ;; (find-angg "elisp/2023eduardo.el") ;; «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 "eev2019") ;; (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 ,c) (find-subs-lua-links ,c) (find-subs-blogme3-links ,c) (find-subs-1stclassvideo-links ,c) (find-subs-eevvideolinks-links ,c) "" (find-ssr-links ,ee-subs-c ,ee-subs-mp4stem ,ee-subs-hash ,ee-subs-length) "" ,(ee-let*-macro-1stclassvideo-c c (ee-subs-eevvideolinks-links)) "" ;; ,(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) ;; (find-subs-lua-links "eev2019") ;; (defun find-subs-lua-links (c &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*"))) (ee-let*-macro-1stclassvideo-c c (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/{mp4stem}.lua")) (find-blogme3 "anggmake.lua" "anggtranslate" "SUBTITLES/") "" (ee-copy-rest 2 '(find-angg ,(format "SUBTITLES/%s.lua" mp4stem))) (ee-copy-rest 1 '(find-angg ,(format "SUBTITLES/%s.lua" 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 "eev2019") ;; (find-subs-blogme3-links "2023etel") ;; (defun find-subs-blogme3-links (c &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*"))) (ee-let*-macro-1stclassvideo-c c (apply 'find-elinks `((find-subs-blogme3-links ,c ,@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 ,hsubstem) (find-blogme3 "anggmake.lua" "blogmestems" "2023-caepro0") (find-TH ,hsubstem) (ee-copy-rest 1 '(find-TH ,hsubstem)) "" ,(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) ;; (find-subs-1stclassvideo-links "eev2019") ;; (defun find-subs-1stclassvideo-links (c &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*"))) (ee-let*-macro-1stclassvideo-c c (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)))) ;; «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(\"{c}\", \"{mp4stem}\", \"{hash}\") # ^ copy to: (find-blogme3 \"sandwiches-defs.lua\" \"code_eevshortvideos\") [\"{c}\"] = \"{hash}\", # ^ copy to: (find-blogme3 \"videoindex.lua\") ")) ;; «ee-subs-eevvideolinks-links» (to ".ee-subs-eevvideolinks-links") ;; Test: (find-estring (ee-subs-eevvideolinks-links)) ' (ee-let*-macro-1stclassvideo-c "2023eduardo" (find-estring-elisp (ee-subs-eevvideolinks-links))) (defun ee-subs-eevvideolinks-links () (ee-template0 "\ ;; Info: (find-1stclassvideo-links \"{c}\") ;; (find-eev \"eev-videolinks.el\" \"{c}\") ;; (find-eev \"eev-videolinks.el\" \"eev2021\") ;; (ee-1stclassvideos-add ' ;; ;; <{c}> ;; Play: (find-{c}video \"0:00\") ;; Index: (find-1stclassvideoindex \"{c}\") (\"{c}\" :title \"{title}\" :mp4 \"http://anggtwu.net/eev-videos/{mp4stem}.mp4\" :yt \"http://www.youtube.com/watch?v={hash}\" :page \"http://anggtwu.net/{pagestem}.html\" :hsubs \"http://anggtwu.net/{pagestem}.html\" :lang \"portuguese\" :date \"DATE\" :length \"{length}\" :subs \".vtt\" :comment \"{comment}\") ) ;; ^ copy to: (find-eev \"eev-videolinks.el\" \"{c}\") ;; (find-eev \"eev-videolinks.el\" \"eev2021\") ;; Then this: ;; (find-code-1stclassvideos '(\"{c}\")) (code-1stclassvideos '(\"{c}\")) ;; (find-subs-links \"{c}\") ;; (find-subs-blogme3-links) ;; (find-efunction 'find-subs-blogme3-links) ")) ;; «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/{mp4stem}.lua.html -- http://anggtwu.net/SUBTITLES/{mp4stem}.lua -- (find-angg \"SUBTITLES/{mp4stem}.lua\") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun l () (interactive) (find-angg \"SUBTITLES/{mp4stem}.lua\")) -- (defun l () (interactive) (find-SUBS \"{mp4stem}.lua\")) -- (defun b () (interactive) (find-TH \"{mp4stem}\")) -- (defun p () (interactive) (find-TH \"{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 \"{c}\") -- Old: (find-editeevsubtitles-links-1 \"{c}\") -- (find-efunction 'find-editeevsubtitles-links-1) -- Yttr: (find-yttranscript-links \"{c}\" \"{hash}\") -- Info: (find-1stclassvideo-links \"{c}\") -- Play: (find-{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 \"{mp4stem}.lua\" sts = Subtitles.fromsexps(subs_bigstr):addtime(\"{length}\") -- sts.lang = \"pt-BR\" = sts outfname = \"$S/http/anggtwu.net/eev-videos/{mp4stem}.vtt\" outfname = \"/tmp/{mp4stem}.vtt\" out = sts:vtt()..\"\\n\\n\" ee_writefile(outfname, out) -- (find-fline \"/tmp/{mp4stem}.vtt\") ** Test the .vtt ** (find-{c}video \"0:00\") ** Select /tmp/ or ee-eevvideosdir ** (find-eevvideosfile \"\") ** (find-eevvideosfile \"\" \"{mp4stem}.mp4\") ** (find-eevvideossh0 \"cp -v {mp4stem}.mp4 /tmp/\") ** (code-video \"{c}video\" \"/tmp/{mp4stem}.mp4\") ** (code-video \"{c}video\" \"$S/http/anggtwu.net/eev-videos/{mp4stem}.mp4\") ** (find-{c}video \"0:00\") ** Upload the {mp4stem}.vtt ** to http://anggtwu.net/eev-videos/ * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/ scp {mp4stem}.vtt $LINP/eev-videos/ scp {mp4stem}.vtt $LINS/eev-videos/ Scp-np {mp4stem}.vtt $TWUP/eev-videos/ Scp-np {mp4stem}.vtt $TWUS/eev-videos/ ** Upload the subtitles to youtube ** http://www.youtube.com/watch?v={hash} ** Check that the \"psne subtitles\" thing works ** (find-1stclassvideo-links \"{c}\") --]] --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile \"{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-{c}video \"00:00\" \" \") ]==] unrevised_bigstr = [==[ \(find-{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 \"{hsubstem}\")) (defun u () (interactive) (find-blogme-upload-links \"{hsubstem}\")) (defun u () (interactive) (find-blogme3-st-up-links \"{hsubstem}\")) (defun l () (interactive) (find-angg \"SUBTITLES/{mp4stem}.lua\")) (defun b () (interactive) (find-TH \"{hsubstem}\")) (defun p () (interactive) (find-TH \"{pagestem}\")) ;; http://anggtwu.net/{pagestem}.html ;; http://anggtwu.net/{hsubstem}.html ;; file:///home/edrx/TH/L/{hsubstem}.html ;; ;; (find-blogme3-legendas-links \"{c}\" \"{mp4stem}\" \"{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 \"{c}\") {c}-page -> http://anggtwu.net/{pagestem}.html {c}-mp4 -> http://anggtwu.net/eev-videos/{mp4stem}.mp4 {c}-lua => (find-angg \"SUBTITLES/{mp4stem}.lua\" \"legendas\") {c}-leg => (find-TH \"{hsubstem}\") {c}-pdf -> http://anggtwu.net/LATEX/2023-caepro.pdf {c}-video -> https://www.youtube.com/watch?v={hash} {c}-index => (find-1stclassvideoindex \"{c}\") ]] ] [SETHEADSTYLE [LUCIDA]] [htmlize8 [J \"Isso muda alguma coisa?\" (Sobre as reclamações do CAEPRO)] [P The main page about this video is [_ {c}-page here]. [BR] Its index is [_ {c}-index here]. [BR] Its subtitles in Lua are [_ {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 [__ {c}-video] IMAGES/{mp4stem}-small.png] ] ] [br] [P [lua: -- (find-angg \"SUBTITLES/{mp4stem}.lua\") -- (find-angg \"LUA/Subtitles.lua\" \"Subtitles\") -- (find-TH \"2021aulas-por-telegram\" \"legendas\" \"ipairs\") -- (find-fline \"~/SUBTITLES/{mp4stem}.lua\") ee_dofile \"~/SUBTITLES/{mp4stem}.lua\" -- (find-fline \"~/LUA/Subtitles2.lua\") ee_dofile \"~/LUA/Subtitles2.lua\" Subtitle.hash = \"{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: