diff options
Diffstat (limited to '.w3m/cgi-bin/restore_session.cgi')
-rwxr-xr-x | .w3m/cgi-bin/restore_session.cgi | 51 |
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' +## -------------------------------------------------- |