Először egy shellscriptet akartam rá írni, de miután kiderült, hogy ezt csak awk
hegyekkel lehet megoldani (ráadásul a példák zöme gawk
specifikus volt), úgy döntöttem, hogy inkább megírom C-ben.
Működése egyszerű: fogja a program a kapott URL-(eke)t, megkeresi a '%3A%2F%2F'
stringet (ez ugye az elkódolt '://'
), visszafelé megkeresi az első non-alfanumerikus karaktert, hogy a protokoll is a linkben legyen, majd megkeresi a következő ampersand (&
) karaktert, vagy a string végét és URL-dekódolja a kettő közti részt. A végeredményt kiírja a stdout
-ra.
Update: Az 1.1.0 a nem elkódolt URL-eket is ki tudja bányászni.
A használata is egyszerű: vagy argumentumként adja át az ember a parancsnak az URL-eket (argumentumként egyet), vagy pedig - LF-fel elszeparálva - beönti őket a stdin
-re, aztán viszi az eredményt a stdout
-ról.
Be lehet lőni hotkeyre a következő parancsláncot
xsel -b -o | eeurlfrl | xsel -b -i
vagy ezt
xclip -selection clipboard -o | eeurlfrl | xclip -selection clipboard -i
és utána csak link másolása, hotkey, majd a kapott link beillesztésre új tabra. (Vagy másik hotkey-jel elküldése a browsernek.)
A - Public Domain alatt elérhető - forrás letölthető innen (függőségei a - libc-n kívül - nincsenek):
http://oscomp.hu/?details/Extract_Encoded_URL_From_Redirect_Link_v1.0.0_(CP)_1570
- TCH blogja
- A hozzászóláshoz be kell jelentkezni
- 473 megtekintés
Hozzászólások
Sok idod van :D
- A hozzászóláshoz be kell jelentkezni
Szombat van. És egyébként kb. egy óra volt megcsinálni.
- A hozzászóláshoz be kell jelentkezni
kozmetikai megjegyzés: fprintf-hez illene egy string format
fprintf(stderr, "%s", alloc_fail);
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Ok, thx, ha majd lesz valami bugfix, vagy új feature, akkor ezt is berakom.
- A hozzászóláshoz be kell jelentkezni
Erre most került sor, mert belefutottam egy olyan URL-be, ahol nem volt enkódolva a cucc, innentől azt is le tudja kezelni. Az 1.1.0 a helyén, frissítettem a linket.
- A hozzászóláshoz be kell jelentkezni