summaryrefslogtreecommitdiff
path: root/.w3m/cgi-bin/restore_session.cgi
diff options
context:
space:
mode:
Diffstat (limited to '.w3m/cgi-bin/restore_session.cgi')
-rwxr-xr-x.w3m/cgi-bin/restore_session.cgi51
1 files changed, 51 insertions, 0 deletions
diff --git a/.w3m/cgi-bin/restore_session.cgi b/.w3m/cgi-bin/restore_session.cgi
new file mode 100755
index 0000000..8b840fb
--- /dev/null
+++ b/.w3m/cgi-bin/restore_session.cgi
@@ -0,0 +1,51 @@
+#!/usr/bin/env sh
+# AUTHOR: gotbletu (@gmail|twitter|youtube|github|lbry)
+# https://www.youtube.com/user/gotbletu
+# DESC: generate a script for your last w3m session then you can run script to restore all urls in new tabs
+# DEMO: https://youtu.be/qYhNJ3itqWw
+# DEPEND: coreutils gawk sed
+# REQD: 1. chmod +x ~/.w3m/cgi-bin/restore_session.cgi
+# 2. $EDITOR ~/.bashrc
+# [ -d "$HOME/.w3m/bin" ] && PATH="$HOME/.w3m/bin:$PATH"
+# 3. $EDITOR ~/.w3m/keymap
+# ############################ Quit with confirmation request (QUIT)
+# keymap :q QUIT
+# keymap ZZ QUIT
+# ############################ Quit at once (EXIT)
+# keymap ZQ EXIT
+# ############################ Quit at once and save session
+# keymap Q COMMAND "EXTERN 'echo %s > ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; NEXT_TAB ; EXTERN 'echo %s >> ~/.w3m/RestoreSession.txt' ; READ_SHELL ~/.w3m/cgi-bin/restore_session.cgi ; EXIT"
+# 4. To load w3m with the last session
+# $ w3mlastsession
+
+# CLOG: 2021-05-15 remove multiple -N flag
+# 2021-04-17 first draft, no option to jump to tab 1 at the moment
+
+## ---------------------------------------------
+# location of generated script of last session
+mkdir -p "$HOME/.w3m/bin"
+RESTORE_SESSSION="$HOME/.w3m/bin/w3mlastsession"
+
+# add shell header
+echo "#!/usr/bin/env sh" > "$RESTORE_SESSSION"
+echo "w3m -N \\" >> "$RESTORE_SESSSION"
+
+# remove dupes without sorting and append trailing slash to each url
+awk '!x[$0]++' "$HOME/.w3m/RestoreSession.txt" | while read -r line ; do echo "'$line' \\" >> "$RESTORE_SESSSION" ; done
+
+# remove last trailing slash of the last line
+sed -i '$ s-.$--' "$RESTORE_SESSSION"
+
+chmod +x "$RESTORE_SESSSION"
+
+## OUTPUT SCRIPT FILE EXAMPLE ~/.w3m/bin/w3mlastsession
+## --------------------------------------------------
+## #!/usr/bin/env sh
+## w3m -N \
+## 'https://www.reddit.com/r/w3m/.mobile' \
+## 'https://www.reddit.com/r/commandline/.mobile' \
+## 'https://www.reddit.com/r/linux/.mobile' \
+## 'http://lite.cnn.com/en' \
+## 'https://raw.githubusercontent.com/tats/w3m/master/ChangeLog' \
+## 'https://github.com/gotbletu/shownotes'
+## --------------------------------------------------