Skip to content

Instantly share code, notes, and snippets.

@gotbletu
Created February 11, 2024 23:48
Show Gist options
  • Save gotbletu/fc1c3509b81ed537203c6597e1f9509f to your computer and use it in GitHub Desktop.
Save gotbletu/fc1c3509b81ed537203c6597e1f9509f to your computer and use it in GitHub Desktop.
urlportal with menu
#!/usr/bin/env bash
### _ _ _ _
### __ _ ___ | |_| |__ | | ___| |_ _ _
### / _` |/ _ \| __| '_ \| |/ _ \ __| | | |
###| (_| | (_) | |_| |_) | | __/ |_| |_| |
### \__, |\___/ \__|_.__/|_|\___|\__|\__,_|
### |___/
### https://www.youtube.com/user/gotbletu
### https://twitter.com/gotbletu
### https://github.com/gotbletu
###
### Author : gotbletu
### Name : urlportal
### Description : custom way to handle url (similar idea to xdg-open, mailcap)
### Depends On : lynx yt-dlp task-spooler mpv urlview tmux feh plowshare streamlink curl coreutils moreutils
### Video Demo : https://www.youtube.com/watch?v=2jyfrmBYzVQ
### Source : https://gist.github.com/fxsjy/5465353
### References : cirrusuk http://arza.us/paste/piper
### : obosob https://github.com/michael-lazar/rtv/issues/78#issuecomment-125507472
### : budlabs https://www.youtube.com/watch?v=-vbr3-mHoRs
### : https://github.com/budlabs/youtube/blob/master/letslinux/032-queue-files-in-mpv/openvideo
### : ji99 https://www.reddit.com/r/commandline/comments/920p5d/bash_script_for_queueing_youtube_links_in_mpv/
### ChangeLog : 2021-02-13 replace mpv with new flag --input-ipc-server=/tmp/mpvinput
### 2016-12-21 it has begun!
### Todo: : catt chromecast
### : share to social media e.g twitter
# set default fzf options
export FZF_DEFAULT_OPTS='--prompt="urlportal: " --info=default --layout=reverse --tiebreak=index'
# check if tmux v3.2+ then use popup window
if [ "$TERM_PROGRAM" = tmux ]; then
FZF_PROG="fzf-tmux -p -h 60%"
else
FZF_PROG="fzf-tmux"
fi
########################## CONFIG EXAMPLES ########################## {{{
# newsboat:
# vim ~/.newsboat/config
# browser ~/.scripts/urlportal
# rtv:
# vim ~/.bashrc
# export RTV_BROWSER=~/.scripts/urlportal
# w3m:
# vim ~/.w3m/keymap
# keymap e EXTERN_LINK ~/.scripts/urlportal
# urlview:
# vim ~/.urlview
# COMMAND ~/.scripts/urlportal
#### }}}
########################## VARIABLE SECTION ########################## {{{
# temp file for images
TMP_IMG=/tmp/image.jpg
# output path for yt-dlp
YTDL_OUTDIR="${HOME}/.cyberbay/ytdlbay"
PLOW_OUTDIR="${HOME}/.cyberbay/plowbay"
DEFAULT="$BROWSERCLI"
# queue manager
TASK_PQ="pueue add --group vids"
TASK_PQ_DL="pueue add --group dl"
TASK_TS='TS_SOCKET=/tmp/vids tsp'
TASK_TS_DL="TS_SOCKET=/tmp/dl tsp"
# chromecast
STRM_CATT_CAST="catt cast"
STRM_CATT_ADD="catt add"
# framebuffer
MPLAYER_ARGS_FBR="mplayer -vo fbdev -noborder -ontop -geometry "99%:96%" -zoom -x 500 -y 280"
# MPLAYER_ARGS_FBR="mplayer -noborder -ontop -geometry "99%:96%" -zoom -x 500 -y 280"
MPV_ARGS="mpv --ontop --no-border --force-window --autofit=500x280 --geometry=-15-53"
# MPV_ARGS="smplayer -mpcgui -close-at-end"
# VIDEO_QUEUE="mpv --ontop --no-border --force-window --autofit=500x280 --geometry=-15-53"
# VIDEO_QUEUE="tsp mpv --ontop --no-border --force-window --autofit=500x280 --geometry=-15-53"
# VIDEO_QUEUE_ALT="tsp quvi dump "$LINK" -b quiet --exec 'mpv %u'"
MPV_LOOP="mpv --loop --quiet --ontop --no-border --force-window --autofit=900x600 --geometry=-15+60"
# for youtube.com only
YTDL_MAIN="yt-dlp -f bestvideo+bestaudio --merge-output-format mkv -o ${YTDL_OUTDIR}/'%(title)s.%(ext)s'"
# any other yt-dlp supported site
YTDL_REG="yt-dlp -o ${YTDL_OUTDIR}/'%(title)s.%(ext)s'"
CHAFA_ARGS="chafa"
# FEH_ARGS="feh -g 900x600-15+60"
FEH_ARGS="feh --auto-zoom --scale-down -g 1360x768 -B black"
UCOLLAGE_ARGS="ucollage"
FBI_ARGS="fbi"
FBV_ARGS="fbv"
W3MIMGDISPLAY_ARGS="w3m -o display_image=1 -o imgdisplay=w3mimgdisplay"
# IMAGEGUI="feh -. -x -B black -g 900x600-15+60"
# IMAGECLI="w3m /usr/lib/w3m/cgi-bin/treat_as_url.cgi -o display_image=1 -o imgdisplay=/usr/lib/w3m/w3mimgdisplay"
IMAGECLI="w3m -o display_image=1 -o imgdisplay=w3mimgdisplay"
# IMAGECLI="fbi"
# LIVEFEED='streamlink -p "mpv --cache 2048 --ontop --no-border --force-window --autofit=500x280 --geometry=-15-60"'
LIVEFEED="tsp streamlink"
DDL_PATH=~/Downloads/plowshare
DDL_QUEUE_FAST=~/.config/plowshare/queuefast.txt
MEGANZ="tsp-dl megadl --limit-speed=3000 --path=$PLOW_OUTDIR"
PLOWDL="tsp-dl plowdown --max-rate=3000K --output-directory=$PLOW_OUTDIR"
# https://github.com/stck-lzm/badown
MDFDIR="cd $PLOW_OUTDIR && tsp-dl badown --speed 3000K"
# https://github.com/tanaikech/goodls
GDDL="cd $PLOW_OUTDIR && tsp-dl goodls --url"
# GDRDL="cd $PLOW_OUTDIR && tsp-dl goodls --apikey "xxxxxxxxxxxxxxxxxx" --url"
# sites that doesnt require captcha
# mega.nz
# mediafire
# zippyshare
CLIPBOARD_MULTI(){
# copy to X11 (linux,bsd)
printf '%s' "$LINK" | xsel -b || printf '%s' "$LINK" | xclip -selection clipboard -r
# copy to Wayland (linux,bsd)
printf '%s' "$LINK" | wl-copy
# copy to WindowsOS (Vista+)
printf '%s' "$LINK" | clip
# copy to Cygwin (WindowsOS)
printf '%s' "$LINK" > /dev/clipboard
# copy to MacOS
printf '%s' "$LINK" | pbcopy
# copy to Termux (Android)
printf '%s' "$LINK" | termux-clipboard-set
# copy to tmux
printf '%s' "$LINK" | tmux load-buffer -
# tmux display-message "Copied to clipboard"
}
#### }}}
opt_video() {
choice=$(cat <<-_END_
1 -- mediaplayer -- mpv [task-spooler]
2 -- mediaplayer -- mpv [pueue]
3 -- mediaplayer -- mpv [nohup]
4 -- mediaplayer -- mpv (loop) [nohup] {mainly for gif}
5 -- downloader -- yt-dlp [task-spooler]
6 -- downloader -- yt-dlp [pueue]
7 -- downloader -- yt-dlp [terminal]
9 -- clipboard -- copy url
10 -- chromecast -- play
11 -- chromecast -- queue (youtube only)
12 -- framebuffer -- mplayer with yt-dlp [pueue]
13 -- framebuffer -- mplayer with yt-dlp [task-spooler]
14 -- framebuffer -- mplayer with yt-dlp [terminal]
15 -- framebuffer -- mplayer
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
eval $TASK_TS $MPV_ARGS "$LINK"
;;
2)
$TASK_PQ "$MPV_ARGS $LINK"
;;
3)
nohup $MPV_ARGS "$LINK" > /dev/null 2>&1 &
;;
4)
nohup $MPV_LOOP "$LINK" > /dev/null 2>&1 &
;;
5)
if [[ "$LINK" == *"youtube.com"* ]] || [[ "$LINK" == *"youtu.be"* ]]; then
eval $TASK_TS_DL $YTDL_MAIN "$LINK"
else
eval $TASK_TS_DL $YTDL_REG "$LINK"
fi
;;
6)
if [[ "$LINK" == *"youtube.com"* ]] || [[ "$LINK" == *"youtu.be"* ]]; then
$TASK_PQ_DL "$YTDL_MAIN $LINK"
else
$TASK_PQ_DL "$YTDL_REG $LINK"
fi
;;
7)
if [[ "$LINK" == *"youtube.com"* ]] || [[ "$LINK" == *"youtu.be"* ]]; then
$YTDL_MAIN "$LINK"
else
$YTDL_REG "$LINK"
fi
;;
8)
;;
9)
CLIPBOARD_MULTI
;;
10)
nohup $STRM_CATT_CAST "$LINK" > /dev/null 2>&1 &
;;
11)
nohup $STRM_CATT_ADD "$LINK" > /dev/null 2>&1 &
;;
12)
$TASK_PQ "$MPLAYER_ARGS_FBR '"$(yt-dlp -g --format "best[height<=?720]" "$LINK")"'"
;;
13)
eval $TASK_TS $MPLAYER_ARGS_FBR '"$(yt-dlp -g --format "best[height<=?720]" "$LINK")"'
;;
14)
yt-dlp --format "best[height<=?720]" -o - "$LINK" | $MPLAYER_ARGS_FBR -
;;
15)
$MPLAYER_ARGS_FBR "$LINK"
;;
esac
}
opt_audio() {
choice=$(cat <<-_END_
1 -- musicplayer -- mpv (no video, use mpris/playerctl to control)
2 -- musicplayer -- mpv [tmux, append queue]
3 -- musicplayer -- mpv [video]
4 -- musicplayer -- cmus
5 -- musicplayer -- mocp
6 -- musicplayer -- mpd (mpc)
9 -- clipboard -- copy url
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
nohup mpv --no-video "$LINK" > /dev/null 2>&1 &
;;
2)
# create queue fifo files if it does not exist
if [[ ! -p /tmp/mpvinput ]]; then
mkfifo /tmp/mpvinput
fi
# check if process mpv exist (e.g mpv --input-file=/tmp/mpvinput filename.mp3)
if pgrep -f mpvinput > /dev/null
then
# if mpv is already running then append new url/files to queue
# echo loadfile \"${LINK/'/\\'}\" append-play > /tmp/mpvinput
echo loadfile \"$LINK\" append-play > /tmp/mpvinput
# nohup $MPV_LOOP "${LINK/.gifv/.webm}" > /dev/null 2>&1 &
else
# if mpv is not running then start it (initial startup)
# mpv --no-video --input-file=/tmp/mpvinput "$1"
# tmux split-window -fv -p 20 && tmux send-keys "mpv --no-video --input-file=/tmp/mpvinput \"$LINK\" && exit" 'Enter'
# --input-ipc-server replaces --input-file flag in new mpv version
tmux split-window -fv -p 20 && tmux send-keys "mpv --no-video --input-ipc-server=/tmp/mpvinput \"$LINK\" && exit" 'Enter'
fi
# Note: use "<" or ">" hotkeys to skip between songs/audio queue list on mpv
;;
3)
nohup $MPV_ARGS "$LINK" > /dev/null 2>&1 &
;;
4)
cmus-remote -c -q && cmus-remote -q "$LINK" && sleep 0.5 && cmus-remote -n -p
;;
5)
mocp -l "$LINK"
;;
6)
mpc add "$LINK" && mpc play
;;
9)
CLIPBOARD_MULTI
;;
esac
}
opt_clip() {
choice=$(cat <<-_END_
1 -- mediaplayer -- mpv (loop) [nohup]
9 -- clipboard -- copy url
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
nohup $MPV_LOOP "$LINK" > /dev/null 2>&1 &
;;
9)
CLIPBOARD_MULTI
;;
esac
}
opt_gif() {
choice=$(cat <<-_END_
1 -- mediaplayer -- mpv (loop) [nohup]
2 -- asciigif -- mpv (tct)
3 -- asciigif -- chafa
7 -- framebuffer -- mpv
8 -- framebuffer -- mplayer
9 -- clipboard -- copy url
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
nohup $MPV_LOOP "$LINK" > /dev/null 2>&1 &
;;
2)
mpv -loop -vo tct "$LINK"
;;
3)
# LINK="${LINK/.gifv/.gif}"
# LINK="${LINK/.mp4/.gif}"
# LINK="${LINK/.webm/.gif}"
if [ "$TERM_PROGRAM" = tmux ]; then
tmux new-window -n chafagif && tmux send-keys "$CHAFA_ARGS '$LINK' && tmux kill-pane" 'Enter'
else
$CHAFA_ARGS "$LINK"
read -rsp $'Press any key to quit\n' -n1
# clear screen
printf "\033c"
fi
;;
4)
# LINK="${LINK/.gifv/.gif}"
# LINK="${LINK/.mp4/.gif}"
# LINK="${LINK/.webm/.gif}"
# $CHAFA_ARGS "$LINK"
# tmux new-window -n gif && tmux send-keys "$CHAFA_ARGS '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n gif && tmux send-keys "mpv -vo drm '$LINK' && tmux kill-pane" 'Enter'
# mpv -vo drm "$LINK"
;;
7)
# mpv -loop -vo tct "$LINK"
mpv -loop -vo fbdev "$LINK"
;;
8)
mplayer -loop 0 -vo fbdev "$LINK"
;;
9)
CLIPBOARD_MULTI
;;
esac
}
opt_image() {
choice=$(cat <<-_END_
1 -- guiviewer -- feh
2 -- guiviewer -- mpv
3 -- imageviewer -- w3mimgdisplay
4 -- imageviewer -- ucollage
6 -- asciiviewer -- chafa
7 -- framebuffer -- fbv
8 -- framebuffer -- fbi
9 -- clipboard -- copy url
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
$FEH_ARGS "$LINK"
;;
2)
mpv --image-display-duration=inf "$LINK"
;;
3)
if [ "$TERM_PROGRAM" = tmux ]; then
tmux new-window -n w3mimgage && tmux send-keys "$W3MIMGDISPLAY_ARGS '$LINK' && tmux kill-pane" 'Enter'
else
$W3MIMGDISPLAY_ARGS "$LINK"
fi
;;
4)
if [ "$TERM_PROGRAM" = tmux ]; then
tmux new-window -n ucollageimgage && tmux send-keys "curl -s '$LINK' > $TMP_IMG && $UCOLLAGE_ARGS $TMP_IMG && tmux kill-pane" 'Enter'
else
curl -s "$LINK" > "$TMP_IMG" && "$UCOLLAGE_ARGS" "$TMP_IMG"
fi
;;
6)
if [ "$TERM_PROGRAM" = tmux ]; then
tmux new-window -n chafagif && tmux send-keys "$CHAFA_ARGS '$LINK'" 'Enter'
else
$CHAFA_ARGS "$LINK"
read -rsp $'Press any key to quit\n' -n1
# clear screen
printf "\033c"
fi
;;
7)
curl -s "$LINK" > "$TMP_IMG" && "$FBV_ARGS" "$TMP_IMG"
;;
8)
curl -s "$LINK" > "$TMP_IMG" && "$FBI_ARGS" "$TMP_IMG"
;;
9)
CLIPBOARD_MULTI
;;
esac
}
opt_reddit() {
choice=$(cat <<-_END_
1 -- client -- rtv
2 -- webbrowser -- lynx
3 -- webbrowser -- w3m
4 -- webbrowser -- elinks
5 -- webbrowser -- links
9 -- clipboard -- copy url
_END_
)
selection="$(echo "$choice" | $FZF_PROG | cut -d ' ' -f1)"
case $selection in
1)
# reddits comment section
if [[ "$LINK" == *'/comments/'* ]]; then
LINK="${LINK/\/.mobile//}"
tmux new-window -n rtv && tmux send-keys "rtv -l $LINK && tmux kill-pane" 'Enter'
else
# subreddit/user profiles
LINK="$(echo "$LINK" | awk -F '.com' '{print $2}')"
LINK="${LINK/\/.mobile//}"
tmux new-window -n rtv && tmux send-keys "rtv -s $LINK && tmux kill-pane" 'Enter'
fi
;;
2)
tmux new-window -n lynxreddit && tmux send-keys "lynx -accept_all_cookies $LINK && tmux kill-pane" 'Enter'
;;
3)
tmux new-window -n w3mreddit && tmux send-keys "w3m $LINK && tmux kill-pane" 'Enter'
;;
4)
tmux new-window -n elinksreddit && tmux send-keys "elinks $LINK && tmux kill-pane" 'Enter'
;;
5)
tmux new-window -n linksreddit && tmux send-keys "links $LINK && tmux kill-pane" 'Enter'
;;
9)
CLIPBOARD_MULTI
;;
esac
}
# enable case-insensitive matching
shopt -s nocasematch
# if [ -z "$W3M_CURRENT_LINK" ]; then
# LINK="$W3M_CURRENT_LINK"
# elif [ -z "$W3M_URL" ]; then
# LINK="$W3M_URL"
# else
# LINK="$1"
# fi
LINK="$1"
case "$LINK" in
########################## VIDEO SECTION ########################## {{{
*bitchute.com/*)
opt_video
;;
*dailymotion.com*)
opt_video
;;
*goodporn.to/videos/*)
opt_video
;;
*moviefone.com/movie/*/*/main/)
LINK="${LINK/main/trailers}"
opt_video
;;
*pornhub.com/*)
opt_video
;;
*v.redd.it/*)
opt_video
;;
*redtube.com/[0-9]*)
opt_video
;;
*tube8.com/*/*/[0-9]*)
opt_video
;;
*webmshare.com/*)
LINK="$(curl -s "$LINK" | grep -oP '<meta property="og:video" content="\K[^"]+' | sed 's@^@https:@')"
opt_video
;;
*worldstarhiphop.com/videos/*|*worldstar.com/video.php?v=*)
opt_video
;;
*xvideos.com/*)
opt_video
;;
*youporn.com/watch/*)
opt_video
;;
*youtube.com/watch*|*youtu.be/*|*yewtu.be/*|*vid.puffyan.us/*)
opt_video
;;
**duckduckgo.com/*www.youtube.com*watch*)
# clean url: https://duckduckgo.com/l/?uddg=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DYtoIjNDQ2kU
# to --> https://www.youtube.com/watch?v=YtoIjNDQ2kU
LINK="$(echo "$LINK" | cut -d"=" -f2 | sed 's@%3A%2F%2F@://@g' | sed 's@%2F@/@g' | sed 's@%3F@?@g' | sed 's@%3D@=@g')"
opt_video
;;
*.webp|*.webm)
opt_video
;;
*.mp4|*.mkv|*.avi|*.wmv|*.m4v|*.mpg|*.mpeg|*.mov|*.flv|*.ogm|*.ogv)
opt_video
;;
#### }}}
########################## CLIP SECTION ###################### {{{
*clippituser.tv/*)
opt_clip
;;
*gfycat.com/*)
opt_clip
;;
*streamable.com/*)
opt_clip
;;
*streamja.com/*)
opt_clip
;;
#### }}}
########################## GIF SECTION ###################### {{{
*coub.com/view/*)
opt_gif
;;
*giphy.com*)
opt_gif
;;
*liveleak.com/*)
opt_gif
;;
*tiktok.com/*)
opt_gif
;;
*video.twimg.com/*)
opt_gif
;;
*i.makeagif.com/*.gif)
opt_gif
;;
*imgur.com/*.gifv|*imgur.com/*.mp4|*imgur.com/*.webm|*imgur.com/*.gif)
# LINK="${LINK/.gifv/.gif}"
# LINK="${LINK/.i//}"
opt_gif
;;
*makeagif.com/i/*)
nohup $MPV_LOOP "${LINK/.gifv/.webm}" > /dev/null 2>&1 &
;;
*tenor.com/view/*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src="\K[^"]+' | grep '^http' | head -n1)"
tmux new-window -n gif && tmux send-keys "chafa '$LINK' && tmux kill-pane" 'Enter'
;;
*github.com/*.gif)
LINK="$(echo $LINK | sed -e 's/github.com/raw.githubusercontent.com/g' -e 's/\/blob//g' )"
opt_gif
;;
gopher*.gif)
# curl -s "$LINK" > /tmp/gopher.gif
# nohup $MPV_LOOP /tmp/gopher.gif > /dev/null 2>&1 &
tmux new-window -n gif && tmux send-keys "curl -s '$LINK' > /tmp/gopher.gif && chafa /tmp/gopher.gif && tmux kill-pane" 'Enter'
;;
*.gif)
opt_gif
;;
#### }}}
########################## LIVE STREAM SECTION ########################## {{{
*twitch.tv/*)
# $LIVEFEED "$LINK"
opt_video
;;
#### }}}
########################## IMAGE SECTION ########################## {{{
*imgwallet.com/images/small/*)
LINK="${LINK/small/big}"
opt_image
;;
*22pixx.xyz/*jpeg.html)
LINK="$(echo $LINK | cut -d '/' -f5- | sed 's/\.html//g')"
LINK="$(echo https://22pixx.xyz/o/$LINK)"
opt_image
;;
*imgbum.ru/allimage/*)
LINK="${LINK/-thumb/}"
opt_image
;;
*imgclick.ru/allimage/*)
LINK="${LINK/-thumb/}"
opt_image
;;
*olarixas.xyz/img-*)
LINK="$(curl --data "imgContinue=Continue to image ... " --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
opt_image
;;
*olarixas.xyz/upload/small/*)
LINK="${LINK/small/big}"
opt_image
;;
*payforpic.ru/allimage/*)
LINK="${LINK/-thumb/}"
opt_image
;;
*pnyimg.net/image/*)
LINK="$(curl -s "$LINK" | grep image_src | grep -oP 'href="\K[^"]+')"
opt_image
;;
*bitpic.me/v/*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src="\K[^"]+' | tail -n1 | while read -r line; do echo "https://bitpic.me/$line"; done)"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*blameless.work/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*blameless.work/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*dailyimages.xyz/*.html)
# LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*damimage.com/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*dimtus.com/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*discountxpic.xyz/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*discountxpic.xyz/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*.fastpic.ru/big/*)
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*erophotopixxx.com/*.html)
LINK="$(curl -s "$LINK" | grep '<img class' | head -n1 | grep -oP 'src="\K[^"]+' | while read -r line; do echo "https://erophotopixxx.com$line"; done)"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*trans.firm.in//img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*trans.firm.in//upload/small/*|*trans.firm.in/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*freebunker.com/*)
LINK="${LINK/img\//tn\/i}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*freescreens.ru/allimage/*)
LINK="${LINK/-thumb/}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*freescreens.ru/*)
LINK="$(echo "$LINK/1/" | sed 's/freescreens.ru/picpic.online/')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*funimg.net/img*)
LINK="$(curl --data "imgContinue=Click here to view image" --location "$LINK" | grep -oP 'var linkid="\K[^"]+' | while read -r line; do curl -s "$line" ; done | grep -oP 'src="\K[^"]+' | grep upload )"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*hdmoza.com//img*)
# LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Website Changed' && sleep 3 && tmux kill-pane" 'Enter'
;;
*hdmoza.com//upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*hotimage.uk/img*)
# LINK="$(curl --data "imgContinue=Continue to image ..." --location "$(echo $LINK | sed 's@http://@https://www.@')" | grep centred | grep -oP 'src=\047\K[^\047]+')"
LINK="$(curl --data "imgContinue=Continue to image ..." --location "${LINK/http:\/\//https:\/\/www.}" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*hotimage.uk/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*hotspic.ru/img*)
LINK="$(curl --data "imgContinue=Click To View The Image ... " --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pic.hotimg.site/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*ibb.co/*)
LINK="$(lynx -listonly -nonumbers -dump "$LINK" | grep image)"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*iceimg.net/*)
# LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*imagebam.com/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagecurl.com/viewer.php?file=*)
LINK="$(echo "$LINK" | sed 's@https://@https://cdn.@' | sed 's@/viewer.php?file=@/images/@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagedecode.com/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagedecode.com/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagehub.pro/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagerar.com/t/*)
LINK="${LINK/\/t/\/u}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagerar.com/imgy-u/*)
LINK="$(echo "$LINK" | sed 's/imgy-u/u/g' | sed 's/.html//g')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagescomplete.xyz/image/*)
LINK="$(lynx -source "$LINK" | grep embed-code-2 | grep -oP 'value="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imageshtorm.com/img*)
LINK="$(curl -s "$LINK" | grep onclick | grep -oP '<a href=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imageshtorm.com/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imagespublic.tk/img*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src=\047\K[^\047]+' | sed 's/small/big/')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imageteam.org/*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*/imagetwist.com/*)
LINK="$(curl -s "$LINK" | grep -oP '<p style="display: block; text-align:center;"><img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imageuploads.co.uk/image/*)
LINK="$(lynx -source "$LINK" | grep image-viewer-container | grep -oP '<img src="\K[^"]+' | sed 's@\.md@@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*img-central.com/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*img2share.com/*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgadult.com/img*)
LINK="$(curl -s "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+' | sed 's/small/big/')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgbaron.com/*.html)
# LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*images2.imgbox.com/*.jpg)
opt_image
;;
*imgbox.com/*)
LINK="$(curl -s "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgcris.com/*)
LINK="$(lynx -listonly -nonumbers -dump "$LINK" | grep images)"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgdawgknuttz.com/img-*)
# LINK="$(curl --data "imgContinue=Continue to image ... " --location "$LINK" | grep centred | grep -oP 'src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 6/16/20 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*imgdawgknuttz.com/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgdone.com/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgflip.com/i/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgfrost.net/*)
# LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*i.imghost.top/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgjazz.com/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgmak.com/image*)
LINK="$(curl -s "$LINK" | grep -oP '<img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*new.imgmercy.com/image/*)
LINK="$(lynx -source "$LINK" | grep image-viewer-container | grep -oP '<img src="\K[^"]+' | sed 's@\.md@@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgpeak.com/*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgsalem.com/*)
# LINK="$(curl --data "imgContinue=Continue to image ... " --location "$LINK" | grep centred | grep -oP 'src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*imgskull.xyz/*|*imgskull.com/*)
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/23/19 This Site is Dead' && sleep 2 && tmux kill-pane" 'Enter'
;;
*imgtaxi.com/images/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgstudio.org/img*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgtornado.com/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imgtorrnt.in/view.php?id=*)
# LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*i.imgur.com/*| *imgur.com/*.*)
opt_image
# choice="$(printf "w3m-img\nfeh\nxdg-open"|$FZF_PROG)"
# if [[ "$choice" = "w3m-img" ]]; then
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
# elif [[ "$choice" = "feh" ]]; then
# nohup feh "$LINK" > /dev/null 2>&1 &
# elif [[ "$choice" = "xdg-open" ]]; then
# xdg-open "$LINK" > /dev/null 2>&1 &
# fi
;;
# imgur multi links album/gallery (e.g https://imgur.com/a/5DhTEXV )
*imgur.com/*)
LINK="(lynx -source "$(echo $LINK | cut -d'#' -f1)" | grep post-image-container | grep -oP '<div id=\"\K[^\"]+' | while read line; do echo '%s\n' https://i.imgur.com/"\$line".png; done | urlview)"
tmux split-window && tmux send-keys "$LINK && tmux kill-pane" 'Enter'
;;
*imguur.pictures/thumb-*)
LINK="${LINK/thumb-/image-}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*imguur.pictures/share-*)
LINK="$(echo "$LINK" | sed 's/share-/image-/' | sed 's/html/jpg/')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*instagram.com/p/*)
LINK="$(curl -s "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*juicyxxx.click/image/*)
LINK="$(curl -s "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*kropic.com/*)
LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
# tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*kvador.com/*)
# LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*money-pic.ru/allimage/*)
LINK="${LINK/-thumb/}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*money-pic.ru/*)
LINK="$(curl -s "$LINK/1/" | grep allimage | grep -oP '<img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*mstimg.com/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*nikapic.ru/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*i.nmfiles.com/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*orangepics.xyz/image/*)
LINK="$(lynx -source "$LINK" | grep embed-code-2 | grep -oP 'value="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pacific.picturedent.org/image/*)
LINK="$(curl -s "$LINK" | grep '<img class' | grep -oP 'src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*picbaron.com/*.html)
# LINK="$(curl --data "submit=Continue to image..." --location "$LINK" | grep scaleImg | grep -oP 'img src="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
tmux new-window -n pixcli && tmux send-keys "echo 'Last Tested: 9/13/19 Not Supported Javascript Website' && sleep 3 && tmux kill-pane" 'Enter'
;;
*picforall.ru/allimage/*)
LINK="${LINK/-thumb/}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*picforall.ru/*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src="\K[^"]+' | grep "thumb" |sed 's/-thumb//')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*picfuture.com/*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*picmoza.com//img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pixcloud.ru/view*)
LINK="$(curl -s "$LINK" | grep -oP '<img id="photo" src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*placeimg.net/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pornweb.xyz/*)
LINK="$(curl -s "$LINK" | grep imagebam | grep -oP '<p><img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pornyfap.com/pic/*)
LINK="$(curl -s "$LINK" | grep myImg | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*tk.imgsking.com/img-*)
LINK="$(lynx -source "$LINK" | grep center | grep -oP '<img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pornbaker.men/image/*)
LINK="$(lynx -source "$LINK" | grep image-viewer-container | grep -oP '<img src="\K[^"]+' | sed 's@\.md@@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*proimg.site/image/*)
LINK="$(lynx -source "$LINK" | grep image-viewer-container | grep -oP '<img src="\K[^"]+' | sed 's@\.md@@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*putaimage.info/image/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*preview.redd.it/*.png*)
# LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
# tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
opt_image
;;
*sam-power.ru/upload/small/*)
LINK="${LINK/small/big}"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*sam-power.ru/img-*)
LINK="$(curl --data "imgContinue=Continue to image ... " --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*trafficimage.club/image/*)
LINK="$(lynx -source "$LINK" | grep image-viewer-container | grep -oP '<img src="\K[^"]+' | sed 's@\.md@@')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*pbs.twimg.com/*)
LINK="$LINK"
# LINK="$(lynx -source "$LINK" | grep -oP '<img src="\K[^"]+' | sed 's@small@big@' )"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*ubapacola.xyz/img-*)
LINK="$(curl -s "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*unporn.site/img*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src="\K[^"]+' | sed 's@small@big@' )"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*wallpaperspic.pw/*)
LINK="$(curl -s "$LINK" | grep imagebam | grep -oP '<p><img src="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*xaoutchouc.live/img*)
LINK="$(lynx -source "$LINK" | grep -oP '<img src=\047\K[^\047]+' | sed 's/small/big/')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*xxximagetpb.org/*)
LINK="$(lynx -source "$LINK" | grep -oP '<meta property="og:image" content="\K[^"]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
*xxxwebdlxxx.org/img*)
LINK="$(curl --data "imgContinue=Continue to image ..." --location "$LINK" | grep centred | grep -oP 'src=\047\K[^\047]+')"
tmux new-window -n pixcli && tmux send-keys "$IMAGECLI '$LINK' && tmux kill-pane" 'Enter'
;;
# gopher*.jpg$|gopher*.jpeg$|gopher*.png$)
gopher*.jpg|gopher*.jpeg|gopher*.png)
tmux new-window -n pixcli && tmux send-keys "curl '$LINK' > /tmp/gopher.jpg && $IMAGECLI /tmp/gopher.jpg && tmux kill-pane" 'Enter'
;;
*.jpg|*.jpeg|*.png|*:large)
opt_image
;;
#### }}}
########################## AUDIO SECTION ########################## {{{
*internet-radio.com/*.pls|*internet-radio.com/*.m3u)
# LINK=$(echo "$LINK" | cut -d'=' -f2- | cut -d'&' -f1)
LINK=$(echo "$LINK" | cut -d'=' -f2- | cut -d '&' -f1)
opt_audio
;;
*.pls|*.m3u|*.aac)
tmux split-window -fv -p 20 && tmux send-keys "mpv '$LINK' && exit" 'Enter'
;;
*.mp3|*.m4a|*.wav|*.ogg|*.oga|*.flac)
opt_audio
;;
#### }}}
########################## CYBERLOCKER SECTION ########################## {{{
*mediafire.com/file/*)
$PLOWDL "$LINK"
;;
*mediafire.com/folder/*)
# plowlist "$LINK" | awk '/^http/ {print $1}' | while read URI; do $PLOWDL "$URI"; done
plowlist "$LINK" | awk '/^http/ {print $1}' | while read URI; do $MDFDIR "$URI"; done
;;
*mega.nz/*)
$MEGANZ "$LINK"
;;
*zippyshare.com/*)
$PLOWDL "$LINK"
;;
*drive.google.com/drive/folders/*)
$GDDL "$LINK"
;;
*sendspace.com/file/*)
$PLOWDL "$LINK"
;;
# cyberlocker download without captcha code
# *zippyshare.com/*|*mediafire.com/file/*|*sendspace.com/file/*)
# if pgrep -f $DDL_QUEUE_FAST > /dev/null
# then
# echo "$LINK" >> $DDL_QUEUE_FAST
# else
# echo "$LINK" >> $DDL_QUEUE_FAST
# cat $DDL_QUEUE_FAST | awk '!x[$0]++' | sponge $DDL_QUEUE_FAST
# tmux split-window -fv -p 20 && tmux send-keys "until [[ \$(cat $DDL_QUEUE_FAST | grep -v '#' | wc -l) -eq 0 ]]; do mkdir -p $DDL_PATH && cd $DDL_PATH && plowdown -m $DDL_QUEUE_FAST -o $DDL_PATH ; done" 'Enter'
# fi
# ;;
#### }}}
########################## OTHER SECTION ########################## {{{
*reddit.com/r/*/comments/*)
LINK="$LINK/.mobile"
opt_reddit
;;
# reddit subreddit or user
*reddit.com/r/*|*reddit.com/u/*|*reddit.com/user/*)
LINK="$(echo "$LINK" | awk -F '.com' '{print $2}')"
LINK="https://www.reddit.com${LINK}/.mobile"
opt_reddit
;;
*twitter.com/*/status/*)
LINK="${LINK/twitter.com/nitter.net}"
tmux new-window -n w3mtweet && tmux send-keys "w3m $LINK && tmux kill-pane" 'Enter'
;;
*.cbz|.cbr)
mcomix "$LINK"
;;
# irc xdcc downloader
*ixirc.com/?pid*)
# install requirements: https://git.sr.ht/~dax/xdcc
# $ xdcc -s irc.example.org -c channel_name -b bot_name pack_number
LINK=$(curl -s "$LINK")
server=$(echo "$LINK" | grep -oP '<td><a href="\K[^"]+' | cut -d'/' -f3 | cut -d':' -f1)
port=$(echo "$LINK" | grep -oP '<td><a href="\K[^"]+' | cut -d':' -f3 | cut -d'/' -f1)
channel_name=$(echo "$LINK" | grep -oP '<td><a href="\K[^"]+' | cut -d'/' -f4)
bot_name=$(echo "$LINK" | grep msg | grep -oP 'value="\K[^"]+' |cut -d' ' -f2)
package_number=$(echo "$LINK" | grep msg | grep -oP 'value="\K[^"]+' |cut -d' ' -f5 | cut -d'#' -f2)
tmux split-window -fv -p 30 && tmux send-keys "cd ~/Downloads && xdcc -y -v -s $server -p $port -c $channel_name -b \"$bot_name\" $package_number" 'Enter'
;;
mailto:*)
tmux split-window -fv && tmux send-keys "mutt -- '$LINK' && tmux kill-pane" 'Enter'
;;
magnet:*|*.torrent)
transmission-remote --add "$LINK"
;;
*.nfo)
tmux new-window -n view && tmux send-keys "vim '$LINK' && tmux kill-pane" 'Enter'
;;
*.html)
tmux new-window -n browse && tmux send-keys "$DEFAULT '$LINK' && tmux kill-pane" 'Enter'
;;
*)
tmux new-window -n browse && tmux send-keys "$DEFAULT '$LINK' && tmux kill-pane" 'Enter'
;;
#### }}}
esac
########################## EMPTY SECTION ########################## {{{
#### }}}
########################## EMPTY SECTION ########################## {{{
#### }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment